Cara Memasang Cluster Kubernetes di CentOS 8

instagram story viewer

Proses pemasangan Gugus Kubernetes pada CentOS 8 hampir mirip dengan CentOS 7 (yang bisa kamu lalui di sini), tetapi proses di sini memiliki beberapa perubahan. Perubahan ini, sebagian besar berkisar pada pemasangan Buruh pelabuhan.

Mulai dari CentOS 8 (dan dengan ekstensi RHEL 8), buruh pelabuhan sekarang secara asli telah digantikan oleh tukang pod dan bangunan yang merupakan alat dari Topi merah. Faktanya, paket buruh pelabuhan sekarang telah dihapus dari repositori paket default.

Dengan gerakan ini, Topi merah team bertujuan untuk menyederhanakan proses pembuatan dan penggunaan container, tanpa memerlukan izin khusus, sementara pada saat yang sama, menjaga kompatibilitas dengan gambar buruh pelabuhan dan mengoperasikannya tanpa perlu daemon. Podman berjanji untuk menawarkan lebih banyak fleksibilitas saat dijalankan Kubernetes lingkungan, tapi juri tetap di luar sana.

Untuk artikel ini, kami akan menjalankan proses instalasi Kubernetes pada suatu CentOS 8 platform, berjalan di Docker-CE (Edisi Komunitas). Di artikel selanjutnya, kami juga akan menjalankan instalasi serupa, menggunakan tukang pod untuk wadah kami.

Prasyarat

  1. Tiga server yang menjalankan CentOS 81 Node Utama dan 2 Node Pekerja.
  2. Direkomendasikan bahwa node Anda harus memiliki setidaknya 2 CPU dengan RAM 2GB atau lebih per mesin. Ini bukan persyaratan yang ketat tetapi sebagian besar didorong oleh kebutuhan aplikasi yang ingin Anda jalankan.
  3. Konektivitas internet di semua node Anda. Kami akan menjemput Kubernetes dan buruh pelabuhan paket dari repositori. Sama halnya, Anda harus memastikan bahwa Manajer paket DNF diinstal secara default dan dapat mengambil paket dari jarak jauh.
  4. Semua node Anda juga harus dapat terhubung satu sama lain, baik di jaringan pribadi atau publik, mana saja yang tersedia.
  5. Anda juga akan memerlukan akses ke akun dengan hak sudo atau root. Dalam tutorial ini, saya akan menggunakan akun root saya.

Pencegahan

Kebanyakan node umumnya datang dengan unik MAC alamat, namun, dalam beberapa kasus unik, beberapa Mesin virtual mungkin memiliki alamat MAC yang identik. Oleh karena itu, Anda disarankan untuk mengonfirmasi bahwa Produk_UUID dan MAC alamat tidak identik di salah satu node.

Kubernetes menggunakan nilai-nilai ini untuk secara unik mengidentifikasi node dalam cluster. Jika nilai ini tidak unik untuk setiap node, proses penginstalan mungkin gagal.

Untuk memeriksa alamat MAC dari antarmuka jaringan dan membandingkannya.

#iplink. 

Untuk memeriksa produk_uuid dan bandingkan, jalankan perintah berikut.

# cat /sys/class/dmi/id/product_uuid 

Arsitektur Logis

Instalasi kami dirancang untuk memiliki Master-Node mengendalikan Node Pekerja. Pada akhir instalasi ini, arsitektur logis kita akan terlihat seperti ini.

Node Utama – Mesin ini biasanya bertindak sebagai control plane dan menjalankan database cluster dan server API (yang berkomunikasi dengan kubectl CLI).

3-simpul kami Gugus Kubernetes akan terlihat seperti ini:

Diagram Cluster Kubernetes
Diagram Cluster Kubernetes

Instalasi Cluster Kubernetes di Master-Node

Untuk Kubernetes untuk bekerja, Anda akan memerlukan mesin containerization. Seperti yang disebutkan, kami akan menggunakan Docker-CE.

Institusi berikut akan dilakukan pada: CentOS 8 Master-Node.

Langkah 1: Siapkan Hostname, Firewall, dan SELinux

