全部产品
Search
文档中心

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

更新时间:Oct 20, 2025

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

Langkah 1: Instal dan konfigurasikan klien kubectl

Instal kubectl di perangkat klien sesuai dengan sistem operasi dan versi kluster Anda.

Langkah 2: Dapatkan dan gunakan file kubeconfig

1. Pilih tipe kubeconfig

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

Penting

Menurut model tanggung jawab bersama, Anda bertanggung jawab atas pengamanan dan pemeliharaan kredensial kubeconfig. Untuk meminimalkan risiko keamanan akibat kebocoran kredensial, lakukan rotasi kubeconfig secara berkala dan terapkan prinsip hak akses minimal.

  • Berdasarkan masa berlaku:

    • Kubeconfig sementara: Anda dapat mengonfigurasi masa berlakunya dari 30 menit hingga 3 hari. File ini akan kedaluwarsa secara otomatis, mengurangi risiko keamanan dari paparan kredensial. Opsi ini direkomendasikan untuk O&M harian, pemecahan masalah, dan alur kerja CI/CD di mana akses jangka panjang ke API server tidak diperlukan.

    • Kubeconfig jangka panjang: Tipe ini memiliki masa berlaku default 3 tahun. Cocok untuk sistem otomatis atau layanan pemantauan jangka panjang yang tidak memungkinkan rotasi kredensial secara berkala.

  • Berdasarkan metode akses:

    • Akses private: Gunakan opsi ini ketika perangkat klien berada di dalam Virtual Private Cloud (VPC) yang sama dengan kluster. Koneksi melalui jaringan internal menggunakan kubeconfig memberikan latensi lebih rendah dan tingkat keamanan yang lebih baik.

    • Akses publik: Gunakan opsi ini untuk menghubungkan ke kluster dari perangkat apa pun yang memiliki akses internet. Metode ini menggunakan Elastic IP (EIP) untuk mengekspos API server, sehingga cocok untuk pengembangan lokal maupun operasi dan pemeliharaan (O&M) jarak jauh.

      Untuk biaya yang terkait dengan EIP yang terikat, lihat Pembayaran sesuai pemakaian.
  • Jika Anda memiliki kluster khusus ACK dengan akses publik yang diaktifkan, Anda bisa mendapatkan file kubeconfig dari node master melalui SSH, dan menggunakan kubectl secara lokal untuk mengelola kluster. Untuk informasi lebih lanjut, lihat Menghubungkan ke node master kluster khusus ACK melalui SSH.

2. Dapatkan file kubeconfig dan hubungkan ke kluster

Setelah mendapatkan file kubeconfig dari konsol, kubectl dapat menggunakannya untuk terhubung ke dan mengelola klaster.

Sebelum pengguna Resource Access Management (RAM) dapat dapat terhubung ke kluster, mereka harus diberikan izin yang diperlukan, baik di tingkat global ACK maupun untuk kluster spesifik. Untuk informasi lebih lanjut, lihat Otorisasi.
  1. Masuk ke Konsol ACK. Pada panel navigasi sebelah kiri, klik Clusters.

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik nama kluster atau klik Details di kolom Actions. Halaman detail kluster akan ditampilkan.

  3. Pada halaman detail kluster, klik tab Connection Information, dan pilih antara kubeconfig sementara atau jangka panjang. Jika memilih kubeconfig sementara, atur periode validitas yang sesuai.

  4. Pilih tab Public Access atau Internal Access, lalu klik Copy untuk menyalin isi kubeconfig. Tempelkan konten yang disalin ke dalam file $HOME/.kube/config di perangkat klien Anda, lalu simpan dan keluar dari file tersebut.

    Jika file atau direktori ini tidak ada, jalankan mkdir -p $HOME/.kube dan touch $HOME/.kube/config untuk membuatnya.
  5. Verifikasi koneksi dengan menjalankan perintah kubectl. Sebagai contoh, untuk menampilkan semua namespace:

    kubectl get namespaces

    Jika koneksi berhasil, perintah akan mengembalikan daftar namespace:

    NAMA              STATUS   USIA
    default           Aktif    4h39m
    kube-node-lease   Aktif    4h39m
    kube-public       Aktif    4h39m
    kube-system       Aktif    4h39m

