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…