Minikube adalah tool free dan open source yang memungkinkan Anda untuk mengatur cluster Kubernetes single node di dalam sistem Linux.

Minikube dapat diinstal pada sistem operasi Linux, MacOS dan Windows. Minikube juga mendukung berbagai fitur Kubernetes seperti NodePorts, DNS, Container Network Interface, Ingress, ConfigMaps, Secrets, dan banyak lagi.

Dalam tutorial ini, kita akan belajar cara menginstal Kubernetes single-node Cluster Minikube di Ubuntu 18.04 LTS.

Persyaratan

Sebelum Mulai

Sebelum memulai, perbarui server dengan versi terbaru menggunakan perintah berikut:

apt-get update -y
 apt-get upgrade -y

Setelah sistem up-to-date, restart untuk meminimalisir terjadinya kesalahan pada sistem.

Selanjutnya, instal beberapa paket yang diperlukan dengan perintah berikut:

apt-get install curl wget apt-transport-https -y

Install VirtualBox Hypervisor

Minikube mendukung baik KVM maupun VirtualBox hypervisor. Jadi, Anda perlu menginstal VirtualBox atau KVM ke sistem.

Pada tutorial ini, Kita akan menggunakan VirtualBox, instal Virtualbox dengan perintah berikut:

sudo apt-get install virtualbox virtualbox-ext-pack

Setelah instalasi selesai, Anda dapat melanjutkan ke langkah berikutnya.

Install Minikube

Pertama, Anda harus download versi terbaru Minikube ke sistem. Anda dapat mengunduhnya dari situs web resmi mereka dengan perintah berikut:

wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

Setelah unduhan selesai, salin file yang telah di download tadi ke direktori /usr/local/bin dengan perintah berikut:

cp minikube-linux-amd64 /usr/local/bin/minikube

Selanjutnya, berikan izin eksekusi ke minikube dengan perintah berikut:

chmod 755 /usr/local/bin/minikube

Selanjutnya, periksa versi Minikube dengan perintah berikut:

minikube version

Anda akan melihat output berikut:

minikube version: v0.34.1

Install Kubectl

Kubectl adalah tool untuk deploy dan mengelola aplikasi di Kubernetes. Secara default, Kubectl tidak tersedia di repositori default Ubuntu 18.04. Jadi, Anda perlu menambahkan repositori Kubernetes ke sistem.

Pertama, download dan tambahkan GPG key dengan perintah curl berikut:

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

Selanjutnya, tambahkan repositori apt Kubernetes dengan perintah berikut:

echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list

update dan install kubectl dengan perintah berikut :

apt-get update -y
 apt-get install kubectl -y

Selanjutnya, perbarui repositori dan instal Kubectl dengan perintah berikut:

kubectl version -o json

Anda akan melihat output berikut:

{
  "clientVersion": {
    "major": "1",
    "minor": "13",
    "gitVersion": "v1.13.4",
    "gitCommit": "c27b913fddd1a6c480c229191a087698aa92f0b1",
    "gitTreeState": "clean",
    "buildDate": "2019-02-28T13:37:52Z",
    "goVersion": "go1.11.5",
    "compiler": "gc",
    "platform": "linux/amd64"
  }
}

Start Minikube

Jika mengikuti tutorial di atas, berarti semua paket yang diperlukan sudah diinstal. Anda sekarang dapat memulai Minikube dengan perintah berikut:

minikube start

Perintah ini akan download Virtualbox image dan mengkonfigurasi cluster Kubernetes seperti yang ditunjukkan di bawah ini:

o   minikube v0.34.1 on linux (amd64)
>   Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
@   Downloading Minikube ISO ...
 184.30 MB / 184.30 MB [============================================] 100.00% 0s
-   "minikube" IP address is 192.168.33.100
-   Configuring Docker as the container runtime ...
-   Preparing Kubernetes environment ...
@   Downloading kubeadm v1.13.3
@   Downloading kubelet v1.13.3

-   Pulling images required by Kubernetes v1.13.3 ...
-   Launching Kubernetes v1.13.3 using kubeadm ... 
-   Configuring cluster permissions ...
-   Verifying component health .....
+   kubectl is now configured to use "minikube"
=   Done! Thank you for using minikube!

Anda dapat memeriksa status cluster dengan perintah berikut:

kubectl cluster-info

