Skip to content

Instantly share code, notes, and snippets.

@musfirotus
Last active September 24, 2020 07:45
Show Gist options
  • Save musfirotus/7142a03ab8268f04cd20b2866fa75f68 to your computer and use it in GitHub Desktop.
Save musfirotus/7142a03ab8268f04cd20b2866fa75f68 to your computer and use it in GitHub Desktop.
My Kubernetes Cheatsheet Part 1

Kubernetes Part 1


Reminder

Docker

  • Cek docker service sebelum menjalankan kubernetes :
     service docker status
  • Start docker jika terhenti :
     service docker start
  • Jika ingin stop docker :
     service docker stop

Minikube

  • Cek status minikube :
     minikube status
  • Start minikube jika terhenti :
     minikube start
  • Jika ingin stop minikube :
     minikube stop

General

  • Menampilkan semua node yang ada di cluster Kubernetes

     kubectl get node

    atau

     kubectl get nodes

    atau

     kubectl get no

    Output :

     NAME       STATUS   ROLES    AGE   VERSION
     minikube   Ready    master   25h   v1.19.0
  • Menampilkan deskripsi lengkap sebuah node (nama, label, dll)

     kubectl describe node <namanode>
  • Melihat semua pod

     kubectl get pod

    atau

     kubectl get po

    atau

     kubectl get pods

    Output :

     NAME                              READY   STATUS    RESTARTS   AGE
     hello-minikube-5d9b964bfb-x8shb   1/1     Running   2          29h
  • Menampilkan deskripsi lengkap sebuah pod (nama,label, dll)

     kubectl describe pod <namapod>

Pod

  • Contoh simpel membuat pod menggunakan image nginx
     apiVersion: v1
     kind: Pod
     metadata:
       name: nginx
     spec:
       containers:
         - name: nginx
           image: nginx
           ports:
             - containerPort: 80
    • Perintah di terminal :
       kubectl create -f <namafilepod>.yaml
    • Output :
       pod/<namapod> created
  • Cek keberhasilan pembuatan (ada 3 cara tergantung detail output)
    • Cek daftar pod secara ringkas
      kubectl get pod
      • Output
      NAME                              READY   STATUS              RESTARTS   AGE
      hello-minikube-5d9b964bfb-x8shb   1/1     Running             2          31h
      nginx                             0/1     ContainerCreating   0          56s
    • Cek daftar pod (dgn tambahan IP, Node, dll)
       kubectl get pod -o wide
      • Output
       NAME                              READY   STATUS    RESTARTS   AGE   IP           NODE       NOMINATED NODE   READINESS GATES
       hello-minikube-5d9b964bfb-x8shb   1/1     Running   2          31h   172.18.0.3   minikube   <none>           <none>
       nginx                             1/1     Running   0          11m   172.18.0.4   minikube   <none>           <none>
    • Cek deskripsi dari pod tertentu (nama, label, ip, dll)
       kubectl describe pod <namapod>
  • Akses pod apakah bisa dijalankan (di production sangat jarang digunakan)
     kubectl port-forward <namapod> <portAkses>:<portPod>
    • Output
       Forwarding from 127.0.0.1:8888 -> 80
       Forwarding from [::1]:8888 -> 80
      • Coba akses di browser : http://127.0.0.1:8888/

        Jika berhasil maka akan muncul sesuai pod yang telah dibuat. Ouput bash :

         Forwarding from 127.0.0.1:8888 -> 80
         Forwarding from [::1]:8888 -> 80
         Handling connection for 8888
         Handling connection for 8888
  • Menghapus pod
    • Dengan nama pod
      • Terminal
         kubectl delete pod <namapod>
      • Output
         pod "<namapod>" deleted
    • Dengan multi nama pod
      • Terminal
         kubectl delete pod <namapod1> <namapod2> <namapod3>
      • Output
         pod "<namapod1>" deleted
         pod "<namapod2>" deleted
    • Dengan Label
      • Terminal
         kubectl delete pod -l <key>=<value>
      • Output
         pod "<pod1>" deleted
         pod "<pod2>" deleted
    • Hapus Semua Pod di Namespace Tertentu
      • Terminal
         kubectl delete pod --all -n <namanamespace>
      • Output
         pod "<pod1>" deleted
         pod "<pod2>" deleted

