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
- Menggunakan Ubuntu versi 22.04 LTS, 20.04 LTS, 18.04 LTS or 16.04 LTS yang sudah terinstall snapd
- Memory yang dipakai system 540MB, minimal saran memory adalah 4GB (Tergantung banyaknya service yang akan kita install nanti)
- 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