Install Kubernetes dan Minikube di Server Ubuntu 18.04
Install Kubernetes dan Minikube di Server Ubuntu 18.04. Oke saya sendiri baru belajar mengenai Kubernetes dan emang dari nol banget jadi artikel yang saya tulis disini saya jadikan sebagai catatan pribadi saya, dan mungkin ada beberapa step yang perlu dikoreksi karena semua yang saya tulis disini saya pelajari di internet.
Di tutorial ini saya melakukan instalasi Kubernetes di server Ubuntu 18.04. Disini saya juga menggunakan Minikube karena tool ini memungkinkan kita untuk mendeploy Kubernetes dengan single node saja. Namun perlu dicatat juga bahwa Minikube digunakan untuk mendeploy Kubernetes di lokal server, alias lebih cocok dipakai jika kalian baru belajar atau ingin mengenal Kubernetes.
Sebelum memulai instalasi Kubernetes, kalian harus menginstall Docker terlebih dahulu. Saya sudah pernah membahas bagaimana cara install docker di Ubuntu, jadi di tutorial ini saya tidak akan menjelaskan satu per satu command yang saya eksekusi untuk menginstall Docker.
Install Docker
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker $(whoami)
Install Kubectl
Yang kita butuhkan disini hanyalah kubectl karena nantinya manajemen Kubernetes akan dilakukan melalui kubectl dan minikube.
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get install -y kubectl
Ya, disitu kalian mungkin bertanya kenapa kita menggunakan repository xenial? Perlu diketahui bahwa repository terbaru untuk apt di kubernetes adalah kubernetes-xenial, dan itu masih up-to-date sampai sekarang.
Install Minikube
Instalasi Minikube cukup mudah karena kita tinggal mengunduh binary dan pasang di sistem.
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo mv minikube /usr/local/bin/
sudo chmod +x /usr/local/bin/minikube
Menjalankan Minikube
Selanjutnya kita akan membuat node baru. Dan seperti yang saya bilang di awal bahwa tutorial ini menggunakan single node saja maka disinilah minikube diperlukan. Kita buat node dengan nama master-node dengan driver docker.
minikube start -p master-node --driver=docker
Untuk melihat list node gunakan perintah
kubectl get nodes
Untuk melihat informasi detail node, gunakan command
kubectl describe node nama-node
Contoh:
Deploy Aplikasi
Sebuah Pod adalah unit dasar di Kubernetes, unit terkecil dan paling sederhana di dalam objek model Kubernetes yang dapat dibuat dan di deploy. Sebuah Pod merepresentasikan suatu proses yang berjalan di dalam klaster. Pods membungkus satu atau lebih container didalamnya. Nah, disini saya akan coba deploy service Nginx.
Kita akan membuat konfigurasi yaml dengan kebutuhan paling minimum. Buat file dengan nama nginx-simple.yaml, dan isinya sebagai berikut:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
selector:
matchLabels:
name: nginx
template:
metadata:
name: nginx
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
Penjelasan nilai tiap barisnya bisa dicek di halaman ini:
https://kubernetes.io/id/docs/concepts/workloads/controllers/deployment/
Lalu jalankan perintah
kubectl apply -f nginx-simple.yaml
Oke, aplikasi Nginx kita disini sudah berjalan, namun belum terekspos jadi belum bisa diakses dari luar.
Mengekspos Service
Untuk mengekspos service keluar sendiri kita menggunakan Kubernetes Services, dan ada bermacam macam jenisnya. Namun untuk artikel pengenalan ini kita akan menggunakan Ingress untuk mengekspos service yang kita deploy.
Memasang Addons Ingress
Di Minikube kalian bisa mengaktifkan Ingress dengan perintah
minikube addons enable ingress
Selanjutnya cek dengan perintah kubectl apakah ingress sudah terpasang.
kubectl get pods -n kube-system | grep -i ingress
Jika semuanya sudah oke, kita lanjut ke expose service agar service bisa diakses dari luar cluster.
Pertama, kita buat konfigurasi file baru dengan nama nginx-service.yaml. Isinya:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
name: nginx
ports:
- port: 80
targetPort: 80
Oke jangan lupa apply dengan command
kubectl apply -f nginx-service.yaml
Selanjutnya buat file konfigurasi baru dengan nama nginx-ingress.yaml. Isinya:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
spec:
rules:
- host: nginx.local
http:
paths:
- backend:
serviceName: nginx-service
servicePort: 80
Apply dengan perintah:
kubectl apply -f nginx-ingress.yaml
Untuk memeriksa ingress nya jalankan perintah
kubectl get ingress
192.168.49.2 adalah ip node dari minikube. Tinggal tambahkan saja ip dan hostnya ke /etc/hosts.
Seharusnya sekarang kalian bisa mengakses service Nginx di domain nginx.local
Referensi:







Komentar