Skip to content
Santekno.com | Level Up Your Engineering Skills
ID
📖 0%
Kubernetes

Pengenalan Belajar Kubernetes

· 3 mnt baca ·Ihsan Arif

Requirements

  • Colima
  • Docker
  • Kubernetes
  • Minikube

Pengertian Kubernetes atau K8s

Kita lebih sering disebut yaitu containterize + orchestration

bash
1container + orchestration

Nama 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

concept containers

Perbedaan Containers vs Virtual Mechines

containers vs virtual machines

Keuntungan Containers

Old Principle of deployments

old deployments

Deployments containerize

containerize deployments

Prinsip Container Orchstration

Beberapa Orchestration Technologies:

  • Docker Swarm
  • Kubernetes
  • MESOS

Contoh Orchestration Container

orchertration containers

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

bash
1https://kubernetes.io/docs/tasks/tools/

Sudah selesai coba pastikan kembali dengan perintah dibawah ini

bash
1➜ kubectl version --client
2Client Version: v1.29.2
3Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3

Install minikube

Untuk install minikube juga bisa lihat disini

bash
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.

bash
1minikube start --driver=docker

Untuk memastikan berjalan minikube tersebut kita bisa jalankan perintah dibawah ini

bash
1➜  minikube status
2
3minikube
4type: Control Plane
5host: Running
6kubelet: Running
7apiserver: Running
8kubeconfig: Configured

Error saat jalankan minikube

Masi error? Coba jalanin

bash
1sudo chown -R $USER $HOME/.minikube; chmod -R u+wrx $HOME/.minikube
lalu jalankan ini
bash
1minikube start --force-systemd=true

Menjalankan 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.

bash
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 created

Dan kita coba lihat deployment tersebut dengan perintah

bash
1➜ kubectl get deployments
2NAME               READY   UP-TO-DATE   AVAILABLE   AGE
3hello-node         1/1     1            1           35m

lalu untuk melihat log aktifitas dari server yg sudah kita jalankan

bash
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  8081

Kita buat service dari pod yang sudah dibuat tadi dengan perintah dibawah ini

bash
1➜ kubectl expose deployment hello-node --type=LoadBalancer --port=8080
2service/hello-node exposed

maka akan terlihat port 8080 berjalan under ports

bash
1➜ kubectl get services
2NAME         TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
3hello-node   LoadBalancer   10.98.200.124   <pending>     8080:30890/TCP   110s

Untuk mendapatkan URL deployment yang kita jalankan tadi bisa dengan perintah

bash
1➜ minikube service hello-node --url
2http://127.0.0.1:60493/

IH
Ihsan Arif
Backend engineer & penulis di Santekno. Aktif menulis tentang Go, Laravel, dan arsitektur backend modern.
Follow

💬 Komentar