Pada Anda CentOS 8 Master-Node, atur nama host sistem dan perbarui DNS di. Anda /etc/hosts mengajukan.

# hostnamectl set-hostname master-node. # kucing <> /etc/hosts. 192.168.0.47 master-node. 192.168.0.48 simpul-1 pekerja-simpul-1. 192.168.0.49 simpul-2 pekerja-simpul-2. EOF. 

Selanjutnya, ping pekerja-simpul-1 dan pekerja-simpul-2 untuk memeriksa apakah file host Anda yang diperbarui berfungsi dengan benar menggunakan perintah ping.

#ping 192.168.0.48. #ping 192.168.0.49. 

Selanjutnya, nonaktifkan selinux, karena ini diperlukan untuk mengizinkan container mengakses sistem file host, yang dibutuhkan oleh jaringan pod dan layanan lainnya.

# setenforce 0. 

Pengaturan kekuatan ke 0 secara efektif mengatur SELinux ke permisif, yang secara efektif menonaktifkan SELinux hingga reboot berikutnya. Untuk menonaktifkannya sepenuhnya, gunakan perintah di bawah ini dan reboot.

# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux. # menyalakan ulang. 

Kubernetes menggunakan berbagai port untuk komunikasi dan akses dan port ini harus dapat diakses oleh Kubernetes dan tidak dibatasi oleh firewall.

Pelabuhan Kubernetes
Pelabuhan Kubernetes

Konfigurasikan aturan firewall pada port.

# firewall-cmd --permanent --add-port=6443/tcp. # firewall-cmd --permanen --add-port=2379-2380/tcp. # firewall-cmd --permanen --add-port=10250/tcp. # firewall-cmd --permanen --add-port=10251/tcp. # firewall-cmd --permanen --add-port=10252/tcp. # firewall-cmd --permanen --add-port=10255/tcp. # firewall-cmd --reload. #modprobe br_netfilter. # echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables. 

Langkah 2: Instal Docker-CE di CentOS 8

Anda perlu menambahkan Buruh pelabuhan repositori terlebih dahulu karena tidak lagi dalam daftar paket default menggunakan yang berikut: dnf config-manager memerintah.

# dnf config-manager --add-repo= https://download.docker.com/linux/centos/docker-ce.repo. 

Juga instal containerd.io paket yang tersedia sebagai daemon yang mengelola siklus hidup kontainer lengkap dari sistem host-nya, dari transfer dan penyimpanan gambar ke eksekusi kontainer dan pengawasan ke penyimpanan tingkat rendah ke lampiran jaringan dan di luar.

#instal dnf https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm. 

Sekarang instal versi terbaru a buruh pelabuhan kemasan.

# dnf install docker-ce. 

Anda sekarang dapat mengaktifkan dan memulai layanan buruh pelabuhan.

# systemctl aktifkan buruh pelabuhan. # systemctl mulai buruh pelabuhan. 

Langkah 3: Instal Kubernetes (Kubeadm) di CentOS 8

Selanjutnya, Anda perlu menambahkan Kubernetes repositori secara manual karena tidak diinstal secara default pada CentOS 8.

# kucing </etc/yum.repos.d/kubernetes.repo. [kubernet] nama=Kubernetes. dasar = https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. diaktifkan=1. gpgcheck=1. repo_gpgcheck=1. gpgkey= https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg. EOF.

kubeadm membantu Anda mem-bootstrap kluster Kubernetes minimum yang sesuai dengan praktik terbaik. Dengan kubeadm, cluster Anda harus lulus uji Kesesuaian Kubernetes.

kubeadm juga mendukung fungsi siklus hidup cluster lainnya, seperti peningkatan, penurunan versi, dan pengelolaan token bootstrap. Kubeadm juga ramah integrasi dengan alat orkestrasi lainnya seperti mungkin dan Terraform.

Dengan repo paket sekarang siap, Anda dapat melanjutkan dan menginstal kubeadm kemasan.

# dnf install kubeadm -y 

Ketika instalasi selesai dengan sukses, aktifkan dan mulai layanan.

