Requirements
- Colima
- Docker
- Kubernetes
- Minikube
Pengertian Kubernetes atau K8s
Kita lebih sering disebut yaitu containterize + orchestration
1container + orchestrationNama Kubernetes berasal dari Bahasa Yunani, yang berarti juru mudi atau pilot, dan merupakan asal kata gubernur dan cybernetic. K8s merupakan sebuah singkatan yang didapat dengan mengganti 8 huruf “ubernete” dengan “8”.
Kenapa kita perlu containers?
- Capability/dependency
- Long setup time
- Different Dev/Test/Prod environments
Apa yang perlu kita lakukan?
- Apps perlu menjadi containerize
- Jalankan setiap service dengan dependency yg independent atau terpisah setiap pada setiap containers

Perbedaan Containers vs Virtual Mechines

Keuntungan Containers
Old Principle of deployments

Deployments containerize

Prinsip Container Orchstration
Beberapa Orchestration Technologies:
- Docker Swarm
- Kubernetes
- MESOS
Contoh Orchestration Container

Install Kubernetes on Local
Saat install kubernetes kita perlu beberapa yang harus diinstall. Pastikan requirement diatas sudah terpenuhi seperti install docker with colima (MacOS M1)
Install Set Up Kubectl
Berikut install kubectl untuk kebutuhan tools kita disini
1https://kubernetes.io/docs/tasks/tools/Sudah selesai coba pastikan kembali dengan perintah dibawah ini
1➜ kubectl version --client
2Client Version: v1.29.2
3Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3Install minikube
Untuk install minikube juga bisa lihat disini
1https://minikube.sigs.k8s.io/docs/start/Jika sudah mengikuti perintah di link diatas untuk install miniku selanjutnya kita coba jalankan minikube-nya dengan pastikan bahwa docker sudah berjalan.
1minikube start --driver=dockerUntuk memastikan berjalan minikube tersebut kita bisa jalankan perintah dibawah ini
1➜ minikube status
2
3minikube
4type: Control Plane
5host: Running
6kubelet: Running
7apiserver: Running
8kubeconfig: ConfiguredError saat jalankan minikube
Masi error? Coba jalanin
1sudo chown -R $USER $HOME/.minikube; chmod -R u+wrx $HOME/.minikube1minikube start --force-systemd=trueMenjalankan Service pada Kubernetes via Minikube
Kita akan mencoba membuat sebuah Kubernetes Deployments menggunakan image yg sudah ada dengan simple HTTP Server yang di expose 8080.
1➜ kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.39 -- /agnhost netexec --http-port=8080
2
3deployment.apps/hello-node createdDan kita coba lihat deployment tersebut dengan perintah
1➜ kubectl get deployments
2NAME READY UP-TO-DATE AVAILABLE AGE
3hello-node 1/1 1 1 35mlalu untuk melihat log aktifitas dari server yg sudah kita jalankan
1➜ kubectl logs hello-node-ccf4b9788-bv9wd
2I0303 11:31:13.581880 1 log.go:195] Started HTTP server on port 8080
3I0303 11:31:13.583262 1 log.go:195] Started UDP server on port 8081Kita buat service dari pod yang sudah dibuat tadi dengan perintah dibawah ini
1➜ kubectl expose deployment hello-node --type=LoadBalancer --port=8080
2service/hello-node exposedmaka akan terlihat port 8080 berjalan under ports
1➜ kubectl get services
2NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
3hello-node LoadBalancer 10.98.200.124 <pending> 8080:30890/TCP 110sUntuk mendapatkan URL deployment yang kita jalankan tadi bisa dengan perintah
1➜ minikube service hello-node --url
2http://127.0.0.1:60493/