All Products
Search
Document Center

Container Service for Kubernetes:Dapatkan kubeconfig dan hubungkan ke kluster dengan kubectl

Last Updated:Jun 16, 2026

Gunakan kubeconfig sementara atau jangka panjang untuk mengautentikasi kubectl dengan server API kluster Anda.

Anda juga dapat mengelola kluster dan aplikasi melalui Konsol ACK.

Penting

Berdasarkan model tanggung jawab bersama, amankan kredensial kubeconfig Anda dengan memutarnya secara berkala dan menerapkan prinsip hak istimewa minimal.

Pilih jenis kubeconfig

Pilih jenis kubeconfig berdasarkan durasi akses yang Anda butuhkan dan cara klien Anda terhubung ke kluster.

Berdasarkan periode validitas

Type

Validity

Best for

Security

Temporary

30 menit hingga 3 hari (dapat dikonfigurasi)

Operasi dan maintenance (O&M) harian, troubleshooting, pipeline CI/CD

Risiko lebih rendah—otomatis kedaluwarsa setelah periode yang dikonfigurasi

Long-term

3 tahun (default)

Sistem otomatis, layanan pemantauan jangka panjang

Memerlukan rotasi manual sebelum kedaluwarsa

Berdasarkan metode akses

Type

When to use

Details

Private access

Mesin klien Anda berada dalam Virtual Private Cloud (VPC) yang sama dengan kluster

Terhubung melalui jaringan internal dengan latensi lebih rendah dan keamanan lebih kuat

Public access

Terhubung dari mesin mana pun yang memiliki akses Internet

Menampilkan server API melalui Elastic IP Address (EIP)—untuk pengembangan lokal dan O&M jarak jauh

EIP yang di-bind dikenai biaya pay-as-you-go.

Untuk kluster khusus ACK dengan akses publik, Anda juga dapat menghubungkan ke node master melalui SSH untuk mendapatkan kubeconfig.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • menginstal kubectl, dengan selisih maksimal satu versi minor dari versi Kubernetes kluster Anda (misalnya, kubectl 1.27–1.29 untuk Kubernetes 1.28).

  • Pengguna RAM dengan izin yang diberikan baik di tingkat ACK maupun Kluster.

Dapatkan file kubeconfig dan hubungkan ke kluster

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, klik nama kluster Anda, atau klik Details di kolom Actions.

  3. Di halaman Cluster Information, klik tab Connection Information. Pilih kubeconfig sementara atau jangka panjang. Untuk kubeconfig sementara, atur periode validitasnya.

  4. Klik tab Internal Access atau Public Access, lalu klik Copy.

  5. Tempel kontennya ke file $HOME/.kube/config pada klien Anda, lalu simpan file tersebut.

    Catatan: Jika direktori atau file tersebut belum ada, buat terlebih dahulu.
  6. Verifikasi koneksi dengan menampilkan semua namespace:

    kubectl get namespaces

    Output yang diharapkan:

    NAME              STATUS   AGE
    default           Active   4h39m
    kube-node-lease   Active   4h39m
    kube-public       Active   4h39m
    kube-system       Active   4h39m

Kelola kredensial kubeconfig

Putar kredensial sebelum kedaluwarsa

kubeconfig jangka panjang berlaku selama 3 tahun. Dapatkan kubeconfig baru dari Konsol ACK atau melalui API DescribeClusterUserKubeconfig dalam waktu 180 hari sebelum kedaluwarsa untuk menghindari gangguan layanan.

kubeconfig baru berlaku selama 3 tahun. kubeconfig lama tetap berlaku hingga tanggal kedaluwarsa aslinya.

Cabut kredensial yang dikompromikan

Jika Anda mencurigai kubeconfig telah dikompromikan, segera cabut kredensial kubeconfig kluster. Tindakan ini akan membatalkan semua koneksi yang ada dan menghasilkan kubeconfig baru.

Bersihkan izin untuk pengguna yang keluar

Ketika pengguna tidak lagi memerlukan akses (misalnya, setelah proyek selesai atau karyawan berhenti), cabut izin kubeconfig mereka secara massal dengan menghapus file kubeconfig atau menggunakan ack-ram-tool. Sistem tidak akan menghasilkan kubeconfig baru setelah pencabutan.

Untuk memulihkan izin yang tidak sengaja dicabut, gunakan keranjang daur ulang kubeconfig.

FAQ

Secara default, kubectl menggunakan $HOME/.kube/config. Untuk menggunakan file lain, atur variabel lingkungan KUBECONFIG atau gunakan flag --kubeconfig. Pada perintah di bawah ini, ganti kubeconfig dengan path ke file kubeconfig Anda.

Bagaimana cara mengetahui identitas yang terkait dengan sertifikat kubeconfig?

Ambil subjek sertifikat:

# Ekstrak sertifikat klien, dekode dari base64,
# lalu gunakan OpenSSL untuk menampilkan bidang Subject
grep client-certificate-data kubeconfig | awk '{print $2}' | base64 -d | openssl x509 -noout -text | grep Subject:

Output yang diharapkan:

        Subject: O=system:users, OU=, CN=1***-1673419473
  • O—Kelompok pengguna Kubernetes. Pada contoh ini, system:users.

  • CN—Pengenal pengguna. Pada contoh ini, 1***-1673419473, di mana 1*** adalah ID pengguna Alibaba Cloud.

Bagaimana cara memeriksa kapan sertifikat kubeconfig kedaluwarsa?

Periksa tanggal kedaluwarsa sertifikat:

# Ekstrak sertifikat klien, dekode dari base64,
# lalu gunakan OpenSSL untuk menampilkan tanggal kedaluwarsa
grep client-certificate-data kubeconfig | awk '{print $2}' | base64 -d | openssl x509 -noout -enddate

Output yang diharapkan:

notAfter=Jan 10 06:44:34 2026 GMT

Pada contoh ini, sertifikat kedaluwarsa pada 10 Januari 2026.

Dapatkan kubeconfig baru dari konsol atau API dalam waktu 180 hari sebelum kedaluwarsa, atau kapan saja setelah kedaluwarsa.

Bagaimana cara mengekstrak sertifikat klien, kunci privat, dan URL server API dari kubeconfig?

Ambil sertifikat, kunci, dan URL server API:

# Ekstrak dan dekode sertifikat klien ke file PEM
grep client-certificate-data ./kubeconfig | awk -F ' ' '{print $2}' | base64 -d > ./client-cert.pem

# Ekstrak dan dekode kunci privat klien ke file PEM
grep client-key-data ./kubeconfig | awk -F ' ' '{print $2}' | base64 -d > ./client-key.pem

# Ekstrak URL server API ke dalam variabel
APISERVER=$(grep server ./kubeconfig | awk -F ' ' '{print $2}')

Bagaimana cara mengatasi error "certificate is valid for"?

Error ini terjadi ketika Anda mengikat alamat IP baru ke instans Server Load Balancer (SLB) untuk server API. Perintah kubectl yang ditujukan ke IP baru gagal dengan pesan Error while proxying request: x509: certificate is valid for xxx atau Unable to connect to the server: x509: certificate is valid for xxx.

Penyelesaiannya bergantung pada jenis kluster Anda:

  • Kluster ACK yang dikelola: Tambahkan alamat IP baru ke Subject Alternative Name (SAN) sertifikat server API.

  • Kluster khusus ACK: Konfigurasikan kubectl agar melewati verifikasi TLS dengan salah satu metode berikut:

    Penting

    Melewati verifikasi TLS merupakan risiko keamanan. Jangan gunakan ini di lingkungan produksi. Migrasikan ke kluster ACK Pro, lalu tambahkan alamat IP baru ke SAN sertifikat server API.

    • Metode 1: Gunakan flag --insecure-skip-tls-verify:

      kubectl -s https://<IP>:6443 --insecure-skip-tls-verify get ns
    • Metode 2: Edit file kubeconfig. Tambahkan insecure-skip-tls-verify: true dan hapus bidang certificate-authority-data:

      apiVersion: v1
      clusters:
      - cluster:
          server: https://<IP>:6443
          insecure-skip-tls-verify: true
        name: kubernetes
      contexts:
      ...

Apakah saya bisa mendapatkan kunci sertifikat root untuk kluster ACK yang dikelola agar membuat kubeconfig sendiri?

Tidak. Kluster ACK yang dikelola tidak mengekspos kunci sertifikat root. Dapatkan kubeconfig dari konsol atau melalui API DescribeClusterUserKubeconfig.

Referensi