Label (juga bisa di Replication Controller, Replica Set, Service, dll)

  • Contoh simpel membuat pod dengan label (nginx)
     apiVersion: v1
     kind: Pod
     metadata:
       name: nginx-with-label
       labels:
     	team: micros
     	version: 1.2.4
     	environment: production
     spec:
       containers:
     	- name: nginx
     	  image: nginx
     	  ports:
     		- containerPort: 80
    • Perintah di terminal (untuk membuat)
       kubectl create -f <filepod>.yaml
    • Output
       pod/<namapod> created
  • Cek keberhasilan pembuatan
    • Di terminal
       kubectl get pod
    • Output
       NAME                              READY   STATUS    RESTARTS   AGE
       hello-minikube-5d9b964bfb-x8shb   1/1     Running   5          40h
       nginx                             1/1     Running   3          8h
       nginx-with-label                  1/1     Running   0          5m20s
  • Menampilkan semua pod + atribut label
    • Di terminal
       kubectl get pods --show-labels
    • Output
       NAME                              READY   STATUS    RESTARTS   AGE     LABELS
       hello-minikube-5d9b964bfb-x8shb   1/1     Running   5          40h     app=hello-minikube,pod-template-hash=5d9b964bfb
       nginx                             1/1     Running   3          8h      <none>
       nginx-with-label                  1/1     Running   0          15m     environment=production,team=micros,version=1.2.4
  • Menambah / mengubah label (nda disaranin karna nanti di confignya ngga tercantum)
    • Menambah
      • Terminal
         kubectl label pod <namapod> <key>=<value>
      • Output
         pod/<namapod> labeled
      • Cek labelnya : kubectl get pods --show-labels . Output :
         NAME                              READY   STATUS    RESTARTS   AGE   LABELS
         hello-minikube-5d9b964bfb-x8shb   1/1     Running   5          40h   app=hello-minikube,pod-template-hash=5d9b964bfb
         nginx                             1/1     Running   3          9h    app=coba-label
         nginx-with-label                  1/1     Running   0          34m   environment=production,team=micros,version=1.2.4
    • Mengubah
      • Terminal
         kubectl label pod <namapod> <key>=<value> --overwrite
      • Output
         pod/<namapod> labeled
      • Cek labelnya : kubectl get pods --show-labels . Output :
         NAME                              READY   STATUS    RESTARTS   AGE   LABELS
         hello-minikube-5d9b964bfb-x8shb   1/1     Running   5          41h   app=hello-minikube,pod-template-hash=5d9b964bfb
         nginx                             1/1     Running   3          9h    app=label-dua
         nginx-with-label                  1/1     Running   0          83m   environment=production,team=micros,version=1.2.4
  • Mencari pod dengan label
    • Berdasarkan key
      • Terminal
         kubectl get pods -l <key> --show-labels
      • Output
         NAME                              READY   STATUS    RESTARTS   AGE   LABELS
         hello-minikube-5d9b964bfb-x8shb   1/1     Running   5          42h   app=hello-minikube,pod-template-hash=5d9b964bfb
         nginx                             1/1     Running   3          10h   app=label-dua,environment=development
    • Berdasarkan key dan value
      • Terminal
         kubectl get pods -l environment=production --show-labels
      • Output
         NAME               READY   STATUS    RESTARTS   AGE    LABELS
         nginx-with-label   1/1     Running   0          142m   environment=production,team=micros,version=1.2.4
    • Berdasarkan yg tidak punya key tertentu
      • Terminal
         kubectl get pods -l '!environment' --show-labels
      • Output
         NAME                              READY   STATUS    RESTARTS   AGE   LABELS
         hello-minikube-5d9b964bfb-x8shb   1/1     Running   5          42h   app=hello-minikube,pod-template-hash=5d9b964bfb
    • Filter pod selain key tidak sama dengan value
      • Terminal
         kubectl get pods -l environment!=production
      • Output
         NAME                              READY   STATUS    RESTARTS   AGE   LABELS
         hello-minikube-5d9b964bfb-x8shb   1/1     Running   5          42h   app=hello-minikube,pod-template-hash=5d9b964bfb
         nginx                             1/1     Running   3          11h   app=label-dua,environment=development
         nginx-label                       1/1     Running   1          10h   <none>
    • Key tertentu yg valuenya sama dengan value1, value2, dst.
      • Terminal
         kubectl get pods -l 'environment in (production,developmemt)'
      • Output
         NAME               READY   STATUS    RESTARTS   AGE    LABELS
         nginx              1/1     Running   3          11h    app=label-dua,environment=development
         nginx-with-label   1/1     Running   0          166m   environment=production,team=micros,version=1.2.4
    • Meng-exclude-kan pod dengan key environment yg value nya production dan development
      • Terminal
         kubectl get pods -l 'environment notin (production,developmemt)'
      • Output
         NAME                              READY   STATUS    RESTARTS   AGE   LABELS
         hello-minikube-5d9b964bfb-x8shb   1/1     Running   5          43h   app=hello-minikube,pod-template-hash=5d9b964bfb
  • Mencari pod dengan banyak label
    • Pod yg memenuhi key dan key value yg ditentukan
      • Terminal
         kubectl get pods -l environment,app=label-dua --show-labels
      • Output
         NAME    READY   STATUS    RESTARTS   AGE   LABELS
         nginx   1/1     Running   3          13h   app=label-dua,environment=development
    • Pod yg memenuhi semua key value yg ditentukan
      • Terminal
         kubectl get pods -l environment=production,team=micros --show-labels
      • Output
         NAME               READY   STATUS    RESTARTS   AGE     LABELS
         nginx-with-label   1/1     Running   0          4h46m   environment=production,team=micros,version=1.2.4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment