MicroK8s adalah implementasi dari Kubernetes yang dikemas dalam satu paket yang mudah digunakan dan diinstal pada sistem Linux. Ini memungkinkan Anda untuk menjalankan lingkungan Kubernetes lokal pada mesin Anda tanpa harus mengkonfigurasi dan mengatur cluster yang kompleks. MicroK8s juga dilengkapi dengan beberapa fitur tambahan, seperti dukungan untuk containerd dan plugin untuk mengelola add-on Kubernetes seperti ingress, DNS, dan storage.

Kenapa menggunakan microk8s?

Sebenernya ada beberapa opsi lain seperti k3s, k3d, minikube, atau bahkan vanilla kubernetes. Untuk perbandingan nya temen temen bisa cek tabel pada website berikut: https://microk8s.io/compare

Prasyarat menggunakan microk8s

  1. Menggunakan Ubuntu versi 22.04 LTS, 20.04 LTS, 18.04 LTS or 16.04 LTS yang sudah terinstall snapd
  2. Memory yang dipakai system 540MB, minimal saran memory adalah 4GB (Tergantung banyaknya service yang akan kita install nanti)
  3. Disk 20GB

Install MicroK8s

Untuk tahap menginstall microk8s saya mengikuti tutorial dokumentasi resmi nya pada halaman berikut:

sudo snap install microk8s --classic --channel=1.26
sudo usermod -a -G microk8s $USER
sudo chown -f -R $USER ~/.kube

Kemudian login ulang ke user tersebut agar dapat menggunakan perintah microk8s

su - $USER

Cek apakah microk8s siap digunakan

microk8s status --wait-ready

Aktifkan addon yang dibutuhkan

Disini tkjpedia membutuhkan addon dns, cert-manager, hostpath-storage, ingress, metric-server, dan rbac

DNS digunakan untuk menerjemahkan nama host ke alamat ip, cert-manager nantinya gitunakan untuk generate / request ssl letsencrypt untuk https, hostpath-storage untuk volume, ingress untuk proxy http / https, metric server untuk memantau resource, dan rbac untuk mengatur akses.

Akses microk8s

Kita bisa mencoba untuk mengakses langsung microk8s dengan perintah berikut

microk8s kubectl <command>

contoh: microk8s get pods -A

Akses microk8s dari remote (kubectl)

Biasanya ketika kita akan meremote kubernetes kita menggunakan kubectl di pc / laptop kita. nah untuk melakukan nya di microk8s kita perlu mengimport terlebih dahulu kube config dari mircok8s ke pc / laptop.

Kita bisa mendapatkan kube config menggunakan perintah berikut:

microk8s config

Kemudian di pc / laptop buat / edit file pada ~/.kube/config

Jika sudah selesai maka seharusnya kalian sudah bisa mencoba command kubectl dari pc / laptop langsung.

Khusus VM dengan floating IP

Floating IP adalah alamat IP yang dapat ditempatkan di atas jaringan virtual dan digunakan oleh beberapa mesin virtual untuk mengakses jaringan luar. Floating IP dapat digunakan untuk mengalihkan trafik dari satu mesin virtual ke mesin virtual lainnya tanpa perlu mengubah konfigurasi jaringan atau alamat IP yang digunakan oleh mesin virtual tersebut.

Floating IP juga digunakan dalam high availability (HA) dan disaster recovery (DR) scenarios. Misalnya, jika satu mesin virtual mengalami masalah dan tidak dapat diakses, trafik dapat secara otomatis dialihkan ke mesin virtual lain yang sehat tanpa perlu mengubah alamat IP yang digunakan oleh aplikasi atau layanan yang dijalankan di mesin virtual tersebut.

Floating IP juga dapat digunakan oleh penyedia layanan cloud untuk mengalihkan trafik dari satu server fisik ke server fisik lainnya untuk melakukan maintenance atau upgrading tanpa menyebabkan downtime.

Jika VM kita menggunakan floating IP (IP public nya tidak terpasang langsung di VM) maka kita perlu mengubah value dari “server” pada kube config kita.

Terlihat pada screenshot di atas, value “server” adalah ip private. Ini sangat tidak mungkin kita akses dari luar jaringan. Kita bisa mengganti IP tersebut menggunakan IP public yang asli seperti berikut:

Setelah berhasil, jika kita tes ternyata masih ada error lagi seperti gambar berikut:

Maka kita perlu ubah sedikit config untuk menambahkan IP public yang kita gunakan.

Jika sudah, simpan lalu coba lagi untuk mencoba command kubectl

Selamat