# systemctl aktifkan kubelet. # systemctl mulai kubelet. 

Langkah 4: Buat Master bidang kontrol dengan kubeadm

Master Kubernetes yang bertindak sebagai pesawat kendali untuk cluster menjalankan beberapa layanan penting yang diperlukan untuk cluster. Dengan demikian, proses inisialisasi akan melakukan serangkaian pemeriksaan awal untuk memastikan bahwa mesin siap menjalankan Kubernetes. Pemeriksaan awal ini mengekspos peringatan dan keluar dari kesalahan. kubeadm init kemudian mengunduh dan menginstal komponen bidang kontrol klaster.

Sekarang saatnya untuk menginisialisasi master Kubernetes, tetapi sebelum itu, Anda harus menonaktifkan swap untuk menjalankan “kubeadm init" memerintah.

# swapoff -a. 

Inisialisasi Kubernetes master adalah proses yang sepenuhnya otomatis yang dikendalikan oleh "kubeadm init" perintah seperti yang ditunjukkan.

# kubeadm init. 
Inisialisasi Master Kubernetes
Inisialisasi Master Kubernetes

Selanjutnya, salin perintah berikut dan simpan di suatu tempat, karena kami harus menjalankan perintah ini pada node pekerja nanti.

kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 \ --discovery-token-ca-cert-hash ha256:f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc82314683478hjm

Tip: Terkadang perintah di atas mungkin menimbulkan kesalahan tentang argumen yang diteruskan, jadi untuk menghindari kesalahan, Anda perlu menghapus ‘\’ karakter dan perintah terakhir Anda akan terlihat seperti ini.

# kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 –discovery token-ca-cert-hash sha256:f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc82314683478hjmf 

Satu kali Kubernetes berhasil diinisialisasi, Anda harus mengaktifkan pengguna Anda untuk mulai menggunakan cluster. Dalam skenario kami, kami akan menggunakan pengguna root. Anda juga dapat memulai cluster menggunakan pengguna sudo seperti yang ditunjukkan.

Menggunakan akar, Lari:

# mkdir -p $HOME/.kube. # cp -i /etc/kubernetes/admin.conf $HOME/.kube/config. # chown $(id -u):$(id -g) $HOME/.kube/config. 

Untuk menggunakan pengguna yang diaktifkan sudo, Lari:

$ mkdir -p $HOME/.kube. $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config. $ sudo chown $(id -u):$(id -g) $HOME/.kube/config. 

Sekarang konfirmasikan bahwa perintah kubectl diaktifkan.

# kubectl mendapatkan node. 
Periksa Status Node
Periksa Status Node

Pada saat ini, Anda akan melihat status master-node adalah 'Belum siap’. Ini karena kami belum men-deploy jaringan pod ke cluster.

Pod Network adalah jaringan overlay untuk cluster, yang ditempatkan di atas jaringan node saat ini. Ini dirancang untuk memungkinkan konektivitas di seluruh pod.

Langkah 5: Siapkan Jaringan Pod Anda

Menyebarkan cluster jaringan adalah proses yang sangat fleksibel tergantung pada kebutuhan Anda dan ada banyak pilihan yang tersedia. Karena kami ingin membuat instalasi kami sesederhana mungkin, kami akan menggunakan tenun plugin yang tidak memerlukan konfigurasi atau kode tambahan apa pun dan menyediakan satu alamat IP per pod yang sangat bagus untuk kami. Jika Anda ingin melihat lebih banyak opsi, silakan periksa di sini.

Perintah-perintah ini penting untuk mendapatkan pengaturan jaringan pod.

# export kubever=$(versi kubectl | base64 | tr -d '\n') # kubectl apply -f " https://cloud.weave.works/k8s/net? k8s-version=$kubever"
Siapkan Jaringan Pod
Siapkan Jaringan Pod

Sekarang jika Anda memeriksa status master-node Anda, seharusnya 'Siap’.

# kubectl mendapatkan node. 
Periksa Status Node Master
Periksa Status Node Master

Selanjutnya, kita tambahkan simpul pekerja ke klaster.

Menambahkan Node Pekerja ke Cluster Kubernetes

