GNU/Linux >> Belajar Linux >  >> AlmaLinux

Instal Cluster Kubernetes Menggunakan Kubeadm Di RHEL, CentOS, AlmaLinux, Rocky Linux

Pada artikel ini, kita akan belajar tentang instalasi cluster Kubernetes menggunakan Kubeadm di RHEL 8, dan klonnya seperti AlmaLinux 8, CentOS 8, dan Rocky Linux 8.

Sebelum masuk ke dalamnya, Anda harus memiliki pemahaman dasar tentang konsep dan arsitektur Kubernetes . Pada artikel ini, kita akan mendemonstrasikan dua cluster node.

Untuk melanjutkan instalasi, kita memerlukan persyaratan dasar yang disebutkan di bawah ini.

  • Minimal 2 host.
  • 2 CPU.
  • Memori Fisik (RAM) sebesar 2 GB.
  • Ruang Disk 20GB.
  • Koneksi internet untuk mengunduh paket.

1. Konfigurasi Hostname dan alamat IP

Tetapkan nama host dan konfigurasikan host di Master dan Pekerja. File host sistem operasi digunakan untuk mengonversi nama host atau nama domain ke alamat IP.

Di sini kita akan memiliki dua host:

  • master ostech - Master
  • pekerja ostech – Pekerja

Gunakan perintah di bawah ini untuk mengatur nama host, reboot diperlukan setelah mengatur nama host.

# hostnamectl set-hostname ostechmaster

Edit /etc/hosts berkas:

# vi /etc/hosts

Tambahkan nama host server dan klien serta alamat IP di /etc/hosts berkas:

Lakukan tes ping untuk memastikan konektivitas:

[[email protected] ~]# ping ostechworkerPING ostechworker (172.31.5.141) 56(84) byte data.64 byte dari ostechworker (172.31.5.141):icmp_seq=1 ttl=64 time=0.472 ms64 byte dari ostechworker (172.31.5.141):icmp_seq=2 ttl=64 waktu=0.492 ms64 byte dari ostechworker (172.31.5.141):icmp_seq=3 ttl=64 time=1.43 ms64 byte dari ostechworker (172.31.5.141):icmp_seq=4 ttl=64 waktu=0,425 md

2. Nonaktifkan SElinux

Nonaktifkan SElinux di Master dan Pekerja, sehingga semua wadah dapat dengan mudah mengakses sistem file host jika SElinux dinonaktifkan.
Jadikan 'SELINUX=disabled ' dalam file konfigurasi /etc/selinux/config menggunakan editor vi. Reboot diperlukan untuk mencerminkan perubahan SElinux.

[[email protected] ~]# vi /etc/selinux/config

Pastikan status SElinux menggunakan perintah di bawah ini.

[[email protected] ~]# sestatusSELinux status:nonaktif

3. Nonaktifkan Swap di Master dan Worker

Swap harus dinonaktifkan di semua host Kubernetes (Master &Pekerja). Ini adalah metode penyebaran pilihan komunitas Kubernetes. Layanan kubelet tidak akan dimulai pada master dan pekerja jika swap tidak dinonaktifkan.

Jalankan perintah di bawah ini untuk menonaktifkan SWAP:

[[email protected] ~]# swapoff -a &&sed -i '/swap/d' /etc/fstab

4. Izinkan port yang diperlukan di firewall

Agar komponen Kubernetes dapat berinteraksi satu sama lain, port esensial tertentu harus tersedia. Di bawah ini adalah port yang akan dibuka untuk memanfaatkan konektivitas antar komponen Kubernetes.

Pesawat Kontrol / Server Master:

Protokol Arah Jangkauan Port Tujuan Digunakan Oleh
TCP Masuk 6443 Server API Kubernetes Semua
TCP Masuk 2379-2380 API klien server etcd kube-apiserver, dll
TCP Masuk 10250 API Kubelet Self, Kontrol pesawat
TCP Masuk 10259 kube-scheduler Mandiri
TCP Masuk 10257 kube-controller-manager Mandiri

Node pekerja:

Protokol Arah Jangkauan Port Tujuan Digunakan Oleh
TCP Masuk 10250 API Kubelet Self, Kontrol pesawat
TCP Masuk 30000-32767 Layanan NodePort Semua