Anda akan melihat output berikut:

Kubernetes master is running at https://192.168.33.100:8443
KubeDNS is running at https://192.168.33.100:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

Anda juga dapat memeriksa konfigurasi default Kubectl dengan perintah berikut:

kubectl config view

Perintah di atas akan menampilkan output kurang lebih seperti berikut:

apiVersion: v1
clusters:
- cluster:
    certificate-authority: /root/.minikube/ca.crt
    server: https://192.168.33.100:8443
  name: minikube
contexts:
- context:
    cluster: minikube
    user: minikube
  name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
  user:
    client-certificate: /root/.minikube/client.crt
    client-key: /root/.minikube/client.key

Untuk memeriksa node yang berjalan, jalankan perintah berikut:

kubectl get nodes

Output:

NAME       STATUS   ROLES    AGE     VERSION
minikube   Ready    master   2m25s   v1.13.3

Anda juga dapat mengakses Minikube Virtualbox dengan perintah berikut:

minikube ssh

output:

                         _             _            
            _         _ ( )           ( )           
  ___ ___  (_)  ___  (_)| |/')  _   _ | |_      __  
/' _ ` _ `\| |/' _ `\| || , <  ( ) ( )| '_`\  /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )(  ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)

$ 

Untuk keluar dari shell Virtualbox, gunakan perintah berikut :

$exit

Anda juga dapat menghentikan dan menghapus cluster kubernetes kapan saja dengan perintah berikut:

minikube stop
 minikube delete

periksa status Minikube dengan perintah berikut:

minikube status

Anda akan melihat output berikut :

host: Running
kubelet: Running
apiserver: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.33.100

Akses Dashboard Web Kubernetes

Secara default, Kubernetes hadir dengan dashboard web yang dapat digunakan untuk mengelola cluster Anda.

Anda bisa list semua addons minikube dengan perintah berikut:

minikube addons list

Anda akan melihat output berikut:

- addon-manager: enabled
- dashboard: disabled
- default-storageclass: enabled
- efk: disabled
- freshpod: disabled
- gvisor: disabled
- heapster: disabled
- ingress: disabled
- logviewer: disabled
- metrics-server: disabled
- nvidia-driver-installer: disabled
- nvidia-gpu-device-plugin: disabled
- registry: disabled
- registry-creds: disabled
- storage-provisioner: enabled
- storage-provisioner-gluster: disabled

Selanjutnya, list semua container yang berjalan di cluster dengan perintah berikut:

kubectl get pods --all-namespaces

Anda akan melihat output berikut:

NAMESPACE     NAME                                   READY   STATUS    RESTARTS   AGE
kube-system   coredns-86c58d9df4-76dkf               1/1     Running   0          4m30s
kube-system   coredns-86c58d9df4-wdtwb               1/1     Running   0          4m29s
kube-system   etcd-minikube                          1/1     Running   0          8m17s
kube-system   kube-addon-manager-minikube            1/1     Running   0          8m6s
kube-system   kube-apiserver-minikube                1/1     Running   1          8m13s
kube-system   kube-controller-manager-minikube       1/1     Running   1          8m13s
kube-system   kube-proxy-5k8qf                       1/1     Running   0          4m33s
kube-system   kube-scheduler-minikube                1/1     Running   0          8m2s
kube-system   kubernetes-dashboard-ccc79bfc9-z827s   1/1     Running   0          4m17s
kube-system   storage-provisioner                    1/1     Running   0          4m13s

Sekarang, jalankan perintah berikut untuk mendapatkan URL dashboard kubernate:

minikube dashboard --url

Anda akan melihat output berikut:

-   Enabling dashboard ...
-   Verifying dashboard health ...
-   Launching proxy ...
-   Verifying proxy health ...
http://127.0.0.1:56508/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/

URL web Minikube Anda sekarang telah dibuat. Selanjutnya, buka web browser dan ketik URL http://127.0.0.1:56508/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/. Anda akan dialihkan ke dasbor Kubernate seperti yang ditunjukkan pada halaman berikut:

dashboard web kubernetes

Selamat! Anda telah berhasil menginstal Minikube di Ubuntu 18.04. Dalam tutorial ini kita belajar cara install dan konfigurasi Minikube, serta konfigurasi web dashboard kubernetes untuk mempermudah dalam mengelola cluster Kubernetes melalui web browser.