Kubectl adalah perintah dari command-line ( prompt dari terminal) sehingga pengguna (user) dapat berinteraksi dengan kluster kubernetes. Kubectl menggunakan API kubernetes untuk berkomunikasi dengan control plane dari kubernetes. Apa itu control plane bisa diterangkan di bawah ini:
Gambar di atas diambil dari situs resmi kubernetes.
Control plane kubernetes yang merupakan otak dari sebuah kluster kubernetes ditandai di gambar di atas dengan garis terputus-putus. Keterangan lebih lanjut mengenai kluster kubernetes secara detil akan diterangkan di halaman yang lain. Artikel ini akan membahas lebih detil tentang kubectl itu sendiri.
Seperti telah ditulis di atas kubectl adalah sebuah perintah di terminal, yang sintaks dasarnya adalah:
kubectl [Perintah] [TIPE] [NAMA] [flags]
Berikut adalah perintah-perintah yang ada:
- perintah yang mungkin menjadi pilihan adalah: get, create, describe, delete. Get untuk mendapatkan informasi sebuah objek, create untuk menciptakan, describe untuk menerangkan tentang objek dan delete untuk menghapus sebuah objek.
- TIPE: menyatakan resource yang menjadi objek seperti pod, service. deployment
- NAMA: nama dari resource yang dijadikan objek.
- flags: ini berguna untuk mengubah karakteristik dari perintah yang diberikan.
Perintah yang biasa Digunakan
Perintah | Contoh | Keterangan (untuk namespace default) |
Get | kubectl get pods | daftar semua pods di sebuah namespace |
Describe | kubectl describe pod <nama dari pod> | deskripsi dari sebuah pod di sebuah namespace |
Create | kubectl create -f <file.yaml> | pembuatan sebuah resource |
Delete | kubectl delete | penghapusan sebuah resource |
Apply | kubectl apply -f <file.yaml> | mengaplikasikan sesuatu perubahan di resource kubernetes yang didefinisikan di file.yaml |
Tanpa referensi -n <namespace> semua perintah di atas dilakukan di namespace default.
Di saat sebuah perintah kubectl dilaksanakan, perintah kubectl dilakukan terhadap sebuah kluster yang didefiniskan oleh hasil dari perintah berikut:
$ kubectl config current-contex
Context di atas didefiniskan oleh file konfigurasi yang disebut sebagai file kubeconfig. Lokasi file secara default berada di ~/.kube/config. Saat ingin mengubah sebuah context, dalam hal ini berarti kita ingin mengubah kluster tempat kita berinteraksi dapat dilakukan dengan perintah berikut:
$ kubectl config use-contex <nama dari context>
Satu hal yang penting saat kita bekerja dengan kubectl adalah auto-completion, seperti di perintah linux saat kita menulis sebuah perintah dan menekan tombol tab, perintah yang kita inginkan langsung keluar tanpa perlu mengetik seluruh perintah itu. Hal ini pun dimiliki oleh kubectl. Untuk itu perlu didefinsikan di .bashrc untuk bash:
source <(kubectl completion bash)
untuk zsh, jika kita menggunakan macOS
source <(kubectl completion zsh)