Kubernetes merupakan tool orkestrasi kontainer yang berfungsi untuk melakukan deployment, scale up dan mengelola aplikasi berbasis kontainer. Pada artikel ini akan dibahas mengenai tutorial atau cara installasi kubernetes menggunakan OS Ubuntu 20.04.
Untuk menjalankan kubernetes minimal mempunyai 2 server yaitu sebagai master node dan worker node. Sebuah node dapat berupa VM atau server fisik tergantung dari kluster nya. Setiap node berisi beberapa object seperti pod, service, volume, namespace dan lainnya yang diatur oleh komponen-komponen yang dimiliki oleh master. Simak tutorialnya ya!
Prasyarat :
Sebelum melakukan instalasi kubernetes, ada beberapa syarat yang harus dipenuhi diantaranya yaitu :
- Minimal RAM 2 GB
- 2 CPUs atau lebih
- Koneksi internet stabil
- Menggunakan hostname server unik/FQDN
- Swap dinonaktifkan
Setting up Kubernetes Prerequisites
Sebelum menginstall kubernetes di ubuntu, terdapat beberapa persyaratan yang harus disiapkan terlebih dahulu untuk memastikan proses instalasi berjalan dengan lancar.
Silahkan buka ssh client untuk masuk kedalam server master dan server worker kemudian lakukan langkah berikut :
- Jalankan perintah
sudo apt-update
untuk memastikan ubuntu memiliki semua paket terbaru yang tersedia untuk instalasi.
Server Master - Jalankan perintah
sudo apt-get install -y docker.io
untuk melakukan installasi docker pada kedua node server.
Server Master
Server Worker
- Lakukan cek apakah docker sudah terinstall dengan benar menggunakan perintah
sudo systemctl status docker.service
Server Master
Server Worker
- Jalankan perintah berikut untuk melakukan instalasi dependensi kubernetes transport-https
sudo apt-get install -y apt-transport-https
Server Master
Server Worker
- Jalankan curl untuk mengunduh dan menambahkan kunci keamanan GPG yang diperlukan dengan apt-key untuk mengautentikasi ke repositori paket Kubernetes nanti. Jika berhasil, anda akan mendapatkan respons OK di terminal Anda
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
Server Master
Server Worker
- Sekarang, jalankan perintah apt-add-repository untuk menambahkan repositori paket Kubernetes di Ubuntu. Anda harus melakukan langkah ini karena secara default, repositori Kubernetes tidak ada di file /etc/apt/sources.list.
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
Server Master
Server Worker
Installing Kubernetes
Pada tahap ini, kita sudah menginstal apa saja package yang harus diinstall di awal pada server master maupun worker. Selanjutnya, kubernetes terdiri dari tiga package yaitu kubeadm, kubelet dan kubectl. Seluruh package tersebut berisi konfigurasi yang digunakan untuk menjalankan kluster kubernetes.
kubectl — Alat yang digunakan untuk berinteraksi dengan suatu kluster pada kubernetes.
kubeadm — Alat untuk mem-bootstrap klaster pada kubernetes.
kubelet — Komponen yang berjalan pada seluruh mesin pada klaster dan memiliki tugas seperti menjalankan Pod dan Container.
- Buka server master melalui ssh client lalu jalankan perintah dibawah ini :
sudo apt-get install kubeadm kubelet kubectl
Server Master
Server Worker
- Jika sudah, jalankan perintah dibawah ini untuk memastikan ketiga package tersebut sudah terinstall pada server master.
kubeadm version && kubelet --version && kubectl version
Server Master
- Untuk menginisialisasi kubernetes kluster, jalankan perintah :
kubeadm init --pod-network-cidr=10.255.0.0/16 --apiserver-advertise-address=10.0.0.200
Perintah diatas untuk memberi tahu kubernetes alamat ip yang akan digunakan oleh kube-apiserver menggunakan parameter apiserver-advertise-address, dimana ip tersebut merupakan alamat ip pada server master itu sendiri. Perintah tersebut juga digunakan untuk mendefinisikan range IP yang akan digunakan oleh pod network menggunakan parameter pod-network-cidr.
Server Master
Jika berhasil, maka akan tertampil pesan seperti berikut. Pastikan untuk menyalin terlebih dahulu perintah yang di tandai kotak merah, perintah tersebut akan digunakan nanti pada node worker untuk menggabungkan node pada kluster. - Jalankan perintah berikut pada server master. Perintah ini digunakan untuk memaksa kubernetes dalam menjalankan akun non-root untuk alasan keamanan.
- Selanjutnya, jalankan perintah join di server worker. Perintah ini digunakan untuk menggabungkan worker node kedalam kluster, nilai parameter -token maupun -discovery-token-ca-cert-hash digenerate oleh master node.
- Kemudian, dari sisi server master cek status node apakah sudah ready atau belum dengan perintah:
kubectl get nodes
Pada keterangan diatas terlihat join cluster kubernetes sudah berhasil, namun untuk status masih belum ready. Untuk membuat status node menjadi ready, kita harus deploy Container Network Interface (CNI) yang berbasis add-ons Pod network seperti calico, kube-router, dan weave-net. Add-ons Pod network tersebut berfungsi untuk membuat Pod berhubungan satu sama lain. - Jalankan perintah berikut pada server master :
kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
Apabila instalasi sudah selesai, silakan cek kembali status node. Nantinya akan menjadi ready. - Uji coba dan Verifikasi Kubernetes Cluster Coba buat deployment dengan nama nginx-web menggunakan image kontainer nginx. Jalankan perintah berikut dari node master.
kubectl create deployment nginx-web --image=nginx
- Jalankan perintah berikut untuk verifikasi status deployment.
kubectl get deploy
kubectl get deploy -o wide
kubectl get pods
- Selanjutnya silakan coba deploy satu pod dengan nama “http-web” dan ekspos dengan nama service “http-service” menggunakan port default 80 dan tipe service NodePort.
kubectl run http-web --image=httpd --port=80
- Jalankan perintah
kubectl get pods
untuk verifikasi status Pod sudah running atau belum. - Cek IP atau hostname yang digunakan pod “http-web” lalu silakan akses menggunakan curl. Jalankan perintah ini :
kubectl get pods http-web -o wide
Instalasi kubernetes pada Ubuntu 20.04 berjalan dengan lancar. Selanjutnya silahkan pergunakan server sesuai dengan kebutuhan kalian. Semoga artikel ini bermanfaat!