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.
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.
Login ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
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.
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.
Pilih tab Public Access atau Internal Access. Klik Copy. Tempel konten kubeconfig yang disalin ke file
$HOME/.kube/configpada mesin klien Anda. Simpan dan keluar dari file tersebut.Jika file atau direktori ini belum ada, Anda dapat menjalankan
mkdir -p $HOME/.kubedantouch $HOME/.kube/configuntuk membuat$HOME/.kube/config.Setelah konfigurasi selesai, jalankan perintah kubectl untuk memverifikasi konektivitas kluster.
Sebagai contoh, Anda dapat melakukan kueri namespace.
kubectl get namespacesOutput 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/configuntuk menghubungkan ke kluster. Anda juga dapat menentukan file kubeconfig lain dengan mengatur variabel lingkunganKUBECONFIGatau opsi--kubeconfig
Output-nya mirip dengan:
Subject: O=system:users, OU=, CN=1***-1673419473Di mana:
O: Kelompok pengguna Kubernetes. Pada contoh ini, nama kelompoknya adalahsystem:users.CN: Informasi pengguna terkait. Pada contoh ini, penggunanya adalah1***-1673419473, di mana1***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 -enddateSesuaikan path kubeconfig sesuai kebutuhan. Secara default, kubectl menggunakan$HOME/.kube/configuntuk menghubungkan ke kluster. Anda juga dapat menentukan file kubeconfig lain dengan mengatur variabel lingkunganKUBECONFIGatau opsi--kubeconfig
Output-nya mirip dengan:
notAfter=Jan 10 06:44:34 2026 GMTPada 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/configuntuk menghubungkan ke kluster. Anda juga dapat menentukan file kubeconfig lain dengan mengatur variabel lingkunganKUBECONFIGatau 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
kubectluntuk mengabaikan error ini menggunakan opsiinsecure-skip-tls-verify.PentingMengabaikan 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-verifysaat menjalankan perintahkubectl.kubectl -s https://<IP>:6443 --insecure-skip-tls-verify get nsMetode 2: Ubah file kubeconfig dengan menambahkan pengaturan
insecure-skip-tls-verify: truedan menghapus pengaturancertificate-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
Anda dapat memanggil OpenAPI untuk mengkueri kubeconfig kluster. Untuk informasi lebih lanjut, lihat DescribeClusterUserKubeconfig.
Untuk login ke node, lihat Ikhtisar metode koneksi jarak jauh ECS.