Juga dikenal sebagai k8s, Kubernetes adalah opensource, dan platform orkestrasi container portabel untuk mengotomatisasi penyebaran dan pengelolaan aplikasi containerized. Kubernetes awalnya dibuat oleh Google dalam bahasa pemrograman Go. Saat ini, dikelola oleh Cloud Native Computing Foundation.
Dalam panduan ini, kami akan memandu Anda langkah demi langkah tentang cara memasang klaster Kubernetes di RHEL 8. Kami akan mendemonstrasikannya menggunakan satu Master satu dan satu node pekerja yang akan kami tambahkan ke klaster kami.
Penyiapan laboratorium
- Node master: master-node-k8 10.128.15.228
- Simpul pekerja: simpul-pekerja-1-k8 10.128.15.230
CATATAN:Langkah 1 hingga 6 harus diterapkan pada node Master dan pekerja.
Langkah 1) Nonaktifkan ruang swap
Untuk performa terbaik, Kubernetes mengharuskan swap dinonaktifkan pada sistem host. Ini karena pertukaran memori dapat secara signifikan menyebabkan ketidakstabilan dan penurunan kinerja.
Untuk menonaktifkan ruang swap, jalankan perintah:
$ sudo swapoff -a
Untuk membuat perubahan tetap ada, edit file /etc/fstab dan hapus atau komentari baris dengan entri swap dan simpan perubahannya.
Langkah 2) Nonaktifkan SELinux
Selain itu, kita perlu menonaktifkan SELinux dan menyetelnya ke 'permisif' untuk memungkinkan komunikasi yang lancar antara node dan pod.
Untuk mencapai ini, buka file konfigurasi SELinux.
$ sudo vi /etc/selinux/config
Ubah nilai SELINUX dari enforcing menjadi permissive.
SELINUX=permisif
Atau, Anda menggunakan perintah sed sebagai berikut.
$ sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
Langkah 3) Konfigurasi jaringan di master dan node pekerja
Beberapa konfigurasi jaringan tambahan diperlukan agar node master dan pekerja Anda dapat berkomunikasi secara efektif. Di setiap node, edit file /etc/hosts.
$ sudo vi /etc/hosts
Selanjutnya, perbarui entri seperti yang ditunjukkan
10.128.15.228 master-node-k8 // Untuk node Master10.128.15.230 worker-node-1-k8 // Untuk node Worker
Simpan dan keluar dari file konfigurasi. Selanjutnya, instal paket utilitas kontrol lalu lintas:
$ sudo dnf install -y iproute-tc
Langkah 4) Izinkan aturan firewall untuk k8s
Untuk komunikasi yang lancar antara node Master dan pekerja, Anda perlu mengonfigurasi firewall dan mengizinkan beberapa port dan layanan terkait seperti yang diuraikan di bawah ini.
Pada node Master, izinkan port berikut,
$ sudo firewall-cmd --permanent --add-port=6443/tcp$ sudo firewall-cmd --permanent --add-port=2379-2380/tcp$ sudo firewall-cmd --permanent --add -port=10250/tcp$ sudo firewall-cmd --permanent --add-port=10251/tcp$ sudo firewall-cmd --permanent --add-port=10252/tcp$ sudo firewall-cmd --reloadPada node Pekerja, izinkan port berikut,
$ sudo firewall-cmd --permanent --add-port=10250/tcp$ sudo firewall-cmd --permanent --add-port=30000-32767/tcp $>Langkah 5) Instal runtime container CRI-O
Kubernetes memerlukan runtime container agar pod dapat berjalan. Kubernetes 1.23 dan versi yang lebih baru mengharuskan Anda menginstal container runtime yang mengonfirmasi dengan Container Runtime Interface.
Container Runtime adalah aplikasi yang mendukung container yang sedang berjalan. Kubernetes mendukung Container Runtime berikut:
- Wadah
- CRI-O
- Mesin Docker
- Waktu Proses Mirantis Container
Dalam panduan ini, kami akan menginstal CRI-O yang merupakan runtime container tingkat tinggi. Untuk melakukannya, kita perlu mengaktifkan dua modul kernel penting – modul overlay dan br_netfilter.
Untuk mencapai ini, kita perlu mengkonfigurasi prasyarat sebagai berikut:
Pertama, buat file konfigurasi modul untuk Kubernetes.
$ sudo vi /etc/modules-load.d/k8s.conf
Tambahkan baris ini dan simpan perubahannya
overlaybr_netfilter
Kemudian muat kedua modul menggunakan perintah modprobe.
$ sudo modprobe overlay$ sudo modprobe br_netfilter
Selanjutnya, konfigurasikan parameter sysctl yang diperlukan sebagai berikut
$ sudo vi /etc/sysctl.d/k8s.conf
Tambahkan baris berikut:
net.bridge.bridge-nf-call-iptables =1net.ipv4.ip_forward =1net.bridge.bridge-nf-call-ip6tables =1
Simpan perubahan dan keluar. Untuk mengonfirmasi perubahan telah diterapkan, jalankan perintah:
$ sudo sysctl --system
Untuk menginstal CRI-O, setel variabel lingkungan $VERSION agar sesuai dengan versi CRI-O Anda. Misalnya, untuk menginstal CRI-O versi 1.21 atur $VERSION seperti yang ditunjukkan:
$ ekspor VERSI=1.21
Selanjutnya, jalankan perintah berikut:
$ sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable /CentOS_8/devel:kubic:libcontainers:stable.repo
$ sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo https://download.opensuse.org/repositories/devel:kubic :libcontainers:stable:cri-o:$VERSION/CentOS_8/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo
Kemudian gunakan manajer paket DNF untuk menginstal CRI-O:
$ sudo dnf install cri-o
Selanjutnya, aktifkan CRI-O saat boot dan mulai:
$ sudo systemctl aktifkan cri-o$ sudo systemctl start cri-o
Langkah 6) Instal Paket Kubernetes
Dengan semua yang diperlukan agar Kubernetes berfungsi, mari kita lanjutkan dan menginstal paket Kubernetes seperti kubelet, kubeadm dan kubectl. Buat file repositori Kubernetes.
$ sudo vi /etc/yum.repos.d/kubernetes.repo
Dan tambahkan baris berikut.
[kubernetes]name=Kubernetesbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://packages.cloud.google.com/ yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpgexclude=kubelet kubeadm kubectl
Simpan perubahan dan keluar. Terakhir, instal paket k8s sebagai berikut.
$ sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
Setelah terinstal, pastikan untuk mengaktifkan dan memulai layanan Kubelet.
$ sudo systemctl aktifkan kubelet$ sudo systemctl start kubelet
Saat ini, kita sudah siap untuk menginstal cluster Kubernetes.
Langkah 7) Buat cluster Kubernetes
Kita akan menginisialisasi cluster Kubernetes menggunakan perintah kubeadm sebagai berikut. Ini menginisialisasi bidang kontrol di node master.
$ sudo kubeadm init --pod-network-cidr=192.168.10.0/16
Setelah bidang kontrol dibuat, Anda akan diminta untuk menjalankan beberapa perintah tambahan untuk mulai menggunakan cluster.
Oleh karena itu, jalankan perintah secara berurutan.
$ mkdir -p $HOME/.kube$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config$ sudo chown $(id -u):$(id -g) $HOME /.kube/config
Di akhir output, Anda akan diberikan perintah untuk menjalankan node pekerja untuk bergabung dengan cluster. Kami akan membahasnya nanti di langkah berikutnya.
Juga, pastikan untuk menghapus taint dari master node:
$ kubectl taint node –all node-role.kubernetes.io/master-
Langkah 8) Instal Add-on Jaringan Calico Pod
Langkah selanjutnya adalah menginstal Calico CNI (Container Network Interface). Ini adalah proyek opensource yang digunakan untuk menyediakan jaringan dan keamanan kontainer. Setelah Menginstal Calico CNI, status node akan berubah menjadi status Ready, layanan DNS di dalam cluster akan berfungsi dan container dapat mulai berkomunikasi satu sama lain.
Calico memberikan skalabilitas, performa tinggi, dan interoperabilitas dengan beban kerja Kubernetes yang ada. Ini dapat diterapkan di tempat dan pada teknologi cloud populer seperti Google Cloud, AWS, dan Azure.
Untuk menginstal Calico CNI, jalankan perintah berikut dari master node
$ kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
Setelah selesai, jalankan yang ini.
$ kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml
Untuk mengonfirmasi apakah pod sudah dimulai, jalankan perintah:
$ watch kubectl get pods -n calico-system
Anda akan melihat bahwa setiap pod 'SIAP' dan memiliki status 'BERJALAN' seperti yang ditunjukkan pada kolom ketiga.
Untuk memverifikasi ketersediaan master node di cluster, jalankan perintah:
$ kubectl dapatkan node
Selain itu, Anda dapat mengambil lebih banyak informasi menggunakan opsi -o wide.
$ kubectl dapatkan node -o wide
Output di atas mengkonfirmasi bahwa master node sudah siap. Selain itu, Anda dapat memeriksa ruang nama pod:
$ kubectl get pod --all-namespaces
Langkah 9) Menambahkan node pekerja ke cluster
Untuk menambahkan node pekerja ke kluster Kubernetes, ikuti langkah 1 hingga Langkah 6. Setelah selesai, jalankan perintah yang dibuat oleh node master untuk menggabungkan node pekerja ke kluster. Dalam kasus kami, ini akan menjadi:
$ sudo kubeadm gabung 10.128.15.228:6443 --token cqb8vy.iicmmqrb1m8u9cob --discovery-token-ca-cert-hash sha256:79748a56f603e6cc57f67bf90b7db5aebe090107d540d6cc8aJika semuanya berjalan dengan baik, Anda akan mendapatkan pemberitahuan bahwa node telah bergabung dengan cluster. Ulangi prosedur yang sama untuk node lain jika Anda memiliki beberapa node pekerja
Sekarang, kembali ke master node dan, sekali lagi, verifikasi node di cluster Anda. Kali ini, node pekerja akan muncul di daftar node di cluster,
$ kubectl dapatkan node
Kesimpulan
Itu adalah panduan tentang bagaimana Anda dapat menginstal Cluster Kubernetes di RHEL 8. Umpan balik Anda tentang panduan ini sangat diharapkan.
Cara Menggunakan Tag di Ansible Playbook (Contoh) Cara Mengamankan Server Web Apache dengan Let's Encrypt di RHEL 8Linux