Pada artikel sebelumnya Belajar Membuat Cluster Apache Cassandra Dengan Docker Swarm, penulis telah membahas mengenai tentang cluster pada apache cassandra dengan menggunakan docker swarm. Untuk dapat membuat cluster pada apache cassandra, kita juga dapat menggunakan kubernetes sebagai penganti dari docker swarm. Jika docker swarm merupakan bawaan dari docker maka kubernetes perlu dilakukan instalasi dan setup. Pada artikel ini, penulis akan membahas bagaimana cara instalasi, setup kubernetes dan membuat cluster apache cassandra pada kubernetes.
Apa Itu Kubernetes ?
Kubernetes adalah salah satu produk open source untuk sistem manajemen container
Sama seperti docker swarm, kubernetes dapat melakukan manajemen container, akan tetapi kubernetes merupakan produk yang akan terus berkembang dan akan lebih banyak digunakan dibandingkan dengan docker swarm. Salah satu kelebihan dari kubernetes adalah kita dapat menggunakan kubernetes dashboard untuk memonitoring container, kita dapat melakukan deployment melalui dashboard dan pastinya struktur yang diusulkan oleh kubernetes dan docker swarm sangatlah berbeda. Berikut adalah struktur yang biasanya digunakan di dalam kubernetes.
Berikut adalah penjelasan nya
Node : biasanya sebagai server, bisa sebagai server fisik atau virtual server sehingga node ini juga dapat berupa sebuah server yang berjalan diatas virtual machine seperti VMWare atau virtualbox.
Deployment : biasanya berfungsi untuk mengontrol dari sebuah pods, misalnya adanya update dari sebuah pods, adanya penambahan replikasi pada pods dan lain sebagainya.
Service : berfungsi untuk mengexpose pods, tujuan nya adalah agar client dapat mengakses service yang terdapat di dalam sebuah pods.
Pods : di dalam sebuah deployment terdapat beberapa pods, biasanya pods ini terdapat 1 container atau lebih. Pods ini biasanya akan dilakukan replikasi sesuai dengan kebutuhan.
Container : container ini mewakili dari 1 aplikasi, misalnya database postgresql atau web server apache tomcat.
Instalasi Kubernetes
Pada artikel ini, kita akan menggunakan 2 buat vm yaitu :
VM Master : berfungsi sebagai node master, master disini berfungsi untuk mendeploy container ke dalam node worker kubernetes.
VM Worker : berfungsi sebagai node worker.
Requirment Node Master
Adapun kebutuhan untuk node master adalah :
Ram 3 GB
Disk 10 GB
Bridge Network
IP 192.168.88.100
Ubuntu 16.04 Server
Requirment Node Worker
Adapun kebutuhan untuk node worker adalah :
Ram 2 GB
Disk 10 GB
Bridge Network
IP 192.168.88.101
Ubuntu 16.04 Server
Dengan requirment diatas, silahkan lakukan instalasi ubuntu server pada 2 vm tersebut yaitu pada vm master dan vm worker. IP yang digunakan disini adalah IP static, sehingga anda perlu melakukan sedikit konfigurasi pada jaringan ubuntu server.
Untuk melakukan instalasi kubernetes, anda wajib melakukan instalasi docker terlebih dahulu, bagi yang belum mengerti docker, silahkan baca artikel Belajar Docker. Hal yang pertama dilakukan adalah lakukan update dan upgrade ubuntu server dengan perintah.
Lalu update certificate dan kebutuhan untuk kubernetes dengan perintah
Lalu tambahkan key untuk kubernetes dengan perintah
Lalu tambahkan repository kubernetes untuk ubuntu dengan perintah
Lalu lakukan update kembali dengan perintah
Dan lakukan instalasi dengan perintah
Setup Kubernetes
Setelah selesai melakukan instalasi kubernetes, tahapan selanjutnya adalah kita akan melakukan setup kubernetes. Setup kubernetes akan dilakukan secara bertahap, yaitu dilakukan pada node master terlebih dahulu kemudian akan dilakukan pada node worker.
Setup Kubernetes Master
Silahkan login ke node master, lalu aktifkan bridged IPv4 traffic dengan perintah
Lalu jalankan perintah berikut untuk disable swap pada ubuntu
Setelah selesai, jalankan perintah berikut untuk inisialisasi kubernetes pada node master.
Jika berhasil maka akan muncul output seperti berikut.
Perintah kubeadm join nantinya akan kita gunakan untuk melakukan registrasi dari node worker ke node master.
Lalu jalankan perintah berikut agar kubectl dapat diakses tanpa perlu menggunakan user root.
Setelah selesai, jika kita melakukan setup kubernetes cluster maka dibutuhkan network overlay seperti docker swarm yang dapat menyambung pods yang berbeda node. Jika kita menggunakan kubernetes, maka ada beberapa opsi network pod plugin yang dapat kita gunakan yaitu :
Pada artikel ini, penulis akan menggunakan flannel sebagai network plugin. Untuk melakukan setup flannel pada kubernetes, silahkan jalankan perintah berikut.
Jika telah selesai, silahkan lakukan pengecekan pods dengan perintah
Jika beberapa pods masih dalam proses creating / prosess pull image maka akan muncul seperti berikut.
Jika semua pods telah berjalan maka akan muncul seperti berikut.
Setup Kubernetes Worker
Silahkan login ke node worker lalu aktifkan bridged IPv4 traffic dengan perintah
Lalu jalankan perintah berikut untuk disable swap pada ubuntu
Setelah selesai, jalankan perintah berikut untuk inisialisasi kubernetes pada node worker dengan melakukan register ke node master.
Setelah selesai, silahkan login kembali ke node master, lalu jalankan perintah berikut untuk melihat node yang berhasil melakukan register.
Jika berhasil maka akan muncul seperti berikut.
Dan berikut jika kedua node telah siap untuk digunakan.
Setup Kubernetes Dashboard
Secara default, kubernetes tidak memiliki dashboard akan tetapi kita dapat melakukan setup untuk kubernetes dashboard. Yang pertama kali dilakukan adalah kita akan membuat sebuah file yaitu admin.yaml lalu isikan dengan source berikut.
Konfigurasi diatas berfungsi untuk user authentication pada kubernetes dashboard. Lalu jalankan perintah berikut untuk menambahkan user tersebut.
Setelah selesai, silahkan buat sebuah file dashboard.yaml lalu isikan source berikut.
Lalu jalankan dashboard tersebut dengan perintah
Setelah selesai, tunggu hingga pods tersebut berjalan. Jika pods telah berjalan, silahkan lakukan pengecekan services dengan perintah.
Dan berikut adalah hasilnya
Dari konfigurasi diatas, dapat dilihat bahwa kubernetes dashboard jalan pada port 31601, lalu silahkan akses kubernetes dashboard di https://<ip>:31601 seperti berikut.
Lalu pilih menu skip dan akan muncul halaman seperti berikut.
Arsitektur Cluster Apache Cassandra Pada Kubernetes
Arsitektur yang akan kita gunakan pada kubernetes tidak jauh berbeda dengan docker swarm. Pada kubernetes, kita akan melakukan deployment container pada sebuah deployment. Setiap 1 deployment akan mewakili 1 cassandra. Berikut adalah arsitektur yang akan digunakan.
Silahkan buat sebuah file yaml cassandra-service.yaml lalu isikan dengan source berikut.
Kemudian kembali ke menu dashboard, pilih menu create lalu isikan source diatas pada form seperti berikut.
Silahkan buat sebuah file yaml cassandra-deployment.yaml lalu isikan dengan source berikut.
Kemudian kembali ke menu dashboard, pilih menu create lalu isikan source diatas pada form, Berikut adalah jika pods dalam keadaan creating atau pull images.
Dan berikut ketika seluruh pods telah berjalan.
Lalu pada kubernetes dashboard, silahkan klik di salah satu pods, misalnya penulis ingin memilih pods cassandra-dc-1-<code>, contohnya cassandra-dc-1-8f6fdf494-w247g, maka akan muncul halaman seperti berikut.
Lalu pilih menu exec dan akan muncul halaman seperti berikut.
Pada halaman tersebut, kita dapat mengakses terminal yang terdapat pada pods tersebut. Lalu jalankan perintah berikut untuk melihat topology cassandra cluster yang telah terbentuk.
Jika berhasil maka akan muncul seperti ini
Atau jika dalam bentuk bash
Sekian artikel mengenai Instalasi Dan Setup Kubernetes Cluster dan terima kasih :).