Cara Menyederhanakan Manajemen Kubernetes Dengan Konteks Kubectl

  • Post author:
  • Post category:Tutorial

Kubectl konteks adalah mekanisme untuk beralih cepat antara cluster yang berbeda, pengguna, dan ruang nama dalam CLI. Mereka membuatnya lebih mudah untuk berpindah di antara beberapa lingkungan tanpa mengubah file konfigurasi Kubectl aktif Anda.

Dalam artikel ini, kami akan menunjukkan bagaimana Anda dapat menggunakan Kubectl untuk membuat, mengelola, dan memilih konteks yang berbeda. Pastikan Anda sudah menginstal Kubectl sebelum melanjutkan.

Pengertian Contexts

Contexts merangkum kumpulan pengaturan yang memungkinkan koneksi sukses ke cluster Kubernetes. Konteks dapat mencakup URL cluster, satu set kredensial pengguna, dan namespace yang akan ditargetkan secara default.

Jika konteks tidak ada, lingkungan Kubernetes yang unik sering ditangani dengan membuat file konfigurasi terpisah untuk masing-masing konteks. Anda kemudian menggunakan flag –kubeconfig atau variabel lingkungan KUBECONFIG untuk memuat file yang benar setiap kali Anda menggunakan Kubectl:

$ export KUBECONFIG=.kube/cluster-1-user-1.yaml 
$ kubectl get pods

Contexts memungkinkan Anda menyingkat detail semua lingkungan Anda menjadi satu file konfigurasi. Anda dapat menggunakan .kube/config default untuk setiap cluster Anda, menghilangkan flag CLI dan variabel lingkungan. Kubectl menyertakan perintah untuk mengalihkan konteks aktifnya di antara opsi yang telah Anda buat.

Menyiapkan Konteks

Contexts dikelola menggunakan grup perintah kubectl config. Seperti semua hal lain di Kubectl, daftar konteks Anda yang tersedia akan dimuat dari dan disimpan ke file konfigurasi aktif Anda. Ini ditentukan oleh KUBECONFIG, –kubeconfig, atau .kube/config.

default Untuk mulai menggunakan konteks, Anda perlu menambahkan beberapa cluster dan kredensial ke file konfigurasi Anda. Anda dapat menggunakan perintah konfigurasi kubectl lainnya untuk mengaturnya:

# Buat dua koneksi cluster, qa dan prod 
$ kubectl set-cluster qa --server=https://192.168.0.1 --insecure-skip-tls-verify 
$ kubectl set-cluster prod --server=https://192.168.0.2 --insecure-skip-tls-verify 

# Buat dua pasangan kredensial 
$ kubectl set-credentials qa-user --username=demo [email protected]_qa 
$ kubectl set-credentials prod-user --username=demo [email protected]_prod

Sekarang file konfigurasi Anda berisi detail koneksi untuk dua cluster Kubernetes yang terpisah. Itu juga memegang dua pasang kredensial. Selanjutnya kita akan membuat konteks untuk menautkan cluster ke kredensial masing-masing. Anda kemudian dapat menggunakan perintah Kubectl untuk melompat antara QA dan lingkungan produksi.

Membuat Konteks

Perintah kubectl config set-context menambahkan konteks baru ke file konfigurasi Anda. Anda harus menentukan nama untuk konteks Anda. Gunakan flag perintah untuk mereferensikan cluster dan akun pengguna yang ditambahkan sebelumnya.

# Buat konteks untuk cluster yang ditambahkan sebelumnya 
$ kubectl config set-context qa-context --cluster=qa --user=qa-user 
$ kubectl config set-context prod-context --cluster=prod --user=prod-user

Pada titik ini Anda dapat menjalankan perintah kubectl config view untuk memeriksa semua perubahan yang telah dibuat pada file konfigurasi Anda:

apiVersion: v1 kind: Config current-context: ” ” cluster: – cluster: nama: qa server: https://192.168.0.1 insecure-skip-tls-verify: true – cluster: name: prod server: https://192.168.0.2 insecure-skip-tls-verify: konteks sebenarnya: – konteks: nama: qa-context cluster: qa pengguna: qa-user – konteks: nama: prod-context cluster: prod pengguna: prod-user users: – nama: qa-user user: username: demo password: [email protected]_qa – nama: pengguna prod: nama pengguna: kata sandi demo: [email protected]_prod

Definisi konteks menunjuk ke jenis objek lain yang ditentukan di tempat lain dalam file konfigurasi.

Memilih dan Menggunakan Contexts

Contexts dipilih dengan perintah kubectl context use-context:

$ kubectl context use-context qa-context

