Kubectl adalah utilitas baris perintah di Kubernetes digunakan untuk menjalankan perintah terhadap Kubernetes cluster. Anda dapat menggunakannya untuk melakukan berbagai tugas, termasuk menerapkan aplikasi/layanan mikro, melihat dan mengelola sumber daya, memeriksa file log, dan masih banyak lagi.
Dalam tutorial ini, kami menampilkan fitur yang umum digunakan kubectl perintah untuk mengatur a Kubernetes (K8S) gugus.
Kami menggunakan Minikube pada Ubuntu 22.04 sebagai lokal kita Kubernetes gugus.
Di dalam Kubernetes, objek adalah entitas persisten yang memastikan klaster Anda mencapai status yang diinginkan. Mereka adalah blok bangunan dari beban kerja Anda dalam sebuah cluster. Objek termasuk replikaset, penyebaran, pod, daemonset, layanan, ruang nama, peta konfigurasi dan rahasia, dan volume persisten untuk menyebutkan beberapa.
Cara paling umum untuk membuat objek adalah menggunakan a YAML file manifes biasanya dengan a .yaml
atau .yml
ekstensi file.
Untuk membuat objek dari a YAML file manifes, jalankan:
$ kubectl apply -f ./file1.yaml.
Untuk membuat sumber daya dari beberapa YAML file, jalankan:
$ kubectl apply -f ./file1.yaml -f ./file2.yaml
Untuk membuat resource dari semua file manifes dalam direktori, jalankan:
$ kubectl apply -f ./dir
Untuk membuat sumber daya dari URL, jalankan:
$ kubectl apply -f https://sample-url.io.
A simpul adalah mesin fisik atau virtual tempat pod dan sumber daya lain yang mendukung beban kerja Anda berjalan. Setiap node dikelola oleh master node yang dikenal sebagai a panel kontrol yang berisi banyak layanan yang diperlukan untuk menjalankan pod. Sebuah cluster biasanya memiliki beberapa node.
Untuk mendapatkan jumlah node di cluster Anda, jalankan:
$ kubectl get nodes.
Untuk menjalankan pod pada sebuah node, jalankan:
$ kubectl get pods -o wide | grep
Untuk menandai node Anda sebagai tidak dapat dijadwalkan, jalankan.
$ kubectl cordon minikubenode/minikube cordoned
Untuk menandai node Anda sebagai dapat dijadwalkan, jalankan.
$ kubectl uncordon minikubenode/minikube uncordoned
Untuk menampilkan metrik penggunaan sumber daya seperti RAM Dan CPU berlari:
$ kubectl top node
Untuk menghapus satu atau beberapa node, jalankan perintah:
$ kubectl delete node
A Kluster Kubernetes adalah sekelompok node atau server yang menjalankan aplikasi kemas. Sebuah node dapat menjalankan satu atau beberapa pod yang berisi satu atau lebih container yang sedang berjalan.
Untuk membuat daftar informasi tentang menguasai.
$ kubectl cluster-info.
Untuk memeriksa kubectl Versi: kapan.
$ kubectl version --short.
Untuk menampilkan konfigurasi cluster Kubernetes.
$ kubectl config view.
Untuk menampilkan konteks.
$ kubectl config get-contexts.
Untuk membuat daftar sumber daya API yang tersedia.
$ kubectl api-resources.
Untuk mencantumkan versi API yang tersedia.
$ kubectl api-versions.
Di dalam Kubernetes, A polong adalah unit terkecil yang dapat diterapkan yang dapat Anda buat dan kelola dalam sebuah cluster. Sebuah pod berisi sekelompok kontainer dengan volume bersama dan sumber daya jaringan beserta instruksi tentang cara menjalankan aplikasi.
Pod bersifat fana dan sekali pakai, yang berarti bahwa mereka berumur pendek dan karenanya tidak bertahan untuk jangka waktu yang lama. Dengan demikian, pendekatan terbaik untuk menerapkan pod adalah menggunakan konfigurasi deklaratif menggunakan file YAML.
Ini lebih dapat direproduksi dan nyaman karena dapat digunakan kembali. Selain itu, ini memastikan bahwa sumber daya yang ditentukan dalam file YAML terus dipantau oleh Kubernetes dan berjalan seperti yang ditentukan.
Untuk mendapatkan daftar pod yang sedang berjalan di klaster Anda, jalankan perintah:
$ kubectl get pods.
Untuk menampilkan pod di samping labelnya, jalankan:
$ kubectl get pods --show-labels.
Untuk membuat daftar semua pod di semua ruang nama, jalankan:
$ kubectl get pods --all-namespaces.
Untuk membuat daftar pod di namespace saat ini dan dengan detail lebih lanjut, tambahkan -o
parameter luas.
$ kubectl get pods -o wide.
Untuk menampilkan status terperinci dari pod tertentu, jalankan:
$ kubectl describe pod
Untuk menambahkan label ke pod, jalankan perintah:
$ kubectl label pods my-pod new-label=awesome.
Untuk menghapus label, jalankan:
$ kubectl label pods my-pod new-label-
Untuk mendapatkan shell interaktif dengan pod container, jalankan perintah:
$ kubectl exec -it/bin/sh.
Untuk menghapus pod tertentu, jalankan perintah berikut:
$ kubectl delete pod
A Set Replika (RS) memastikan bahwa selalu ada jumlah pod yang berjalan pada waktu tertentu. Ini menjamin ketersediaan sejumlah pod tertentu seperti yang didefinisikan dalam file manifes YAML.
Untuk mendapatkan jumlah ReplicaSet dalam sebuah cluster, jalankan perintah:
$ kubectl get replicasets.
Untuk mendapatkan informasi lebih lanjut tentang kumpulan replika tertentu, jalankan perintah:
$ kubectl describe replicasets
Layanan adalah abstraksi jaringan melalui pod. Layanan menyediakan penemuan dan perutean antar pod. Misalnya, layanan dapat menghubungkan ujung depan aplikasi ke ujung belakangnya, masing-masing berjalan dalam penerapan terpisah.
Untuk membuat daftar layanan yang dijalankan:
$ kubectl get services.
Untuk mendapatkan detail lebih lanjut tentang layanan, jalankan perintah:
$ kubectl describe services.
Akun layanan adalah objek yang digunakan oleh pod dalam sebuah cluster untuk mengakses server API Kubernetes.
Untuk membuat daftar akun layanan, jalankan:
$ kubectl get serviceaccounts.
Untuk mendapatkan informasi lebih rinci tentang akun layanan, jalankan:
$ kubectl describe serviceaccounts.
Untuk menghapus akun layanan, gunakan sintaks berikut.
$ kubectl delete serviceaccounts
Ruang nama adalah unit yang menyediakan sarana dimana satu cluster dapat dibagi lagi menjadi beberapa sub-cluster yang kemudian dapat dikelola secara individual.
Untuk mendaftar ruang nama, jalankan:
$ kubectl get namespaces.
Untuk menampilkan informasi mendetail tentang namespace, gunakan sintaks:
$ kubectl describe namespace
Untuk membuat namespace jalankan perintah:
$ kubectl create namespace
Untuk mengedit atau memodifikasi namespace, jalankan perintah:
$ kubectl edit namespace
Untuk menampilkan penggunaan resource dari namespace run:
$ kubectl top namespace
Untuk menghapus namespace, jalankan perintah:
$ kubectl delete namespace
Di dalam Kubernetes, rahasia adalah objek yang menyimpan informasi sensitif & rahasia seperti nama pengguna dan kata sandi.
Untuk membuat daftar rahasia yang ada, jalankan perintah:
$ kubectl get secret.
Untuk membuat daftar informasi terperinci tentang rahasia yang ada, jalankan:
$ kubectl describe secrets.
Untuk membuat rahasia, jalankan
$ kubectl create secret [flags] [options]
Untuk menghapus rahasia, jalankan:
$ kubectl delete secret
A penyebaran adalah objek yang memungkinkan Anda mendeklarasikan status aplikasi yang diinginkan. Anda dapat menentukan jumlah replika, gambar untuk pod, jumlah pod, dan sumber daya lainnya.
Untuk mendapatkan jumlah penerapan, jalankan perintah:
$ kubectl get deployment.
Cantumkan status mendetail dari penerapan tertentu.
$ kubectl describe deployment
Untuk menghapus penerapan, jalankan perintah:
$ kubectl delete deployment
Untuk membuat penerapan baru, jalankan perintah:
$ kubectl create deployment
Di dalam Kubernetes, sebuah peristiwa adalah objek yang dihasilkan sebagai respons terhadap perubahan status sumber daya seperti pod, wadah, atau simpul. Contoh yang baik adalah perubahan status pod dari tertunda menjadi berjalan, atau sukses menjadi gagal.
Untuk membuat daftar semua acara, jalankan:
$ kubectl get events.
Untuk membuat daftar acara tetapi mengecualikan acara pod, jalankan perintah:
$ kubectl get events --field-selector involvedObject.kind!=Pod.
Untuk membuat daftar acara beserta stempel waktunya dan diurutkan menurut waktu pembuatan, jalankan:
$ kubectl get events --sort-by=.metadata.creationTimestamp.
Log sangat penting dalam merekam peristiwa klaster dan membantu dalam debugging dan pemecahan masalah kesalahan. Anda dapat melihat atau mengonfigurasi verbositas log menggunakan perintah berikut:
Untuk mencetak log untuk menjalankan pod tertentu:
$ kubectl logs
Untuk mencetak dan juga mengikuti log real-time untuk eksekusi pod tertentu:
$ kubectl logs -f
Untuk mencetak log pod selama X jam terakhir, misalnya 3 jam, jalankan:
$ kubectl logs --since=3h
Untuk mencetak log untuk wadah tertentu di dalam pod, jalankan
$ kubectl logs -c
Hasilkan 20 baris log terbaru
$ kubectl logs --tail=20
Hasilkan log dari pod dan simpan log di file log yang disebut pod.log
$ kubectl logspod.log.
Itu tadi gambaran umum dari beberapa yang paling umum digunakan kubectl perintah untuk mengelola a Kubernetes gugus.