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.
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.
Masuk ke Konsol ACK. Pada panel navigasi sebelah kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik nama kluster atau klik Details di kolom Actions. Halaman detail kluster akan ditampilkan.
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.
Pilih tab Public Access atau Internal Access, lalu klik Copy untuk menyalin isi kubeconfig. Tempelkan konten yang disalin ke dalam file
$HOME/.kube/configdi perangkat klien Anda, lalu simpan dan keluar dari file tersebut.Jika file atau direktori ini tidak ada, jalankan
mkdir -p $HOME/.kubedantouch $HOME/.kube/configuntuk membuatnya.Verifikasi koneksi dengan menjalankan perintah
kubectl. Sebagai contoh, untuk menampilkan semua namespace:kubectl get namespacesJika 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/configuntuk terhubung ke kluster. Anda juga dapat menentukan file kubeconfig lain dengan mengatur variabel lingkunganKUBECONFIGatau parameter--kubeconfig.
Output yang dihasilkan akan serupa dengan:
Subjek: O=system:users, OU=, CN=1***-1673419473Di mana:
O: Grup pengguna Kubernetes. Dalam contoh ini, nama grup adalahsystem:users.CN: Informasi pengguna terkait. Dalam contoh ini, pengguna adalah1***-1673419473, dimana1***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 -enddateSecara default, kubectl menggunakan$HOME/.kube/configuntuk terhubung ke kluster. Anda juga dapat menentukan file kubeconfig lain dengan mengatur variabel lingkunganKUBECONFIGatau parameter--kubeconfig.
Output yang dihasilkan akan serupa dengan:
notAfter=Jan 10 06:44:34 2026 GMTDalam 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/configuntuk terhubung ke kluster. Anda juga dapat menentukan file kubeconfig lain dengan mengatur variabel lingkunganKUBECONFIGatau 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
kubectluntuk mengabaikan kesalahan ini dengan menggunakan opsiinsecure-skip-tls-verify.PentingMengabaikan 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-verifysaat Anda 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: ...
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
Untuk mengambil kubeconfig kluster, panggil operasi API DescribeClusterUserKubeconfig.
Untuk masuk ke node, lihat Ikhtisar metode koneksi jarak jauh ECS.