Untuk mengizinkan port yang diperlukan melalui firewall, jalankan perintah berikut.

Simpul Utama:

[[email protected] ~]# firewall-cmd --permanent --add-port=6443/tcp
[[email protected] ~]# firewall-cmd --permanent --add-port=2379-2380/tcp
[[email protected] ~]# firewall-cmd --permanent --add-port=10250/tcp
[[email protected] ~]# firewall-cmd --permanent --add-port=10251/tcp
[[email protected] ~]# firewall-cmd --permanent --add-port=10259/tcp
[[email protected] ~]# firewall-cmd --permanent --add-port=10257/tcp
[[email protected] ~]# firewall-cmd --reload

Simpul Pekerja:

[[email protected] ~]# firewall-cmd --permanent --add-port=10250/tcp
[[email protected] ~]# firewall-cmd --permanent --add-port=30000-32767/tcp
[[email protected] ~]# firewall-cmd --reload

Kami menonaktifkan firewall di Master dan Worker karena untuk tujuan demonstrasi. Namun, tidak disarankan untuk praktik produksi waktu nyata.

Gunakan perintah di bawah ini untuk menghentikan dan menonaktifkan firewall.

[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl nonaktifkan firewalld

5. Instal Docker

Docker mempermudah "membangun" container, sedangkan Kubernetes memungkinkan "mengelola" container secara real time. Untuk mengemas dan mengirimkan perangkat lunak, gunakan Docker. Untuk meluncurkan dan menskalakan aplikasi Anda, gunakan Kubernetes.

Tambahkan repositori buruh pelabuhan di semua mesin di Cluster.

Buat file bernama docker.repo di bawah /etc/yum.repos.d/ direktori:

[[email protected] ~]# vi /etc/yum.repos.d/docker.repo

Tambahkan baris berikut di dalamnya:

[docker]baseurl=https://download.docker.com/linux/centos/8/x86_64/stable/gpgcheck=0

Tekan tombol ESC dan ketik :wq untuk menyimpan file dan menutupnya.

Instal buruh pelabuhan di node Master dan Worker:

# yum -y install docker-ce

Setelah terinstal, aktifkan dan mulai Docker di kedua node:

# systemctl aktifkan buruh pelabuhan
# systemctl start docker

Periksa dan pastikan Docker berjalan di kedua mesin.

# systemctl status buruh pelabuhan

6. Instal Kubernetes

Tambahkan repositori Kubernetes di Master dan Worker.

Buat file kubernetes.repo di Master dan pekerja di bawah /etc/yum.repos.d/ direktori:

# vi /etc/yum.repos.d/kubernetes.repo

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

Tekan ESC dan ketik :wq untuk menyimpan file dan menutupnya.

Instal kubeadm, kubelet, kubectl di node Master dan Worker menggunakan perintah di bawah ini:

# yum install -y kubelet kubeadm kubectl --disableexcludes=Kubernetes

Aktifkan dan mulai kubelet layanan di kedua mesin:

# systemctl aktifkan kubelet
# systemctl start kubelet

Periksa status layanan Kubelet dan pastikan berjalan dengan baik di kedua mesin.

# systemctl status kubelet

7. Inisialisasi Kubernetes

Gunakan perintah di bawah ini untuk menginisialisasi Kubernetes di Master Server

[[email protected] ~]# kubeadm init

Anda akan mendapatkan output di bawah ini yang mengatakan bahwa control-plane Kubernetes telah berhasil diinisialisasi. Dan langkah-langkah tertentu akan disebutkan untuk mulai menggunakan cluster, ikuti itu.

Salin juga dan simpan 'kubeadm join' perintah dari output, itu akan digunakan untuk bergabung dengan node pekerja di cluster.

Contoh keluaran:

Control-plane Kubernetes Anda telah berhasil diinisialisasi! Untuk mulai menggunakan cluster, Anda perlu menjalankan perintah berikut sebagai pengguna biasa:mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id - u):$(id -g) $HOME/.kube/config Sebagai alternatif, jika Anda adalah pengguna root, Anda dapat menjalankan: export KUBECONFIG=/etc/kubernetes/admin.conf Anda sekarang harus menerapkan jaringan pod ke cluster. Jalankan "kubectl apply -f [podnetwork].yaml" dengan salah satu opsi yang tercantum di:https://kubernetes.io/docs/concepts/cluster-administration/addons/Lalu Anda dapat bergabung dengan sejumlah node pekerja dengan menjalankan perintah berikut pada masing-masing node sebagai root:kubeadm join 172.31.10.29:6443 --token 220tvj.051bkeyj5tg6v55r \ --discovery-token-ca-cert-hash sha256:434c49c7969256a7fae384b3402021caddedb818d29021caddb34880b3402021cadd kuat> 

Karena kita melanjutkan dengan root pengguna, jalankan perintah di bawah ini di server Master seperti yang disebutkan dalam output di atas.

[[email protected] ~]# export KUBECONFIG=/etc/kubernetes/admin.conf

8. Konfigurasi Jaringan POD

Jaringan Pod Kubernetes adalah jaringan komponen yang saling berhubungan di Kubernetes. Konsep jaringan ini dapat diimplementasikan dalam beberapa cara berbeda. Dalam demonstrasi kami, kami akan menggunakan 'Weave Net' .

Jalankan perintah di bawah ini di server Master untuk menyiapkan Jaringan POD.

[[email protected] ~]# export kubever=$(kubectl version | base64 | tr -d '\n')
[[email protected] ~]# kubectl apply -f https://cloud.weave.works/k8s/net?k8s-version=$kubever

Contoh keluaran:

serviceaccount/weave-net Createdclusterrole.rbac.authorization.k8s.io/weave-net Createdclusterrolebinding.rbac.authorization.k8s.io/weave-net Createdrole.rbac.authorization.k8s.io/weave-net Createdrolebinding.rbac .authorization.k8s.io/weave-net Createddaemonset.apps/weave-net Created[[email protected] ~]#

9. Bergabung dengan Node Pekerja

Jalankan 'kubeadm join ' perintah untuk bergabung dengan node pekerja ke dalam cluster. Ini adalah perintah yang kami salin dari 'kubeadm init ' keluaran.

[[email protected] ~]# kubeadm join 172.31.10.29:6443 --token 220tvj.051bkeyj5tg6v55r --discovery-token-ca-cert-hash sha256:434c49c7969256a7fae3880b3402102cadd386ab29d3d  

Anda dapat memverifikasi node di server Master menggunakan perintah di bawah ini

# kubectl dapatkan node

Contoh keluaran:

NAME STATUS PERAN VERSI USIAostechmaster Siap control-plane, master 32m v1.23.1ostechworker Siap  30m v1.23.1

Kesimpulan

Pada artikel ini kita telah melihat langkah-langkah mendetail untuk menyiapkan dan mengonfigurasi Cluster Kubernetes menggunakan Kubeadm. Lihat seri kubernetes kami sebelumnya artikel untuk mendapatkan pemahaman mendetail tentang arsitektur dan konsep Kubernetes. Kita akan melihat operasi Kubernetes di artikel mendatang.

Baca Selanjutnya:

  • Cara Membuat Dan Mengelola Pod Kubernetes Di Linux

Sumber daya:

  • https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/

AlmaLinux
  1. AlmaLinux vs Rocky Linux

  2. Cara Instal PostgreSQL di CentOS 8 / Rocky Linux 8 / RHEL 8

  3. Cara Menginstal Java Di Rocky Linux 8 / CentOS 8 / RHEL 8

  1. Cara Install Cluster Kubernetes di Rocky Linux 8

  2. Cara Menginstal MediaWiki di RHEL 8/Rocky Linux 8/AlmaLinux OS 8

  3. Cara menginstal Erlang di Rocky Linux/Alma Linux/CentOS 8

  1. Cara Menginstal GUI GNOME di Rocky Linux 8 / CentOS 8 / RHEL 8

  2. Cara Install VirtualBox di Rocky Linux 8 / CentOS 8 / RHEL 8

  3. Cara Instal Docker di Rocky Linux 8 / CentOS 8 / RHEL 8 / AlmaLinux