Mengenal Apa itu POD Pada Kubernetes

By | Mei 6, 2020

Assalamu’alaikum, pada kesempatan kali ini, technoboard akan membahas Mengenal Apa itu POD Pada Kubernetes. Jika teman-teman belum mengetahui tentang apa itu kubernetes dan apa saja komponen pada kubernetes silahkan lihat pada postingan ini .

Apa itu POD?

POD adalah sebuah resource pada kubernetes yang berfungsi sebagai wadah dari container. Bisa dibilang POD merupakan instance dari aplikasi yang kita buat.

POD biasanya berisi 1 container, atau lebih. tapi pada umumnya hanya satu aja, jadi 1 POD untuk 1 jenis aplikasi. Misal ada POD untuk front end, kemudian POD untuk backend dan yang lainnya.

Cara Kerja POD

Ketika user membuat sebuah container baru, maka container tersebut akan dienkapsulasi menjadi sebuah POD. Sebuah POD memiliki IP Address, yang dimana digunakan oleh container di dalamnya. Entah digunakan 1 container atau pun lebih. Container dalam POD dapat salling berkomunikasi menggunakan localhost. POD juga digunakan untuk scalling dan replication dari aplikasi yang telah kita buat,

Kira kira penggambaran POD seperti ini.

POD Pada Kubernetes Node Worker

Cara Membuat POD

Untuk membuat sebuah POD kita dapat menggunakan 2 cara, yaitu membuat file yaml atau menggunakan imperative command.

  • Membuat POD Menggunakan File Yaml

Pertama, buatlah sebuah file dengan extensi .yaml, untuk nama file nya bebas. Misalnya saya membuat file dengan nama POD.yaml. Kemudian tambahkan perintah berikut.

apiVersion: v1
kind: Pod
metadata:
  name: technoboard
spec:
  containers:
  - name: web-test
    image: nginx

Disini akan admin jelaskan fungsi dari masing-masing perintah :

  1. apiVersion : digunakan untuk mendefinisikan api versi berapa yang digunakan untuk mmebuat sebuah POD.
  2. kind : untuk mendefinisikan object/resource yang kita buat, yaitu Pod. Huruf awal harus kapital.
  3. metadata : berisi informasi tambahan dari object/resource yang akan kita buat. Disini admin menambahkan name/nama dari POD yang akan dibuat.
  4. spec : digunakan untuk menambahkan spesifikasi dari POD, misal container akan menggunakan image apa, berjalan pada port berapa, lalu nama containernya apa dan yang lainnya.
  5. containers : sesuai dengan namanya, pada bagian ini mendefinisikan nama dari container yang akan dibuat dan akan menggunakan image apa.

Pada bagian container, saya tidak mendefinisikan port. saya biarkan kosong saja. Karena ini hanya untuk contoh bagaimana pembuatan POD. Dan pada keadaan realnya, kita tidak disarankan untuk membuat POD langsung seperti ini, melainkan harus menggunakan deployment terlebih dahulu atau replicaset. Untuk alasannya akan dibahas lebih lanjut di postingan Kube Control manager.

Setelah membuat file yaml, sekarang eksekusi perintah berikut, untuk membuat POD.

$ kubectl create -f POD.yaml
  • Membuat POD Menggunakan Imperatice Command

berbeda dengan cara sebelumnya, dengan cara ini kita tidak perlu membuat sebuah file yaml, melainkan dengan menggunakan satu baris perintah.

$ kubectl run nama_POD --image=nginx --restart=Never

perintah diatas akan membuat POD baru, dengan menggunakan image nginx.

Cara Melihat POD

Setelah kita membuat POD pada langkah sebelumnya, sekarang kita akan melihat POD yang telah dibuat. Caranya cukup mudah, kita tinggal mengetikan perintah berikut.

fmaulana@linux-9r25:~> kubectl get pods
NAME          READY   STATUS              RESTARTS   AGE
technoboard   1/1     Running              0          4s
fmaulana@linux-9r25:~>

Pada hasil perintah diatas terlihat, ada running POD dengan nama technoboard sebanyak 1. Pod tersebut berjalan selama 4 detik dan restart sebanyak 0.

Mungkin ketika pertama kali teman-teman jalankan perintah tersebut, status dari PODnya adalah ContainerCreating. Ini tidak masalah, artinya Container dalam POD sedang dalam proses pembuatan.

Jika teman-teman ingin mengetahui informasi lengkap dari POD, bisa menggunakan perintah berikut.

fmaulana@linux-9r25:~> kubectl describe pod nama_pod
Name:         technoboard
Namespace:    default
Priority:     0
Node:         minikube/192.168.39.58
Start Time:   Wed, 06 May 2020 22:03:07 +0700
Labels:       run=technoboard
Annotations:  <none>
Status:       Running
IP:           172.17.0.4
IPs:
  IP:  172.17.0.4
Containers:
  technoboard:
    Container ID:   docker://c7deaacaf8cc85c3a7c7e2e587d67023ea3545821b25ec3c063d4ec3966c6f17
    Image:          nginx
    Image ID:       docker-pullable://nginx@sha256:86ae264c3f4acb99b2dee4d0098c40cb8c46dcf9e1148f05d3a51c4df6758c12
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Wed, 06 May 2020 22:03:19 +0700
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-rxfgn (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  default-token-rxfgn:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-rxfgn
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type    Reason     Age    From               Message
  ----    ------     ----   ----               -------
  Normal  Scheduled  5m52s  default-scheduler  Successfully assigned default/technoboard to minikube
  Normal  Pulling    5m49s  kubelet, minikube  Pulling image "nginx"
  Normal  Pulled     5m41s  kubelet, minikube  Successfully pulled image "nginx"
  Normal  Created    5m40s  kubelet, minikube  Created container technoboard
  Normal  Started    5m39s  kubelet, minikube  Started container technoboard

nanti akan muncul lengkap mengenai POD mulai dari ip address, kemudian status/proses pem

Sekian postingan tentang Mengenal Apa itu POD Pada Kubernetes, semoga dapat bermanfaat bagi teman-teman semua. Jika ada pertanyaan dapat disampaikan pada kolom komentar. Terima Kasih.

Sumber : https://kubernetes.io

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *