All Products
Search
Document Center

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

Last Updated:Feb 27, 2026

Selain melalui Konsol Container Service for Kubernetes (ACK), Anda dapat menggunakan antarmuka baris perintah Kubernetes (kubectl) untuk mengelola kluster dan aplikasi. Untuk menghubungkan ke kluster menggunakan kubectl, Anda terlebih dahulu harus mendapatkan file kubeconfig yang berisi kredensial dan informasi koneksi untuk mengakses kluster tersebut.

Langkah 1: Instal dan konfigurasikan klien kubectl

Tentukan mesin klien tempat Anda ingin menginstal kubectl, lalu instal kubectl sesuai dengan sistem operasi dan versi kluster Anda.

Langkah 2: Dapatkan dan gunakan file kubeconfig

1. Pilih tipe KubeConfig

File kubeconfig berisi informasi autentikasi untuk mengakses kluster. Pilih tipe kubeconfig berdasarkan kebutuhan keamanan dan kasus penggunaan Anda.

Penting

Sesuai dengan model tanggung jawab bersama, Anda bertanggung jawab atas keamanan dan pemeliharaan kredensial KubeConfig Anda. Untuk memitigasi risiko keamanan akibat kebocoran KubeConfig, lakukan rotasi KubeConfig secara berkala dan terapkan prinsip hak istimewa minimal.

  • Periode validitas file kubeconfig:

    • Kubeconfig sementara: Anda dapat mengonfigurasi periode validitas dari 30 menit hingga 3 hari. File ini akan kedaluwarsa secara otomatis, sehingga mengurangi risiko keamanan akibat paparan kredensial. Opsi ini direkomendasikan untuk operasi dan pemeliharaan (O&M) harian, troubleshooting, serta pipeline CI/CD yang tidak memerlukan akses jangka panjang ke API server.

    • Kubeconfig jangka panjang: Tipe ini memiliki periode validitas default selama 3 tahun. Cocok untuk sistem otomatis atau layanan pemantauan berkelanjutan yang tidak praktis melakukan rotasi kredensial secara berkala.

  • Berdasarkan metode akses:

    • Akses privat: Gunakan opsi ini jika mesin klien Anda berada dalam virtual private cloud (VPC) yang sama dengan kluster. Menghubungkan melalui jaringan internal menggunakan kubeconfig memberikan latensi lebih rendah dan keamanan yang lebih baik.

    • Akses publik: Dapatkan KubeConfig untuk akses publik agar dapat menghubungkan ke kluster dari mesin mana pun yang memiliki akses Internet. Metode ini bergantung pada EIP untuk mengekspos API server. Cocok untuk pengembangan lokal atau O&M jarak jauh.

      Untuk biaya terkait EIP yang di-bind, lihat Pay-as-you-go.
  • Jika ACK dedicated cluster Anda telah mengaktifkan akses publik, Anda dapat mengambil file kubeconfig dari node master melalui SSH dan menggunakan kubectl secara lokal untuk mengelola kluster. Untuk informasi lebih lanjut, lihat Hubungkan ke node master ACK dedicated cluster menggunakan SSH.

2. Dapatkan file KubeConfig dan hubungkan ke kluster

Setelah Anda memperoleh file kubeconfig dari konsol, kubectl dapat menggunakannya untuk menghubungkan dan mengelola kluster.

Sebelum Pengguna Resource Access Management (RAM) dapat menghubungkan ke kluster, mereka harus diberikan izin yang diperlukan baik di tingkat global ACK maupun untuk kluster tertentu. Untuk informasi lebih lanjut, lihat Otorisasi.
  1. Login ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, temukan kluster yang ingin Anda kelola, lalu klik nama kluster tersebut atau klik Details di kolom Actions. Halaman detail kluster akan muncul.

  3. Pada halaman Cluster Information, klik tab Connection Information, lalu pilih kubeconfig sementara atau jangka panjang. Jika Anda memilih kubeconfig sementara, atur periode validitas yang sesuai.

  4. Pilih tab Public Access atau Internal Access. Klik Copy. Tempel konten kubeconfig yang disalin ke file $HOME/.kube/config pada mesin klien Anda. Simpan dan keluar dari file tersebut.

    Jika file atau direktori ini belum ada, Anda dapat menjalankan mkdir -p $HOME/.kube dan touch $HOME/.kube/config untuk membuat $HOME/.kube/config.
  5. Setelah konfigurasi selesai, jalankan perintah kubectl untuk memverifikasi konektivitas kluster.

    Sebagai contoh, Anda dapat melakukan kueri 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

Going live

  • Pastikan validitas kubeconfig: Untuk mencegah gangguan layanan, lakukan rotasi kredensial sebelum masa berlakunya habis.

    Kubeconfig jangka panjang berlaku selama 3 tahun. Anda dapat memperoleh kubeconfig baru dari Konsol ACK atau melalui API DescribeClusterUserKubeconfig dalam waktu 180 hari sebelum masa berlakunya habis.

    Kubeconfig baru juga akan berlaku selama 3 tahun. Kubeconfig lama tetap berlaku hingga tanggal kedaluwarsa aslinya.
  • Segera cabut kubeconfig jika dikompromikan: Jika Anda mencurigai file kubeconfig telah dikompromikan, segera cabut kredensial kubeconfig kluster. Setelah dicabut, sistem akan menghasilkan kubeconfig dan binding otorisasi baru, serta semua koneksi berbasis kubeconfig lama akan menjadi tidak valid.

  • Bersihkan izin: Dalam skenario di mana pengguna tidak lagi memerlukan hak akses—misalnya setelah proyek selesai atau karyawan berhenti—gunakan fitur Clean up untuk mencabut izin kubeconfig secara massal. Setelah pembersihan, sistem tidak akan menghasilkan kubeconfig baru. Untuk langkah-langkah spesifik, lihat Purge kubeconfig files dan Gunakan ack-ram-tool untuk mencabut izin pengguna tertentu dalam kluster.

    Untuk menghindari penghapusan izin yang tidak disengaja, Anda dapat menggunakan Keranjang daur ulang KubeConfig untuk memulihkan izin KubeConfig yang telah dicabut.

