Pada artikel sebelumnya kita telah berhasil mendeploy service backend yang sudah bisa kita akses melalui port forwarding. Selanjutnya kita akan coba untuk mengakses service backed tersebut dari pod lain. Tentunya kita ga mungkin menggunakan port forwarding untuk mengkomunikasikan antar pod pod yang ada.

https://tkjpedia.com/deploy-service-di-kubernetes-deployment/

Menurut dokumentasi kubernetes, Pod pada Kubernetes bersifat mortal. Artinya apabila pod-pod tersebut dibuat dan kemudian mati, pod-pod tersebut tidak akan dihidupkan kembali. ReplicaSets secara khusus bertugas membuat dan menghapus Pod secara dinamis (misalnya, pada proses scaling out atau scaling in). Meskipun setiap Pod memiliki alamat IP-nya masing-masing, kamu tidak dapat mengandalkan alamat IP yang diberikan pada pod-pod tersebut, karena alamat IP yang diberikan tidak stabil. Hal ini kemudian menimbulkan pertanyaan baru: apabila sebuah sekumpulan Pod (yang selanjutnya kita sebut backend) menyediakan service bagi sebuah sekumpulan Pod lain (yang selanjutnya kita sebut frontend) di dalam klaster Kubernetes, bagaimana cara frontend menemukan backend mana yang digunakan?

Dokumentasi kubernetes: https://kubernetes.io/id/docs/concepts/services-networking/service/

Membuat service

buat file bernama service.yml

kind: Service
apiVersion: v1
metadata:
  name: httpbin-service
  namespace: tkjpedia
spec:
  selector:
    name: httpbin
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80

untuk membuat service jalankan perintah berikut:

kubectl apply -f service.yml

Kita cek kembali dan coba untuk akses service melalui port forwarding.

Cek service menggunakan perintah berikut:

kubectl get service -n tkjpedia

Port forwarding ke PC / laptop

kubectl port-forward svc/httpbin-service 80:80 -n tkjpedia

Coba akses melalui we browser

Akses dari Pod lain

Disini saya akan mencoba mengakses service httpbin-service yang dimiliki oleh httpbin melalui pod httbin-2

Pod:

Masuk ke pod httbin-2 dan lakukan curl ke httpbin-service

Selamat!