LINUXSEC

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:

https://www.youtube.com/channel/UC14ZKB9XsDZbnHVmr4AmUpQ

Komentar

    Tinggalkan Komentar

    Silahkan tinggalkan komentar jika ada masukan, pertanyaan, kritik ataupun dukungan. Namun pastikan untuk berkomentar secara sopan.