Nama konteks aktif disimpan sebagai nilai bidang konteks saat ini di file konfigurasi Kubectl Anda. Semua perintah Kubectl akan menargetkan cluster yang direferensikan oleh konteks yang dipilih.

# Menghubungkan ke cluster https://192.168.0.1 sebagai demo:[email protected]_qa 
$ kubectl get pods 

# Mengganti konteks aktif 
$ kubectl config use-context prod-context 

# Terhubung ke kluster https://192.168.0.2 sebagai demo:[email protected]_prod 
$ kubectl get pods

Kemampuan untuk dengan cepat mengubah lingkungan target dalam Kubectl membantu Anda berpindah antar kluster tanpa kewalahan oleh flag config.

Karena konteks yang dipilih tetap ada hingga yang lain satu dipilih, Anda harus memeriksa Kubectl menargetkan lingkungan yang Anda harapkan sebelum menjalankan perintah destruktif. Gunakan perintah current-context untuk melihat nama konteks yang dipilih:

$ kubectl config current-context prod-context

Anda dapat melihat semua konteks dalam file konfigurasi yang sedang dimuat dengan get-contexts:

$ kubectl config get-contexts CURRENT NAME CLUSTER AUTHINFO NAMESPACE qa-context qa qa-user * prod-context prod prod-user

Termasuk Informasi Namespace Dengan Contexts

Sejauh ini kita telah menggunakan konteks untuk memilih cluster dan akun pengguna. Konteks dapat menyertakan informasi namespace juga. Ketika sebuah konteks memiliki namespace yang ditetapkan, perintah Kubectl akan secara otomatis menyertakan flag –namespace. Anda masih dapat menggunakan –namespace secara manual untuk mengganti namespace yang disetel oleh context.

$ kubectl config set-context production-api --cluster=prod --user=prod-user --namespace api $ kubectl config use-context production -api
# Mendapatkan Pod di namespace "api" dalam cluster "prod" 
$ kubectl get pods

Tidak ada batasan jumlah konteks yang dapat Anda miliki. Cluster dapat muncul dalam beberapa konteks, memungkinkan Anda menentukan konteks terpisah untuk setiap ruang nama penting Anda. Ini menghindari pengulangan flag –namespace saat Anda memeriksa sumber daya yang berbeda di cluster Anda.

Mengganti Nama dan Menghapus Konteks

Rename konteks menggunakan perintah rename-context:

$ kubectl config rename-context qa-context testing-context

Untuk menghapus konteks, berikan namanya ke perintah delete-context:

$ kubectl config delete-context testing-context

Kluster, pengguna, dan namespace yang direferensikan oleh konteks diubah dengan mengulangi perintah set-context dengan nama konteks yang sama. Anda juga dapat melakukan modifikasi dengan mengedit file konfigurasi Kubectl Anda secara manual.

Membuat Peralihan Konteks Bahkan Lebih Mudah

Manajemen konteks terintegrasi Kubectl bisa cukup ketika Anda berpindah cluster dalam basis yang relatif jarang. Namun, jika Anda terus-menerus mengubah cluster sepanjang hari, perintah use-context yang relatif bertele-tele dapat mulai terasa berulang dengan sendirinya.

Kubectx adalah plugin Kubectl yang dapat membuat peralihan konteks menjadi lebih mudah. Ini memperpendek konteks penggunaan dan menambahkan beberapa fitur kenyamanan ekstra:

# Setara dengan "kubectl config use-context prod-context" 
$ kubectx prod-context

Tergantung pada alur kerja Anda, Anda mungkin ingin tetap menggunakan beberapa file konfigurasi Kubectl juga. Anda dapat menggunakan alias shell dan variabel lingkungan default untuk menyiapkan alur kerja khusus yang secara otomatis memilih file konfigurasi dan konteks untuk setiap jendela terminal baru. Konteks

Kesimpulan

Kubectl adalah cara untuk merangkum beberapa koneksi cluster logis dalam satu file konfigurasi. Setiap konteks diberi URL cluster, akun pengguna, dan namespace. Perintah Kubectl akan menargetkan cluster konteks yang dipilih menggunakan kredensial yang direferensikan.

Anda dapat mengatur konteks dengan set-context kubectl config atau dengan mengedit file .kube/config Anda secara manual. Kubectl juga menyertakan perintah untuk mengelola koneksi cluster bernama dan akun pengguna yang dapat Anda rujuk di contexts.

Itulah berita seputar Cara Menyederhanakan Manajemen Kubernetes Dengan Konteks Kubectl, semoga bermanfaat. Disadur dari HowToGeek.com.