Deployment di Kubernetes adalah mekanisme untuk mengelola aplikasi dan menjamin ketersediaan aplikasi dan skalabilitas. Deployment memungkinkan Anda membuat dan memperbarui aplikasi Anda dengan mudah dan memastikan bahwa aplikasi Anda selalu berjalan dan dapat diakses sebagaimana mestinya. Deployment juga memungkinkan Anda mengelola replika dari aplikasi Anda dan memastikan bahwa mereka selalu ada dan dalam kondisi baik.

Prasyarat

Sudah memiliki kubernetes cluster. Jika belum, bisa bikin dulu atau menggunakan microk8s seperti pada artikel berikut:

Deployment

Pada artikel ini kita akan coba untuk mendeploy apps. Contoh yang bisa kita gunakan adalah httpbin.

Buat Namespace

Pertama tama, kita buat dulu namespace, contoh disini kita buat namespace dengan nama tkjpedia

kubectl create ns tkjpedia

Jika namespace sudah ada, lanjut kita buat file yml untuk deployment seperti berikut.

deployment.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    name: httpbin
  name: httpbin
  namespace: tkjpedia
spec:
  replicas: 1
  selector:
    matchLabels:
      name: httpbin
  template:
    metadata:
      labels:
        name: httpbin
    spec:
      containers:
        - name: httpbin
          image: kennethreitz/httpbin
          ports:
            - containerPort: 80
              protocol: TCP
          resources:
            limits:
              cpu: 150m
              memory: 256Mi
            requests:
              cpu: 50m
              memory: 128Mi

Kemudian apply file deployment tersebut dengan perintah berikut.

kubectl apply -f deployment.yml

Cek kembali apakah deployment sudah berhasil dengan perintah berikut

kubectl get deployment -n tkjpedia

Cek juga pod nya dengan perintah berikut

kubectl get pods -n tkjpedia

Cek log pod menggunakan perintah berikut

kubectl logs httpbin-699f477cc9-c2fbh -n tkjpedia

Akses shell pod dengan perintah berikut

kubectl exec -i -t -n tkjpedia httpbin-699f477cc9-c2fbh -c httpbin -- sh -c "clear; (bash || ash || sh)"

Akses ke POD

Pada awal ini, kita baru mendeploy satu apps saja, untuk mengakses pod paling mudah menggunakan port forwarding. Untuk melakukan port forwarding kita bisa menggunakan perintah berikut

kubectl port-forward -n tkjpedia pods/httpbin-699f477cc9-c2fbh 80:80

Hasil dari port forwarding

Selesai…