Instruksi berikut akan dilakukan pada masing-masing simpul pekerja saat bergabung dengan cluster Kubernetes.

Langkah 1: Siapkan Hostname, Firewall, dan SELinux

Pertama-tama atur nama host di. Anda pekerja-simpul-1 dan pekerja-simpul-2, lalu tambahkan entri host ke /etc/hosts mengajukan.

# hostnamectl set-hostname 'node-1' # kucing <> /etc/hosts. 192.168.0.47 master-node. 192.168.0.48 simpul-1 pekerja-simpul-1. 192.168.0.49 simpul-2 pekerja-simpul-2. EOF. 

Selanjutnya, ping simpul utama dari kamu simpul pekerja untuk mengonfirmasi bahwa file host Anda yang diperbarui berfungsi dengan baik menggunakan perintah ping.

# 192.168.0.47. 

Selanjutnya, nonaktifkan SElinux dan perbarui aturan firewall Anda.

# setenforce 0. # sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux. # firewall-cmd --permanen --add-port=6783/tcp. # firewall-cmd --permanen --add-port=10250/tcp. # firewall-cmd --permanen --add-port=10255/tcp. # firewall-cmd --permanen --add-port=30000-32767/tcp. # firewall-cmd --reload. # echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables. 

Langkah 2: Siapkan Repo Docker-CE dan Kubernetes

Tambahkan repositori Docker terlebih dahulu menggunakan DNF config-manager.

# dnf config-manager --add-repo= https://download.docker.com/linux/centos/docker-ce.repo. 

Selanjutnya, tambahkan containerd.io kemasan.

#instal dnf https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm. 

Dengan kedua paket ini terinstal, instal versi terbaru dari buruh pelabuhan.

# dnf install docker-ce. 

Aktifkan dan mulai layanan buruh pelabuhan.

# systemctl aktifkan buruh pelabuhan. # systemctl mulai buruh pelabuhan. 

Anda perlu menambahkan Kubernetes repositori secara manual karena tidak diinstal sebelumnya CentOS 8.

# kucing </etc/yum.repos.d/kubernetes.repo. [kubernet] nama=Kubernetes. dasar = https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. diaktifkan=1. gpgcheck=1. repo_gpgcheck=1. gpgkey= https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg. EOF.

Langkah 3: Instal Kubeadm di CentOS 8

Dengan repo paket sekarang siap, Anda dapat melanjutkan dan menginstal kubeadm.

# dnf install kubeadm -y 

Mulai dan aktifkan layanan.

# systemctl aktifkan kubelet. # systemctl mulai kubelet. 

Langkah 4: Bergabung dengan Worker Node ke Cluster Kubernetes

Kami sekarang membutuhkan token yang kubeadm init dihasilkan, untuk bergabung dengan cluster. Anda dapat menyalin dan menempelkannya ke simpul-1 dan simpul-2 jika Anda telah menyalinnya di suatu tempat.

# kubeadm gabung 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256:f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc82314683478hjmf783478hjm 

Seperti yang disarankan pada baris terakhir, kembali ke Anda master-node dan verifikasi apakah pekerja simpul-1 dan simpul pekerja-2 telah bergabung dengan cluster menggunakan perintah berikut.

# kubectl mendapatkan node. 
Periksa Semua Status Node di Cluster Kubernetes
Periksa Semua Status Node di Cluster Kubernetes

Jika semua langkah berhasil dijalankan, maka, Anda akan melihat simpul-1 dan simpul-2 dalam status siap di master-node. Pada titik ini, Anda sekarang telah berhasil menerapkan cluster Kubernetes di CentOS 8.

Bacaan yang Direkomendasikan: Cara Menyebarkan Nginx di Cluster Kubernetes

Beberapa Keterbatasan

Cluster yang kami buat di sini memiliki satu Node utama, dan dengan demikian, jika Node utama gagal, cluster Anda mungkin kehilangan data dan mungkin perlu dibuat ulang dari awal.

Untuk alasan ini, saya merekomendasikan pengaturan Sangat Tersedia.

Teachs.ru