--- title: Contekan kubectl content_type: concept card: name: reference weight: 30 --- Lihat juga: [Ikhitsar Kubectl](/docs/reference/kubectl/overview/) dan [Panduan JsonPath](/docs/reference/kubectl/jsonpath). Laman ini merupakan ikhitisar dari perintah `kubectl`. # kubectl - Contekan ## Autocomplete Kubectl ### BASH ```bash source <(kubectl completion bash) # menyiapkan autocomplete untuk bash ke dalam shell saat ini, paket bash-completion harus diinstal terlebih dahulu. echo "source <(kubectl completion bash)" >> ~/.bashrc # menambahkan autocomplete secara permanen ke dalam bash shell kamu. ``` Kamu juga dapat menggunakan alias singkatan untuk `kubectl` yang juga bisa berfungsi dengan _completion_: ```bash alias k=kubectl complete -F __start_kubectl k ``` ### ZSH ```bash source <(kubectl completion zsh) # menyiapkan autocomplete untuk zsh ke dalam shell saat ini. echo "[[ $commands[kubectl] ]] && source <(kubectl completion zsh)" >> ~/.zshrc # menambahkan autocomplete secara permanen ke dalam zsh shell kamu. ``` ## Konteks Kubectl dan Konfigurasinya Memilih klaster Kubernetes yang mana yang ditembak oleh `kubectl` untuk berkomunikasi dan diubah konfigurasinya. Lihat dokumentasi [Otentikasi ke berbagai Klaster dengan kubeconfig](/id/docs/tasks/access-application-cluster/configure-access-multiple-clusters/) untuk mengetahui informasi tentang berkas konfigurasi ini secara detail. ```bash kubectl config view # memperlihatkan setelan kubeconfig yang sudah digabung (merged) # menggunakan beberapa berkas kubeconfig sekaligus dan melihat semua konfigurasinya sekaligus (merged) KUBECONFIG=~/.kube/config:~/.kube/kubconfig2 kubectl config view # mendapatkan kata sandi untuk pengguna e2e kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}' kubectl config view -o jsonpath='{.users[].name}' # memperlihatkan pengguna pertama kubectl config view -o jsonpath='{.users[*].name}' # mendapatkan daftar pengguna kubectl config get-contexts # memperlihatkan daftar konteks kubectl config current-context # memperlihatkan konteks saat ini kubectl config use-context my-cluster-name # menyetel konteks bawaan menjadi my-cluster-name # menambahkan seorang pengguna baru ke dalam kubeconf kamu yang mendukung basic auth kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword # menyimpan Namespace secara permanen untuk semua perintah kubectl pada konteks tersebut kubectl config set-context --current --namespace=ggckad-s2 # menyetel konteks yang menggunakan pengguna dan namespace yang spesifik kubectl config set-context gce --user=cluster-admin --namespace=foo \ && kubectl config use-context gce kubectl config unset users.foo # menghapus pengguna foo ``` ## Menerapkan `apply` (menerapkan) mengelola aplikasi melalui berkas-berkas yang berisi definisi tentang sumber daya Kubernetes. Perintah ini membuat dan memperbarui sumber daya di dalam sebuah klaster dengan menjalankan `kubectl apply`. Ini merupakan cara yang disarankan untuk mengelola aplikasi di dalam _production_. Lihat [Buku Kubectl](https://kubectl.docs.kubernetes.io). ## Membuat Objek Manifes Kubernetes dapat didefinisikan ke dalam YAML atau JSON. Gunakan berkas dengan ekstensi `.yaml`, `.yml`, dan `.json`. ```bash kubectl apply -f ./my-manifest.yaml # membuat sumber daya kubectl apply -f ./my1.yaml -f ./my2.yaml # membuat sumber daya dari beberapa berkas kubectl apply -f ./dir # membuat sumber daya dari berbagai berkas manifes yang ada di dalam direktori kubectl apply -f https://git.io/vPieo # membuat sumber daya dari sebuah tautan kubectl create deployment nginx --image=nginx # memulai sebuah instans tunggal nginx kubectl explain pods # mendapatkan dokumentasi untuk manifes Pod # membuat beberapa objek YAML dari masukan (stdin) cat < pod.yaml kubectl attach my-pod -i # melekatkan (meng-attach) ke dalam kontainer yang sedang berjalan kubectl port-forward my-pod 5000:6000 # mendengar (listen) pada porta 5000 di mesin lokal dan meneruskan ke porta 6000 di Pod my-pod kubectl exec my-pod -- ls / # menjalankan perintah pada Pod my-pod (kasus 1 kontainer) kubectl exec my-pod -c my-container -- ls / # menjalankan peirntah pada Pod my-pod (kasus banyak kontainer) kubectl top pod POD_NAME --containers # memperlihatkan metrik yang dimiliki Pod bersama kontainernya ``` ## Berinteraksi dengan Node dan Klaster ```bash kubectl cordon my-node # menandai my-node supaya tidak bisa dijadwalkan dengan Pod (unschedulable) kubectl drain my-node # mengeringkan (drain) my-node sebagai bagian dari persiapan untuk pemeliharaan kubectl uncordon my-node # menandai my-node supaya bisa dijadwalkan dengan Pod (schedulable) kubectl top node my-node # memperlihatkan metrik dari Node my-node kubectl cluster-info # memperlihatkan alamaat dari master dan layanan kubectl cluster-info dump # memperlihatkan state klaster saat ini pada keluaran stdout kubectl cluster-info dump --output-directory=/path/to/cluster-state # memperlihatkan state klaster saat ini pada /path/to/cluster-state # jika sebuah taint dengan sebuah kunci dan efek di bawah pernah diterapkan, maka nilainya akan tergantikan dengan yang baru kubectl taint nodes foo dedicated=special-user:NoSchedule ``` ### Berbagai Tipe Sumber Daya Mendapatkan seluruh daftar tipe sumber daya yang didukung lengkap dengan singkatan pendeknya, [grup API](/id/docs/concepts/overview/kubernetes-api/#api-groups), apakah sumber daya merupakan sumber daya yang berada di dalam Namespace atau tidak, serta [Kind](/id/docs/concepts/overview/working-with-objects/kubernetes-objects): ```bash kubectl api-resources ``` Operasi lainnya yang berkaitan dengan sumber daya API (api-resources): ```bash kubectl api-resources --namespaced=true # semua sumber daya yang berada di dalam Namespace kubectl api-resources --namespaced=false # semua sumber daya yang tidak berada di dalam Namespace kubectl api-resources -o name # semua sumber daya dengan keluaran sederhana (hanya nama sumber daya) kubectl api-resources -o wide # semua sumber daya dengan keluaran tambahan ("wide") kubectl api-resources --verbs=list,get # semua sumber daya yang mendukung verb permintaan "list" dan "get" kubectl api-resources --api-group=extensions # semua sumber daya di dalam grup API "extensions" ``` ### Memformat Keluaran Untuk mengeluarkan detail ke dalam jendela terminal kamu dengan format tertentu, tambahkan _flag_ `-o` (atau `--output`) dengan perintah `kubectl` yang didukung. Format keluaran | Deskripsi --------------| ----------- `-o=custom-columns=` | Mencetak sebuah tabel dengan daftar kolom khas (_custom_) yang dipisahkan dengan koma `-o=custom-columns-file=` | Mencetak sebuah tabel dengan templat kolom khas pada berkas `` `-o=json` | Memberikan keluaran objek API dengan format JSON `-o=jsonpath=