Halaman ini memberikan petunjuk untuk menginstal alat command line kubectl yang digunakan untuk mengelola dan mengakses cluster Google Kubernetes Engine (GKE). Konfigurasi kubectl
diperlukan jika Anda menjalankan beberapa cluster di Google Cloud.
Anda akan mempelajari hal berikut:
- Cara kerja
kubectl. - Cara menginstal
kubectldan dependensi yang diperlukan. - Cara menetapkan cluster default untuk
kubectl. - Cara menjalankan
kubectlperintah terhadap cluster tertentu.
Halaman ini ditujukan untuk administrator IT, Operator, dan Developer yang menyiapkan, memantau, dan mengelola infrastruktur cloud, termasuk menyediakan dan mengonfigurasi resource cloud. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang direferensikan dalam Google Cloud dokumentasi, lihat Peran dan tugas pengguna GKE umum.
Sebelum membaca halaman ini, pastikan Anda memahami Kubernetes kubectl.
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Mengaktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan perintah
gcloud components update. Versi gcloud CLI yang lebih lama mungkin tidak mendukung perintah yang dijalankan dalam dokumen ini.
- Pastikan Anda memiliki cluster Autopilot atau Standard yang ada. Untuk membuat cluster baru, lihat Membuat cluster Autopilot.
Menginstal kubectl
Anda dapat menginstal kubectl menggunakan Google Cloud CLI atau pengelola paket eksternal, seperti apt atau yum.
gcloud
Instal komponen
kubectl:gcloud components install kubectlPastikan
kubectlsudah diinstal dengan memeriksa apakah aplikasi tersebut memiliki versi terbaru:kubectl version --client
apt
Verifikasi bahwa Anda memiliki repositori
cloud-sdk:grep -rhE ^deb /etc/apt/sources.list* | grep "cloud-sdk"Outputnya mirip dengan hal berikut ini:
deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk mainJika repositori
cloud-sdktidak tercantum, instal gcloud CLI.Instal komponen
kubectl:apt-get update apt-get install -y kubectlPastikan
kubectlsudah diinstal dengan memeriksa apakah aplikasi tersebut memiliki versi terbaru:kubectl version --client
yum
Verifikasi bahwa Anda memiliki repositori
cloud-sdk:yum repolist | grep "google-cloud-sdk"Output-nya mirip dengan berikut ini:
google-cloud-sdk Google Cloud SDK 2,205Instal komponen
kubectl:yum install -y kubectlPastikan
kubectlsudah diinstal dengan memeriksa apakah aplikasi tersebut memiliki versi terbaru:kubectl version --client
Menginstal plugin yang diperlukan
kubectl dan klien Kubernetes lainnya memerlukan plugin autentikasi,
gke-gcloud-auth-plugin, yang menggunakan framework
Plugin Kredensial Client-go untuk
memberikan token autentikasi agar dapat berkomunikasi dengan cluster GKE.
Sebelum Kubernetes versi 1.26 dirilis, gcloud CLI akan mulai mewajibkan biner gke-gcloud-auth-plugin untuk diinstal. Jika plugin tidak diinstal, penginstalan kubectl yang ada atau klien Kubernetes kustom lainnya akan berhenti berfungsi.
Anda harus menginstal plugin ini untuk menggunakan kubectl dan klien lain agar dapat berinteraksi dengan GKE.
Klien yang ada akan menampilkan pesan error jika plugin tidak diinstal.
Sebelum memulai, periksa apakah plugin sudah terinstal:
gke-gcloud-auth-plugin --version
Jika output menampilkan informasi versi, lewati bagian ini.
Anda dapat menginstal plugin autentikasi menggunakan gcloud CLI atau
pengelola paket eksternal seperti apt atau yum.
gcloud
Instal biner gke-gcloud-auth-plugin:
gcloud components install gke-gcloud-auth-plugin
apt
Instal biner gke-gcloud-auth-plugin:
apt-get install google-cloud-sdk-gke-gcloud-auth-pluginyum
Instal biner gke-gcloud-auth-plugin:
yum install google-cloud-sdk-gke-gcloud-auth-pluginVerifikasi penginstalan biner gke-gcloud-auth-plugin:
Periksa versi biner
gke-gcloud-auth-plugin:gke-gcloud-auth-plugin --versionUpdate konfigurasi
kubectluntuk menggunakan plugin:gcloud container clusters get-credentials CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATIONGanti kode berikut:
CLUSTER_NAME: nama cluster Anda.CONTROL_PLANE_LOCATION: lokasi Compute Engine dari bidang kontrol cluster Anda. Berikan region untuk cluster regional, atau zona untuk cluster zona.
Verifikasi konfigurasi dengan menjalankan perintah berikut:
kubectl get namespacesOutputnya mirip dengan hal berikut ini:
NAME STATUS AGE default Active 51d kube-node-lease Active 51d kube-public Active 51d kube-system Active 51d
Untuk mengetahui informasi selengkapnya tentang plugin ini, lihat Kubernetes KEP.
Berinteraksi dengan kubectl
Kubernetes menggunakan file YAML bernama
kubeconfig
guna menyimpan informasi autentikasi cluster untuk kubectl. Secara default,
file disimpan di $HOME/.kube/config.
kubeconfig berisi grup parameter akses yang disebut konteks. Setiap konteks berisi cluster Kubernetes, pengguna, dan namespace default opsional. kubectl merujuk pada konteks saat menjalankan perintah.
Secara opsional, Anda dapat mengonfigurasi kubectl menggunakan tugas berikut:
- Pilih cluster yang digunakan
kubectluntuk berkomunikasi. - Tetapkan cluster default untuk
kubectldengan menyetel konteks saat ini di filekubeconfig. - Jalankan perintah
kubectlterhadap cluster tertentu menggunakan flag--cluster.
Lihat kubeconfig
Untuk melihat kubeconfig lingkungan Anda, jalankan perintah berikut:
kubectl config view
Perintah ini menampilkan daftar semua cluster dengan entri kubeconfig yang telah dibuat. Jika cluster GKE tercantum, Anda dapat menjalankan perintah kubectl untuknya di lingkungan Anda saat ini. Jika tidak, Anda perlu Menyimpan
informasi cluster untuk kubectl.
Lihat konteks saat ini untuk kubectl
Konteks saat ini adalah cluster yang saat ini menjadi default untuk
kubectl. Semua perintah kubectl dijalankan pada cluster tersebut.
Saat Anda membuat cluster menggunakan gcloud container clusters create-auto,
entri akan otomatis ditambahkan ke file kubeconfig di lingkungan Anda, dan
konteks saat ini akan berubah pada cluster tersebut. Contoh:
gcloud container clusters create-auto my-cluster
Creating my-cluster...done
Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-cluster
Guna melihat konteks saat ini untuk kubectl, jalankan perintah berikut:
kubectl config current-context
Simpan informasi cluster untuk kubectl
Saat Anda membuat cluster menggunakan Google Cloud konsol atau menggunakan gcloud CLI dari
komputer lain, file kubeconfig lingkungan Anda tidak akan diperbarui.
Selain itu, jika anggota tim project menggunakan gcloud CLI untuk membuat cluster dari komputer mereka, kubeconfig mereka akan diupdate, tetapi milik Anda tidak. Entri kubeconfig berisi salah satu dari:
- Kredensial Anda seperti yang ditampilkan dalam
gcloud auth list, atau - Kredensial default aplikasi, jika dikonfigurasi.
Untuk membuat konteks kubeconfig di lingkungan Anda, pastikan Anda memiliki
izin container.clusters.get. Peran IAM dengan hak istimewa
paling rendah yang memberikan izin ini adalah container.clusterViewer.
Untuk menghasilkan konteks kubeconfig bagi cluster tertentu, jalankan
perintah berikut:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Ganti kode berikut:
CLUSTER_NAME: nama cluster Anda.CONTROL_PLANE_LOCATION: lokasi Compute Engine dari bidang kontrol cluster Anda. Berikan region untuk cluster regional, atau zona untuk cluster zona.
Membuat entri kubeconfig menggunakan alamat IP internal cluster
Semua cluster memiliki beberapa alamat endpoint, masing-masing dengan karakteristik yang berbeda. Salah satu endpoint ini berfungsi sebagai endpoint kanonis yang digunakan oleh kubectl dan layanan lainnya untuk berkomunikasi dengan bidang kontrol cluster Anda.
GKE secara otomatis memilih endpoint berdasarkan urutan berikut:
- Alamat IP eksternal (jika Anda telah mengaktifkan endpoint eksternal)
- Alamat IP internal
- Alamat DNS (jika akses IP dinonaktifkan)
Untuk membuat entri kubeconfig bagi cluster, jalankan salah satu perintah berikut:
Untuk menggunakan endpoint kanonis secara default, jalankan perintah
gcloud container clusters get-credentials. Perintah ini menggunakan alamat IP di kolomendpointkonfigurasi cluster.Untuk menggunakan endpoint berbasis IP internal untuk cluster, jalankan perintah berikut:
gcloud container clusters get-credentials CLUSTER_NAME \ --internal-ipGanti
CLUSTER_NAMEdengan nama cluster Anda.Untuk menggunakan endpoint berbasis DNS untuk cluster, jalankan perintah berikut:
gcloud container clusters get-credentials CLUSTER_NAME \ --dns-endpoint
Konten file konfigurasi yang dihasilkan bervariasi berdasarkan endpoint yang Anda gunakan untuk terhubung ke cluster:
- Endpoint berbasis DNS: karena layanan Google Front End (GFE) yang
menghosting endpoint berbasis DNS menampilkan sertifikat yang ditandatangani oleh
otoritas sertifikat (CA) publik, entri
kubeconfigakan menghilangkan kolomcertificate-authority-data. - Endpoint berbasis IP: karena server API menampilkan sertifikat yang
ditandatangani oleh root CA cluster, entri
kubeconfigakan menyertakan kolomcertificate-authority-data. Kolom ini berisi sertifikat publik berenkode base-64 dari root CA cluster, yang dapat digunakan klien untuk memvalidasi sertifikat server API.
Untuk mengetahui informasi selengkapnya tentang sertifikat ini, lihat Keamanan transportasi untuk koneksi bidang kontrol.
Menetapkan cluster default untuk perintah kubectl
Jika sebelumnya Anda telah membuat entri kubeconfig untuk cluster, Anda dapat mengalihkan
konteks saat ini untuk kubectl ke cluster tersebut dengan menjalankan perintah
berikut:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Ganti kode berikut:
CLUSTER_NAME: nama cluster Anda.CONTROL_PLANE_LOCATION: lokasi Compute Engine dari bidang kontrol cluster Anda. Berikan region untuk cluster regional, atau zona untuk cluster zona.
Misalnya, pertimbangkan project dengan dua cluster, my-cluster dan my-new-cluster. Konteks saat ini adalah my-new-cluster, tetapi Anda ingin menjalankan
semua perintah kubectl terhadap my-cluster. Untuk mengalihkan konteks saat ini
dari my-new-cluster ke my-cluster, jalankan perintah berikut:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Menjalankan perintah kubectl individu terhadap cluster tertentu
Anda dapat menjalankan perintah kubectl satu per satu terhadap cluster tertentu menggunakan
--cluster=CLUSTER_NAME.
Misalnya, pertimbangkan lingkungan dengan dua cluster, my-cluster dan
my-new-cluster, dengan konteks saat ini adalah my-cluster. Anda ingin
men-deploy aplikasi ke my-new-cluster, tetapi tidak ingin mengubah
konteks saat ini. Untuk men-deploy aplikasi ke my-new-cluster tanpa mengubah konteks saat ini, Anda harus menjalankan perintah berikut:
kubectl run my-app --image us-docker.pkg.dev/my-project/my-repo/my-app:1.0 --cluster my-new-cluster
Langkah berikutnya
- Pelajari cara mengizinkan akses ke resource di cluster GKE.
- Lakukan autentikasi ke Google Cloud layanan dari workload GKE.
- Baca tips praktis
kubectl. - Memecahkan masalah alat command line
kubectl.
Coba sendiri
Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa GKE dalam skenario dunia nyata. Pelanggan baru juga akan mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
Coba GKE gratis