Terapkan di lingkungan produksi

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

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

    Kubeconfig baru juga berlaku selama 3 tahun. Kubeconfig lama akan tetap valid hingga tanggal kedaluwarsa aslinya.
  • Cabut kubeconfig segera jika terkompromi: Jika Anda mencurigai file kubeconfig terkompromi, cabut kredensial kubeconfig kluster segera. Ini akan membatalkan semua koneksi yang menggunakan kredensial lama dan menghasilkan kubeconfig baru.

  • Bersihkan izin: Jika pengguna tidak lagi memerlukan akses (misalnya, karena proyek selesai atau karyawan berhenti), cabut izin kubeconfig mereka secara massal. Setelah izin dicabut, sistem tidak akan menghasilkan kubeconfig baru. Untuk informasi lebih lanjut, lihat Hapus file kubeconfig dan Gunakan ack-ram-tool untuk mencabut izin pengguna tertentu pada kluster ACK.

    Untuk menghindari penghapusan izin secara tidak sengaja, Anda dapat menggunakan tempat sampah kubeconfig untuk memulihkan izin kubeconfig tertentu yang telah dicabut.

FAQ

Bagaimana cara menemukan informasi identitas yang terkait dengan sertifikat kubeconfig?

Jalankan perintah berikut, ganti kubeconfig dengan jalur ke file Anda:

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

Output yang dihasilkan akan serupa dengan:

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

Di mana:

  • O: Grup pengguna Kubernetes. Dalam contoh ini, nama grup adalah system:users.

  • CN: Informasi pengguna terkait. Dalam contoh ini, pengguna adalah 1***-1673419473, dimana 1*** adalah ID pengguna Alibaba Cloud.

Bagaimana cara memeriksa tanggal kedaluwarsa sertifikat kubeconfig?

Jalankan perintah berikut untuk mengambil tanggal kedaluwarsa sertifikat yang terkait dengan kubeconfig, ganti kubeconfig dengan jalur ke file Anda:

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

Output yang dihasilkan akan serupa dengan:

notAfter=Jan 10 06:44:34 2026 GMT

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

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

Bagaimana cara mengekstrak sertifikat klien, kunci private klien, dan informasi API server dari kubeconfig?

Anda dapat menggunakan perintah berikut, ganti kubeconfig dengan jalur ke file Anda:

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}'`
Secara default, kubectl menggunakan $HOME/.kube/config untuk terhubung ke kluster. Anda juga dapat menentukan file kubeconfig lain dengan mengatur variabel lingkungan KUBECONFIG atau parameter --kubeconfig.

Bagaimana cara mengatasi kesalahan sertifikat valid untuk saat terhubung ke kluster menggunakan kubectl?

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

  • Kluster terkelola ACK: Tambahkan alamat IP baru ke Subject Alternative Name (SAN) sertifikat API server. Untuk informasi lebih lanjut, lihat Kustomisasi SAN dari sertifikat API server saat Anda membuat kluster ACK.

  • Kluster khusus ACK: Konfigurasikan kubectl untuk mengabaikan kesalahan ini dengan menggunakan opsi insecure-skip-tls-verify.

    Penting

    Mengabaikan verifikasi TLS menimbulkan risiko keamanan dan tidak disarankan untuk lingkungan produksi. Sebaiknya migrasikan ke ACK Managed Pro clusters. Kemudian, tambahkan alamat IP baru ke SAN pada sertifikat API server.

    • Metode 1: Tentukan opsi --insecure-skip-tls-verify saat Anda 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:
      ...

Apakah saya bisa mendapatkan kunci sertifikat root untuk kluster terkelola ACK untuk menghasilkan sertifikat kubeconfig sendiri?

Tidak. Kluster terkelola ACK tidak mengekspos kunci sertifikat root. Dapatkan kubeconfig kluster dari konsol atau dengan memanggil operasi API.

Referensi