Cara memasang cluster kubernetes di centos 8

Cara memasang cluster kubernetes di centos 8

Proses memasang a Kluster Kubernetes pada Centos 8 hampir mirip dengan Centos 7 (yang dapat Anda lalui di sini), tetapi prosesnya di sini memiliki beberapa perubahan. Perubahan ini, sebagian besar berputar di sekitar pemasangan Buruh pelabuhan.

Mulai dari Centos 8 (dan dengan ekstensi RHEL 8), buruh pelabuhan sekarang secara asli digantikan oleh podman Dan buildah yang merupakan alat dari Topi merah. Faktanya, paket Docker sekarang telah dihapus dari repositori paket default.

Dengan langkah ini, Topi merah Tim bertujuan untuk menyederhanakan proses membuat dan menggunakan wadah, tanpa memerlukan izin khusus, sementara pada saat yang sama, mempertahankan kompatibilitas dengan gambar Docker dan mengoperasikannya tanpa memerlukan daemon. Podman berjanji untuk menawarkan lebih banyak fleksibilitas saat berjalan Kubernetes lingkungan, tetapi juri tetap di luar sana.

Untuk artikel ini, kami akan menjalankan proses pemasangan Kubernetes pada suatu Centos 8 platform, berjalan terus Docker-CE (Edisi Komunitas). Dalam artikel selanjutnya, kami juga akan menjalankan instalasi yang sama, menggunakan podman untuk wadah kami.

Prasyarat

  1. Tiga server yang menjalankan Centos 8 - 1 Master Node Dan 2 node pekerja.
  2. Disarankan bahwa node Anda harus memiliki setidaknya 2 CPU dengan 2GB RAM 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 mengambil Kubernetes Dan buruh pelabuhan Paket dari repositori. Sama, Anda perlu memastikan bahwa DNF Package Manager 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 yang tersedia.
  5. Anda juga akan memerlukan akses ke akun dengan sudo atau hak istimewa root. Dalam tutorial ini, saya akan menggunakan akun root saya.

Pencegahan

Sebagian besar node umumnya datang dengan unik MAC Alamat, bagaimanapun, dalam beberapa kasus unik, beberapa Mesin virtual Mungkin memiliki alamat MAC yang identik. Oleh karena itu disarankan agar Anda mengkonfirmasi bahwa Product_uuid dan MAC Alamat tidak identik di salah satu node.

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

Untuk memeriksa alamat MAC dari antarmuka jaringan dan membandingkannya.

# tautan IP 

Untuk memeriksa Product_uuid dan bandingkan, jalankan perintah berikut.

# kucing/sys/class/dmi/id/product_uuid 

Arsitektur logis

Instalasi kami dirancang untuk memiliki Master-Node mengendalikan Node pekerja. Di akhir instalasi ini, arsitektur logis kami akan terlihat seperti ini.

Master Node - Mesin ini umumnya bertindak sebagai bidang kontrol dan menjalankan database cluster dan server API (yang dikomunikasikan oleh Kubectl CLI).

3-simpul kami Kluster Kubernetes akan terlihat seperti ini:

Diagram kluster Kubernetes

Pemasangan kluster Kubernetes di master-node

Untuk Kubernetes Untuk bekerja, Anda akan membutuhkan mesin kontainerisasi. Seperti yang disebutkan, kami akan menggunakan Docker-CE.

Lembaga -lembaga berikut akan dilakukan Centos 8 Master-Node.

Langkah 1: Siapkan nama host, firewall, dan selinux

Pada Anda Centos 8 Master-Node, Atur nama host sistem dan perbarui DNS di Anda /etc/host mengajukan.

# hostnamectl set-hostname master-node # cat <> /etc /hosts 192.168.0.47 Master-Node 192.168.0.48 Node-1 pekerja-simpul-1 192.168.0.49 Node-2 Worker-Node-2 EOF 

Selanjutnya, ping Anda Pekerja-Node-1 Dan Pekerja-Node-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 memungkinkan wadah mengakses sistem file host, yang diperlukan oleh jaringan pod dan layanan lainnya.

# Setenforce 0 

Pengaturan setenforce ke 0 secara efektif mengatur selinux ke permisif, yang secara efektif menonaktifkan Selinux sampai reboot berikutnya. Untuk sepenuhnya menonaktifkannya, gunakan perintah di bawah ini dan reboot.

# SED -I ---FOLLOW -SYMLINKS 'S/SELINUX = Enforcing/Selinux = Disabled/g'/etc/Sysconfig/selinux # reboot 

