GNU/Linux >> Belajar Linux >  >> Linux

Cara Memasang Cluster Kubernetes (k8s) di RHEL 8

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 --reload 

Pada 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:79748a56f603e6cc57f67bf90b7db5aebe090107d540d6cc8a 

Jika 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.


Linux
  1. Cara Memasang Cluster Kubernetes di CentOS 7

  2. Cara memasang percikan di RHEL 8

  3. Cara Menginstal Elasticsearch di CentOS/RHEL 8

  1. Cara menginstal ActiveMQ di RHEL 8

  2. Cara menginstal cassandra di RHEL 8

  3. Cara Install Cluster Kubernetes di Rocky Linux 8

  1. Cara Install Kubernetes (k8s) 1.7 di CentOS 7 / RHEL 7

  2. Cara Install Kubernetes (k8s) di Ubuntu 20.04 LTS Server

  3. Cara Mengatur Cluster Kubernetes(k8s) di HA dengan Kubeadm