diff --git a/content/id/docs/reference/kubectl/_index.md b/content/id/docs/reference/kubectl/_index.md new file mode 100644 index 0000000000..5580fc654a --- /dev/null +++ b/content/id/docs/reference/kubectl/_index.md @@ -0,0 +1,4 @@ +--- +title: "Baris Perintah kubectl" +weight: 60 +--- diff --git a/content/id/docs/reference/kubectl/cheatsheet.md b/content/id/docs/reference/kubectl/cheatsheet.md new file mode 100644 index 0000000000..80667814ac --- /dev/null +++ b/content/id/docs/reference/kubectl/cheatsheet.md @@ -0,0 +1,401 @@ +--- +title: Contekan kubectl +content_template: templates/concept +card: + name: reference + weight: 30 +--- + +{{% capture overview %}} + +Lihat juga: [Ikhitsar Kubectl](/docs/reference/kubectl/overview/) dan [Panduan JsonPath](/docs/reference/kubectl/jsonpath). + +Laman ini merupakan ikhitisar dari perintah `kubectl`. + +{{% /capture %}} + +{{% capture body %}} + +# 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](/docs/concepts/overview/kubernetes-api/#api-groups), +apakah sumber daya merupakan sumber daya yang berada di dalam Namespace atau tidak, serta [Kind](/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=