Kubernetes memanfaatkan berbagai port untuk komunikasi dan akses dan port ini perlu diakses oleh kubernet dan tidak dibatasi oleh firewall.

Port Kubernetes

Konfigurasikan aturan firewall di port.

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

Langkah 2: Pasang Docker-CE di Centos 8

Anda perlu menambahkan Buruh pelabuhan Repositori Pertama karena tidak ada lagi dalam daftar paket default menggunakan yang berikut DNF Config-Manager memerintah.

# dnf config-manager --add-repo = https: // download.buruh pelabuhan.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 gambar dan penyimpanan hingga pelaksanaan dan pengawasan wadah hingga penyimpanan tingkat rendah hingga lampiran jaringan dan seterusnya.

# DNF Instal https: // unduh.buruh pelabuhan.com/linux/centos/7/x86_64/stabil/paket/containerd.IO-1.2.6-3.3.EL7.x86_64.RPM 

Sekarang instal versi terbaru dari a Docker-CE kemasan.

# DNF Instal Docker-CE 

Anda sekarang dapat mengaktifkan dan memulai layanan Docker.

# Systemctl Aktifkan Docker # Systemctl Start Docker 

Langkah 3: Instal Kubernetes (Kubeadm) di Centos 8

Selanjutnya, Anda perlu menambahkan Kubernetes repositori secara manual karena tidak dipasang secara default Centos 8.

# kucing < /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=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 cluster kubernetes minimum yang sesuai dengan praktik terbaik. Dengan Kubeadm, Cluster Anda harus lulus tes kesesuaian Kubernetes.

Kubeadm juga mendukung fungsi siklus hidup cluster lainnya, seperti peningkatan, penurunan peringkat, dan mengelola token bootstrap. Kubeadm juga ramah integrasi dengan alat orkestrasi lainnya seperti Semu Dan Terraform.

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

# DNF Instal Kubeadm -Y 

Saat instalasi berhasil selesai, aktifkan dan mulai layanan.

# Systemctl Aktifkan Kubelet # Systemctl Mulai Kubelet 

Langkah 4: Buat Master Planus Kontrol dengan Kubeadm

Master kubernetes yang bertindak sebagai Pesawat Kontrol untuk cluster menjalankan beberapa layanan penting yang diperlukan untuk cluster. Dengan demikian, proses inisialisasi akan melakukan serangkaian precheck untuk memastikan bahwa mesin siap menjalankan kubernetes. Precheck ini mengekspos peringatan dan keluar pada kesalahan. Kubeadm init Kemudian mengunduh dan menginstal komponen bidang kontrol cluster.

Sekarang saatnya menginisialisasi Kubernetes Master, 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

Selanjutnya, salin perintah berikut dan simpan di suatu tempat, seperti yang kami perlukan untuk menjalankan perintah ini pada node pekerja nanti.

Kubeadm Bergabung 192.168.0.47: 6443 -Token Nu06lu.xrsux0ss0ixtnms5 \--discovery-ca-cert-hash ha256: f996ea35r4353d342fdea297a1cf8Caeddafd6d4360d606dbc823146883478hmf77

Tip: Terkadang perintah di atas mungkin melemparkan kesalahan tentang argumen yang disahkan, jadi untuk menghindari kesalahan, Anda perlu menghapus '\' karakter dan perintah terakhir Anda akan terlihat seperti ini.

# Kubeadm Bergabung 192.168.0.47: 6443 -Token Nu06lu.xrsux0ss0ixtnms5 -discovery token-ca-cert-hash sha256: f996ea35r4353d342fdea297a1cf8caeddafd6d4360d606dbc823146883478hjmf7 

Sekali Kubernetes diinisialisasi dengan sukses, 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, berlari:

# mkdir -p $ home/.Kube # CP -I/etc/Kubernetes/Admin.conf $ home/.Kube/config # chown $ (id -u): $ (id -g) $ home/.Kube/Config 

Untuk menggunakan a sudo diaktifkan pengguna, berlari:

$ mkdir -p $ rumah/.Kube $ Sudo CP -I/etc/Kubernetes/Admin.conf $ home/.Kube/config $ sudo chown $ (id -u): $ (id -g) $ home/.Kube/Config 

Sekarang konfirmasi bahwa Perintah Kubectl diaktifkan.

# Kubectl mendapatkan node 
Periksa status node

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

Jaringan pod adalah jaringan overlay untuk cluster, yang digunakan di atas jaringan node ini. Itu dirancang untuk memungkinkan konektivitas di seluruh pod.

