Kubernetes adalah alat orkestrasi wadah sumber terbuka dan gratis. Ini digunakan untuk menyebarkan aplikasi berbasis kontainer secara otomatis di lingkungan cluster, selain itu juga digunakan untuk mengelola kontainer Docker di seluruh host cluster kubernetes. Kubernetes juga Dikenal sebagai K8s .
Dalam artikel ini saya akan menunjukkan cara menginstal dan mengkonfigurasi dua node Kubernetes (1.13) menggunakan kubeadm pada sistem Ubuntu 18.04 / 18.10. Berikut adalah detail penyiapan lab saya:
Saya akan menggunakan tiga sistem Ubuntu 18.04 LTS, di mana satu sistem akan bertindak sebagai Kubernetes Master Node dan dua node lainnya akan bertindak sebagai Slave mengangguk e dan akan bergabung dengan cluster Kubernetes. Saya berasumsi minimal 18,04 LTS diinstal pada ketiga sistem ini.
- Node Master Kubernetes – (Nama host:k8s-master , IP :192.168.1.70, OS :Minimal Ubuntu 18.04 LTS)
- Kubernetes Slave Node 1 – (Hostname:k8s-worker-node1, IP:192.168.1.80, OS :Minimal Ubuntu 18.04 LTS)
- Kubernetes Slave Node 2 – (Hostname:k8s-worker-node2, IP:192.168.1.90, OS :Minimal Ubuntu 18.04 LTS)
Catatan: Kubernetes Slave Node juga dikenal sebagai Worker Node
Mari masuk ke langkah instalasi dan konfigurasi k8s.
Langkah:1) Setel Nama Host dan perbarui file host
Masuk ke master node dan konfigurasikan hostname-nya menggunakan perintah hostnamectl
[email protected]:~$ sudo hostnamectl set-hostname "k8s-master"[email protected]:~$ exec bash[email protected]:~$
Login ke Slave / Worker Nodes dan konfigurasikan hostname masing-masing menggunakan perintah hostnamectl,
[email protected]:~$ sudo hostnamectl set-hostname k8s-worker-node1[email protected]:~$ exec bash[email protected]:~$[email protected]:~$ sudo hostnamectl set-hostname k8s- worker-node2[email protected]:~$ exec bash[email protected]:~$
Tambahkan baris berikut di file /etc/hosts di ketiga sistem,
192.168.1.70 k8s-master192.168.1.80 k8s-worker-node1192.168.1.90 k8s-worker-node2
Langkah:2) Instal dan Mulai Layanan Docker pada Node Master dan Slave
Jalankan perintah apt-get di bawah ini untuk menginstal Docker pada node Master,
[email protected]:~$ sudo apt-get install docker.io -y
Jalankan perintah apt-get di bawah ini untuk menginstal docker pada node slave,
[email protected]:~$ sudo apt-get install docker.io -y[email protected]:~$ sudo apt-get install docker.io -y
Setelah paket Docker diinstal pada ketiga sistem , mulai dan aktifkan layanan buruh pelabuhan menggunakan perintah systemctl di bawah ini, perintah ini perlu dijalankan pada node master dan slave.
~$ sudo systemctl start docker~$ sudo systemctl enable dockerMenyinkronkan status docker.service dengan skrip layanan SysV dengan /lib/systemd/systemd-sysv-install.Executing:/lib/systemd/systemd-sysv-install aktifkan docker ~$
Gunakan perintah buruh pelabuhan di bawah ini untuk memverifikasi versi Docker mana yang telah diinstal pada sistem ini,
~$ docker --versionDocker versi 18.06.1-ce, build e68fc7a~$
Langkah:3) Konfigurasi Repositori Paket Kubernetes pada Node Master &Slave
Catatan: Semua perintah pada langkah ini adalah mandat untuk dijalankan pada node master dan slave
Mari kita install dulu beberapa paket yang dibutuhkan, jalankan perintah berikut pada semua node termasuk master node
~$ sudo apt-get install apt-transport-https curl -y
Sekarang tambahkan kunci repositori paket Kubernetes menggunakan perintah berikut,
:~$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key addOK:~$
Sekarang konfigurasikan repositori Kubernetes menggunakan perintah apt di bawah ini, saat ini repositori paket Kubernetes Ubuntu 18.04 (bionic weaver) tidak tersedia, jadi kami akan menggunakan repositori paket Xenial Kubernetes.
:~$ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
Langkah:4) Nonaktifkan Swap dan Instal Kubeadm di semua node
Catatan: Semua perintah pada langkah ini adalah mandat untuk dijalankan pada node master dan slave
Kubeadm adalah salah satu metode yang paling umum digunakan untuk men-deploy cluster kubernetes atau dengan kata lain bisa dikatakan digunakan untuk men-deploy beberapa node pada sebuah cluster kubernetes.
Sesuai dengan situs web Resmi Kubernetes, disarankan untuk menonaktifkan swap di semua node termasuk master node.
Jalankan perintah berikut untuk menonaktifkan swap sementara,
:~$ sudo swapoff -a
Untuk menonaktifkan swap permanen, komentari swapfile atau entri partisi swap di file /etc/fstab.
Sekarang Instal paket Kubeadm di semua node termasuk master.
:~$ sudo apt-get install kubeadm -y
Setelah paket kubeadm berhasil diinstal, verifikasi versi kubeadm menggunakan perintah di bawah ini.
:~$ kubeadm versionkubeadm version:&version.Info{Mayor:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019 -01-10T23:33:30Z", GoVersion:"go1.11.4", Kompiler:"gc", Platform:"linux/amd64"}:~$
Langkah:5) Inisialisasi dan Mulai Cluster Kubernetes di Master Node menggunakan Kubeadm
Gunakan perintah kubeadm di bawah ini pada Master Node hanya untuk menginisialisasi Kubernetes
[email protected]:~$ sudo kubeadm init --pod-network-cidr=172.168.10.0/24
Pada perintah di atas Anda dapat menggunakan jaringan pod yang sama atau memilih jaringan pod Anda sendiri yang sesuai dengan lingkungan Anda. Setelah perintah berhasil dieksekusi, kita akan mendapatkan output seperti di bawah ini,
Output di atas mengkonfirmasi bahwa Master node telah berhasil diinisialisasi, jadi untuk memulai cluster jalankan perintah di bawah satu demi satu,
[email protected]:~$ mkdir -p $HOME/.kube[email protected]:~$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config[email protected]:~ $ sudo chown $(id -u):$(id -g) $HOME/.kube/config[email protected]:~$
Verifikasi status node master menggunakan perintah berikut,
[email protected]:~$ kubectl get nodesNAME STATUS PERAN USIA VERSIONk8s-master NotReady master 18m v1.13.2[email protected]:~$
Seperti yang dapat kita lihat pada output perintah di atas bahwa master node kita belum siap karena sampai saat ini kita belum men-deploy pod apapun.
Mari kita gunakan jaringan pod, jaringan Pod adalah jaringan di mana node cluster kita akan berkomunikasi satu sama lain. Kami akan menyebarkan Flannel sebagai jaringan pod kami, Flanel akan menyediakan jaringan overlay antar node cluster.
Langkah:6) Deploy Flannel sebagai Jaringan Pod dari node Master dan verifikasi ruang nama pod
Jalankan kubectl berikut ini perintah untuk men-deploy jaringan pod dari master node
[email protected]:~$ sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Output dari perintah di atas harus seperti di bawah ini
clusterrole.rbac.authorization.k8s.io/flannel Createdclusterrolebinding.rbac.authorization.k8s.io/Flannel Createdserviceaccount/Flannel Createdconfigmap/kube-flannel-cfg Createddaemonset.extensions/kube-flannel-ds-AMD64 Createddaemonset.extensions/ kube-flannel-ds-arm64 Createddaemonset.extensions/kube-flannel-ds-arm Createddaemonset.extensions/kube-flannel-ds-ppc64le Createddaemonset.extensions/kube-flannel-ds-s390x Created[email protected]:~$Sekarang verifikasi status node master dan ruang nama pod menggunakan perintah kubectl,
[email protected]:~$ sudo kubectl get nodesNAME STATUS PERAN USIA VERSIONk8s-master Siap master 78m v1.13.2[email protected]:~$[email protected]:~$ sudo NAMESPACE Status Ready Restart AGEKUBE-SYSTEM COREDNS-86C58D9DF4-PX4SJ 1/1 Running 0 79MKUBE-SYSTEM COREDNS-86C58D9DF4-WZDZK 1/1 LIHAT 0 79MKUBE-SYSTEM ETCD-K8S-Master 1/1 LIHAT 1 79MKUBE-APISERVER-K8S -Master 1/1 Menjalankan 1 79mKube-System KUBE-Controller-Manager-K8S-Master 1/1 LIHAT 1 79MKUBE-SYSTEM KUBE-FLANNEL-DS-AMD64-9TN8Z 1/1 LIHAT 0 14MKUBE-CJZZ2 1 /1 Menjalankan 1 79mkube-system kube-scheduler-k8s-master 1/1 Menjalankan 1 79m[email protected]:~$Seperti yang dapat kita lihat pada output di atas, status node master kita telah berubah menjadi “Siap ” dan semua ruang nama pod dalam keadaan berjalan, jadi ini menegaskan bahwa master node kita dalam keadaan sehat dan siap untuk membentuk sebuah cluster.
Langkah:7) Tambahkan Node Budak atau Pekerja ke Cluster
Catatan: Pada Langkah 5, output perintah kubeadm kita mendapatkan perintah lengkap yang harus kita gunakan pada node slave atau worker untuk bergabung dengan sebuah cluster
Login ke node slave pertama (k8s-worker-node1) dan jalankan perintah berikut untuk bergabung dengan cluster,
[email protected]:~$ sudo kubeadm join 192.168.1.70:6443 --token cwxswk.hbkuu4jua82o80d1 --discovery-token-ca-cert-hash sha256:ff1b0cfe5aec94f90a42bdb45d2608bfde3400f3026a543Output dari perintah di atas seharusnya seperti ini,
Demikian pula, jalankan perintah kubeadm join yang sama pada node pekerja kedua,
[email protected]:~$ sudo kubeadm join 192.168.1.70:6443 --token cwxswk.hbkuu4jua82o80d1 --discovery-token-ca-cert-hash sha256:ff1b0cfe5aec94f90a42bdb45d2608bfde3400f3026a543Output di atas harus seperti di bawah ini,
Sekarang pergi ke master node dan jalankan perintah di bawah ini untuk memeriksa status master dan slave node
[email protected]:~$ kubectl get nodesNAME STATUS PERAN USIA VERSIONk8s-master Ready master 100m v1.13.2k8s-worker-node1 10Perintah di atas mengkonfirmasi bahwa kami telah berhasil menambahkan dua node pekerja kami di cluster dan statusnya Siap. Ini menyimpulkan bahwa kami telah berhasil menginstal dan mengonfigurasi dua node cluster Kubernetes pada sistem Ubuntu 18.04.
Baca Selengkapnya di:Menerapkan Pod, Pengontrol Replikasi, dan Layanan di Kubernetes
Cara Menginstal dan Mengkonfigurasi Webmin di Debian / Ubuntu Cara Menghasilkan sosreport di Ubuntu 18.04 / Debian 9 ServerUbuntu