Cara Membuat dan Mengelola Pod di Kubernetes

calendar_today
schedule 4 min read

Cara Membuat dan Mengelola Pod di Kubernetes

Kubernetes, sering disingkat K8s, adalah platform open-source yang keren banget untuk mengelola aplikasi yang di-containerize. Salah satu konsep inti di K8s adalah Pod. Pod adalah unit terkecil yang bisa kita deploy di K8s. Nah, di artikel ini, kita bakal bahas gimana sih cara bikin dan ngelola Pod di Kubernetes. Yuk, simak!

1. Apa Itu Pod?

Sebelum lanjut, kita perlu ngerti dulu apa itu Pod. Pod nggak cuma satu container, tapi bisa juga beberapa container yang berbagi sumber daya yang sama, seperti storage dan network. Jadi, Pod itu seperti rumah buat container-container kita di K8s.

2. Bikin Pod Pertama Kita

Untuk bikin Pod, kita perlu nulis manifest file dalam format YAML atau JSON. Tapi biasanya YAML lebih sering dipake. Contoh nih, nih file pod-baru.yaml:

code
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
spec:
  containers:
  - name: nginx-container
    image: nginx:latest
    ports:
    - containerPort: 80

Penjelasannya:

  • apiVersion: Versi API yang dipake, ini bergantung sama jenis resource yang mau kita bikin.
  • kind: Jenis resource, di sini kita bikin Pod.
  • metadata: Data tentang Pod kita, seperti nama (name).
  • spec: Spesifikasi dari Pod, termasuk container apa aja yang mau jalan di dalamnya.

Untuk nge-deploy Pod ini, kita bisa pake perintah:

code
kubectl apply -f pod-baru.yaml

Terminal bakal nampilin pod/nginx-pod created. Artinya, Pod kita udah berhasil dibuat!

3. Ngecek Status Pod

Supaya yakin Pod kita jalan, kita bisa cek pake perintah:

code
kubectl get pods

Kalau statusnya Running, berarti Pod kita udah siap dipake.

4. Debugging Pod

Kadang-kadang, Pod nggak langsung Running. Bisa aja ada masalah. Nah, buat ngecek apa masalahnya, kita bisa pake perintah:

code
kubectl describe pod nginx-pod

Perintah ini bakal nampilin detail tentang Pod kita, termasuk event-event terakhir. Dari sini, kita bisa ngeliat masalahnya di mana.

5. Masuk ke Dalam Pod

Kalau mau masuk ke dalam container di Pod kita, misalnya buat ngecek file atau ngetest sesuatu, kita bisa pake:

code
kubectl exec -it nginx-pod -- /bin/bash

Perintah ini bakal ngebuka shell di dalam container nginx-container di Pod nginx-pod.

6. Ngelihat Logs Pod

Logs itu penting banget buat debugging. Kalo mau ngelihat logs dari Pod, kita bisa pake:

code
kubectl logs nginx-pod

Kalau di dalam Pod ada lebih dari satu container, kita bisa sebutin nama containernya:

code
kubectl logs nginx-pod -c nginx-container

7. Ngehapus Pod

Kalau udah nggak kepake atau mau nge-delete, kita bisa hapus Pod dengan perintah:

code
kubectl delete pod nginx-pod

Atau kalo pake file YAML:

code
kubectl delete -f pod-baru.yaml

8. Update atau Ganti Pod

Pod itu immutable, artinya nggak bisa diubah lagi setelah dibuat. Jadi, kalo mau ngeganti sesuatu, kita harus nge-delete dulu, terus nge-create lagi dengan konfigurasi baru. Atau pake Deployment biar lebih gampang, tapi itu bahasan lain.

Tapi, kalau cuma mau ngeganti image aja, kita bisa pake perintah:

code
kubectl set image pod/nginx-pod nginx-container=nginx:alpine

Ini bakal ngeganti image dari container nginx-container di Pod nginx-pod jadi nginx:alpine.

9. Pentingnya Labels

Labels itu semacam tag yang bisa kita kasih ke Pod atau resource K8s lainnya. Labels ini berguna banget buat nge-organize dan nge-filter Pod. Contoh nih, kita kasih label ke Pod:

code
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
    env: production
spec:
  containers:
  - name: nginx-container
    image: nginx:latest
    ports:
    - containerPort: 80

Nanti, kita bisa nge-filter Pod pake label tersebut dengan perintah:

code
kubectl get pods -l app=nginx,env=production

10. Resource Limits

Kita juga bisa ngatur resource limits buat container di Pod. Misalnya, nge-limit CPU dan memory yang bisa dipake:

code
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
spec:
  containers:
  - name: nginx-container
    image: nginx:latest
    ports:
    - containerPort: 80
    resources:
      limits:
        cpu: "1"
        memory: "512Mi"
      requests:
        cpu: "0.5"
        memory: "256Mi"

Penjelasannya:

  • limits: Batas maksimal yang bisa dipake sama container.
  • requests: Resource minimal yang diperlukan container buat jalan.

Nah, itu dia cara bikin dan ngelola Pod di Kubernetes. Semoga bermanfaat!

A

Written by Ariful

Full-stack engineer obsessed with web performance.