Langkah 5: Siapkan Jaringan Pod Anda

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

Perintah ini akan menjadi penting untuk mendapatkan pengaturan jaringan pod.

# Ekspor Kubever = $ (Versi Kubectl | Base64 | Tr -D '\ n') # Kubectl Apply -f "https: // cloud.menenun.Works/K8s/Net?K8S-versi = $ Kubever " 
Pengaturan Jaringan Pod

Sekarang jika Anda memeriksa status Node Master Anda, itu harus 'Siap'.

# Kubectl mendapatkan node 
Periksa status node utama

Selanjutnya, kami menambahkan node pekerja ke cluster.

Menambahkan node pekerja ke kluster Kubernetes

Instruksi berikut akan dilakukan pada masing -masing Node Pekerja Saat bergabung dengan kluster Kubernetes.

Langkah 1: Siapkan nama host, firewall, dan selinux

Pertama atur nama host di Pekerja-Node-1 Dan Pekerja-Node-2, dan kemudian tambahkan entri host ke /etc/host mengajukan.

# hostnamectl set-hostname 'node-1' # cat <> /etc /hosts 192.168.0.47 Master-Node 192.168.0.48 Node-1 pekerja-simpul-1 192.168.0.49 Node-2 Worker-Node-2 EOF 

Selanjutnya, ping Anda Master Node dari kamu node 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 = penegakan/selinux = dinonaktifkan/g'/etc/sysconfig/selinux # firewall-cmd --permanent --add-port = 6783/tcp # firewall- cmd --permanent --add-port = 10250/tcp # firewall-cmd --permanent --add-port = 10255/tcp # firewall-cmd --permanent --add-port = 30000-32767/tcp # firewall- cmd --eload # echo '1'>/proc/sys/net/bridge/bridge-nf-call-iPrabsable 

Langkah 2: Setup Docker-CE dan Kubernetes repo

Tambahkan repositori Docker terlebih dahulu menggunakan dnf config-manager.

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

Selanjutnya, tambahkan containerd.io kemasan.

# DNF Instal https: // unduh.buruh pelabuhan.com/linux/centos/7/x86_64/stabil/paket/containerd.IO-1.2.6-3.3.EL7.x86_64.RPM 

Dengan dua paket ini diinstal, instal versi terbaru Docker-CE.

# DNF Instal Docker-CE 

Aktifkan dan Mulailah Layanan Docker.

# Systemctl Aktifkan Docker # Systemctl Start Docker 

Anda perlu menambahkan Kubernetes repositorial secara manual karena tidak dipasang sebelumnya Centos 8.

# kucing < /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=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: Pasang Kubeadm di Centos 8

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

# DNF Instal Kubeadm -Y 

Mulai dan Aktifkan Layanan.

# Systemctl Aktifkan Kubelet # Systemctl Mulai Kubelet 

Langkah 4: Bergabunglah dengan simpul pekerja ke kluster Kubernetes

Kami sekarang membutuhkan token itu Kubeadm init dihasilkan, untuk bergabung dengan cluster. Anda dapat menyalin dan menempelkannya ke Anda Node-1 Dan Node-2 Jika Anda telah menyalinnya di suatu tempat.

# Kubeadm Bergabung 192.168.0.47: 6443 -Token Nu06lu.xrsux0ss0ixtnms5-discovery-token-ca-cert-hash sha256: f996ea35r4353d342fdea297a1cf8caeddafd6d4360d606dbc823146883478hjmf78 

Seperti yang disarankan di baris terakhir, kembali ke Anda Master-Node dan verifikasi jika pekerja Node-1 Dan Pekerja Node-2 telah bergabung dengan cluster menggunakan perintah berikut.

# Kubectl mendapatkan node 
Periksa semua status node di kluster Kubernetes

Jika semua langkah berjalan dengan sukses, maka, Anda harus melihat Node-1 Dan Node-2 dalam status siap di Master-Node. Pada titik ini, Anda sekarang telah berhasil menggunakan cluster Kubernetes Centos 8.

Direkomendasikan baca: Cara menggunakan Nginx pada cluster Kubernetes

Beberapa batasan

Cluster yang telah kami buat di sini memiliki satu Master Node, dan dengan demikian, jika Master Node Gagal, cluster Anda mungkin kehilangan data dan mungkin perlu diciptakan kembali dari awal.

Untuk alasan ini, saya merekomendasikan pengaturan yang sangat tersedia.