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:434c49c7969256a7fae3880b3402102cadd386ab29d3dAnda dapat memverifikasi node di server Master menggunakan perintah di bawah ini
# kubectl dapatkan nodeContoh keluaran:
NAME STATUS PERAN VERSI USIAostechmaster Siap control-plane, master 32m v1.23.1ostechworker Siap30m 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/