FAQ

Bagaimana cara menemukan informasi identitas yang terkait dengan sertifikat kubeconfig?

Jalankan perintah berikut:

grep client-certificate-data kubeconfig |awk '{print $2}' |base64 -d | openssl x509 -noout -text |grep Subject:
Sesuaikan path kubeconfig sesuai kebutuhan. Secara default, kubectl menggunakan $HOME/.kube/config untuk menghubungkan ke kluster. Anda juga dapat menentukan file kubeconfig lain dengan mengatur variabel lingkungan KUBECONFIG atau opsi --kubeconfig

Output-nya mirip dengan:

        Subject: O=system:users, OU=, CN=1***-1673419473

Di mana:

  • O: Kelompok pengguna Kubernetes. Pada contoh ini, nama kelompoknya adalah system:users.

  • CN: Informasi pengguna terkait. Pada contoh ini, penggunanya adalah 1***-1673419473, di mana 1*** adalah ID pengguna Alibaba Cloud di bawah akun tersebut.

Bagaimana cara memeriksa tanggal kedaluwarsa sertifikat kubeconfig?

Jalankan perintah berikut untuk mendapatkan tanggal kedaluwarsa sertifikat yang terkait dengan file kubeconfig:

grep client-certificate-data kubeconfig |awk '{print $2}' |base64 -d | openssl x509 -noout -enddate
Sesuaikan path kubeconfig sesuai kebutuhan. Secara default, kubectl menggunakan $HOME/.kube/config untuk menghubungkan ke kluster. Anda juga dapat menentukan file kubeconfig lain dengan mengatur variabel lingkungan KUBECONFIG atau opsi --kubeconfig

Output-nya mirip dengan:

notAfter=Jan 10 06:44:34 2026 GMT

Pada contoh ini, Jan 10 06:44:34 2026 GMT adalah tanggal kedaluwarsa sertifikat tersebut.

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

Bagaimana cara mendapatkan sertifikat klien, kunci privat klien, dan informasi API server?

Gunakan perintah berikut untuk mengekstrak sertifikat klien, kunci privat klien, dan informasi API server dari file kubeconfig:

cat  ./kubeconfig |grep client-certificate-data | awk -F ' ' '{print $2}' |base64 -d > ./client-cert.pem
cat  ./kubeconfig |grep client-key-data | awk -F ' ' '{print $2}' |base64 -d > ./client-key.pem
APISERVER=`cat  ./kubeconfig |grep server | awk -F ' ' '{print $2}'`
Sesuaikan path kubeconfig sesuai kebutuhan. Secara default, kubectl menggunakan $HOME/.kube/config untuk menghubungkan ke kluster. Anda juga dapat menentukan file kubeconfig lain dengan mengatur variabel lingkungan KUBECONFIG atau opsi --kubeconfig

Bagaimana cara mengatasi error certificate is valid for saat menghubungkan ke kluster menggunakan kubectl?

Jika Anda meng-bind alamat IP baru ke instans Server Load Balancer (SLB) untuk API server kluster, perintah kubectl yang ditujukan ke IP baru tersebut mungkin gagal dengan error Error while proxying request: x509: certificate is valid for xxx atau Unable to connect to the server: x509: certificate is valid for xxx.

  • ACK managed clusters: Tambahkan alamat IP baru ke Subject Alternative Name (SAN) sertifikat API server. Untuk informasi lebih lanjut, lihat Sesuaikan SAN sertifikat API server saat membuat kluster ACK.

  • ACK dedicated clusters: Konfigurasikan kubectl untuk mengabaikan error ini menggunakan opsi insecure-skip-tls-verify.

    Penting

    Mengabaikan verifikasi TLS merupakan risiko keamanan dan tidak direkomendasikan untuk lingkungan produksi. Kami sangat menyarankan melakukan migrasi hot dari ACK dedicated cluster ke edisi Pro ACK managed cluster. Setelah itu, tambahkan alamat IP baru ke SAN sertifikat API server.

    • Metode 1: Tentukan opsi --insecure-skip-tls-verify saat menjalankan perintah kubectl.

      kubectl -s https://<IP>:6443 --insecure-skip-tls-verify get ns
    • Metode 2: Ubah file kubeconfig dengan menambahkan pengaturan insecure-skip-tls-verify: true dan menghapus pengaturan certificate-authority-data.

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

ACK managed clusterApakah saya bisa mendapatkan kunci root certificate untuk menghasilkan sertifikat kubeconfig sendiri?

ACK managed clusters tidak mengekspos kunci root certificate. Kami menyarankan Anda mendapatkan kubeconfig kluster dari konsol atau dengan memanggil operasi OpenAPI.

Referensi