Setelah kita membuat aplikasi golang sederhana, lalu membuat docker untuk aplikasi tersebut, terakhir kita akan deploy aplikasi golang ke kubernetes.

Tahap yang perlu kita lakukan adalah:
1. Pertama kirim image ke docker registry, agar bisa di download dan di deploy ke kubernetes. Bisa menggunakan hub.docker.com, Gitlab Registry, Github Registry, Amazon Elastic Container Registry dan lain sebagainya. Bila anda menggunakan minikube, bisa langsung di deploy
2. Buat deployment untuk kubernetes

Buat file deploy.yaml yang berisi

apiVersion: apps/v1
kind: Deployment
metadata:
  name: golangapp-deployment
  labels:
    app: golangapp
spec:
  replicas: 3
  selector:
    matchLabels:
      app: golangapp
  template:
    metadata:
      labels:
        app: golangapp
    spec:
      containers:
      - name: golangapp
        image: golangapp:latest
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8000
 
---

apiVersion: v1
kind: Service
metadata:
  name: golangapp-service
  labels:
    service: golangapp
spec:
  type: NodePort
  selector:
    app: golangapp
  ports:
  - port: 8000
    targetPort: 8000

Bila anda menggunakan manage kubernetes (GCK, LKE, DOKS, EKS) ganti NodePort menjadi LoadBalancer agar bisa diakses dari IP Public.
golangapp:latest adalah docker images yang kita build sebelumnya. Bila anda menggunakan docker hub formatnya kurang lebih username/golangapp:latest, latest tersebut adalah tag default bila anda build docker image. Code lengkapnya bisa diambil dari https://github.com/jaranguda/golangapp
Bila anda ingin langsung mencoba tanpa perlu build dan push image, gunakan ghcr.io/jaranguda/golangapp:latest

Deploy ke kubernetes

kubectl apply -f deploy.yaml

di minikube bisa diakses url dengan, membuka IP:port output dari

minikube service --url golangapp-service
# contoh
http://192.168.49.2:32234

golang di kubernetes

Untuk pengguna cloud, cek IP dan portnya dengan

kubectl get services
# output
golangapp-service   LoadBalancer   10.128.173.28   5.6.38.101   8000:32633/TCP   30m

pada contoh diatas aplikasi golang bisa diakses di alamat http://5.6.38.101:8000

Leave a comment

Your email address will not be published. Required fields are marked *