GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Menginstal Cluster Docker Kubernetes di CentOS 7

Kubernetes adalah platform open source untuk mengelola aplikasi dalam container yang dikembangkan oleh Google. Ini memungkinkan Anda untuk mengelola, menskalakan, dan secara otomatis menerapkan aplikasi dalam container di lingkungan cluster. Dengan Kubernetes, kami dapat mengatur container kami di beberapa host, menskalakan aplikasi dalam container dengan semua sumber daya dengan cepat, dan memiliki lingkungan manajemen container yang terpusat.

Dalam tutorial ini, saya akan menunjukkan langkah demi langkah cara menginstal dan mengkonfigurasi Kubernetes di CentOS 7. Kita akan menggunakan 1 server 'k8s-master' sebagai Master Host Kubernetes, dan 2 server sebagai node Kubernetes, 'node01' dan 'node02'.

Prasyarat

  • Server 3 CentOS 7
    • 10.0.15.10      k8s-master
    • 10.0.15.21      node01
    • 10.0.15.22      node02
  • Hak istimewa root

Apa yang akan kita lakukan?

  1. Penginstalan Kubernetes
  2. Inisialisasi Cluster Kubernetes
  3. Menambahkan node01 dan node02 ke Cluster
  4. Pengujian - Buat Pod Pertama

Langkah 1 - Instalasi Kubernetes

Pada langkah pertama ini, kita akan menyiapkan 3 server tersebut untuk instalasi Kubernetes, jadi jalankan semua perintah di server master dan node.

Kami akan menyiapkan semua server untuk instalasi Kubernetes dengan mengubah konfigurasi yang ada di server, dan juga menginstal beberapa paket, termasuk docker-ce dan kubernetes itu sendiri.

- Konfigurasikan Host

Edit file host di semua server menggunakan editor vim.

vim /etc/hosts

Tempelkan daftar host di bawah.

10.0.15.10      k8s-master
10.0.15.21      node01
10.0.15.22      node02

Simpan dan keluar.

- Nonaktifkan SELinux

Dalam tutorial ini, kami tidak akan membahas tentang konfigurasi SELinux untuk Docker, jadi kami akan menonaktifkannya.

Jalankan perintah di bawah ini untuk menonaktifkan SELinux.

setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

- Aktifkan Modul Kernel br_netfilter

Modul br_netfilter diperlukan untuk instalasi kubernetes. Aktifkan modul kernel ini sehingga paket yang melintasi jembatan diproses oleh iptables untuk penyaringan dan penerusan port, dan pod kubernetes di seluruh cluster dapat berkomunikasi satu sama lain.

Jalankan perintah di bawah ini untuk mengaktifkan modul kernel br_netfilter.

modprobe br_netfilter
echo '1'> /proc/sys/net/bridge/bridge-nf-call-iptables

- Nonaktifkan SWAP

Nonaktifkan SWAP untuk instalasi kubernetes dengan menjalankan perintah berikut.

swapoff -a

Kemudian edit file '/etc/fstab'.

vim /etc/fstab

Komentari UUID baris swap seperti di bawah ini.

- Instal Docker CE

Instal versi terbaru Docker-ce dari repositori buruh pelabuhan.

Instal dependensi paket untuk docker-ce.

yum install -y yum-utils device-mapper-persistent-data lvm2

Tambahkan repositori buruh pelabuhan ke sistem dan instal docker-ce menggunakan perintah yum.

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce

Tunggu penginstalan docker-ce.

- Instal Kubernetes

Tambahkan repositori kubernetes ke sistem centos 7 dengan menjalankan perintah berikut.

cat < /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

Sekarang instal paket kubernetes kubeadm, kubelet, dan kubectl menggunakan perintah yum di bawah ini.

yum install -y kubelet kubeadm kubectl

Setelah penginstalan selesai, mulai ulang semua server tersebut.

sudo reboot

Masuk lagi ke server dan mulai layanan, buruh pelabuhan, dan kubelet.

systemctl start docker &&systemctl aktifkan docker
systemctl start kubelet &&systemctl aktifkan kubelet

- Mengubah cgroup-driver

Kita perlu memastikan docker-ce dan kubernetes menggunakan 'cgroup' yang sama.

Periksa cgroup buruh pelabuhan menggunakan perintah info buruh pelabuhan.

info buruh pelabuhan | grep -i cgroup

Dan Anda melihat buruh pelabuhan menggunakan 'cgroupfs ' sebagai cgroup-driver.

Sekarang jalankan perintah di bawah ini untuk mengubah kuberetes cgroup-driver menjadi 'cgroupfs'.

sed -i 's/cgroup-driver=systemd/cgroup-driver=cgroupfs/g' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

Muat ulang sistem systemd dan mulai ulang layanan kubelet.

systemctl daemon-reload
systemctl restart kubelet

Sekarang kita siap untuk mengonfigurasi Cluster Kubernetes.

Langkah 2 - Inisialisasi Cluster Kubernetes

Pada langkah ini, kita akan menginisialisasi konfigurasi master cluster kubernetes.

Pindahkan shell ke server master 'k8s-master' dan jalankan perintah di bawah ini untuk menyiapkan master kubernetes.

kubeadm init --apiserver-advertise-address=10.0.15.10 --pod-network-cidr=10.244.0.0/16

Catatan:

--apiserver-advertise-address =menentukan alamat IP mana Kubernetes harus mengiklankan server API-nya.

--pod-network-cidr =tentukan kisaran alamat IP untuk jaringan pod. Kami menggunakan jaringan virtual 'flanel'. Jika Anda ingin menggunakan jaringan pod lain seperti weave-net atau calico, ubah alamat IP rentang.

Ketika inisialisasi Kubernetes selesai, Anda akan mendapatkan hasil seperti di bawah ini.

Catatan:

Salin 'kubeadm join ... ... ... ' ke editor teks Anda. Perintah tersebut akan digunakan untuk mendaftarkan node baru ke cluster kubernetes.

Sekarang untuk menggunakan Kubernetes, kita perlu menjalankan beberapa perintah seperti pada hasilnya.

Buat direktori konfigurasi '.kube' baru dan salin konfigurasi 'admin.conf'.

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

Selanjutnya, deploy jaringan flannel ke cluster kubernetes menggunakan perintah kubectl.

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Jaringan flanel telah di-deploy ke cluster Kubernetes.

Tunggu sebentar lalu periksa node dan pod kubernetes menggunakan perintah di bawah ini.

kubectl mendapatkan node
kubectl mendapatkan pod --all-namespaces

Dan Anda akan mendapatkan node 'k8s-master' berjalan sebagai cluster 'master' dengan status 'ready', dan Anda akan mendapatkan semua pod yang dibutuhkan untuk cluster tersebut, termasuk 'kube-flannel-ds' untuk pod jaringan konfigurasi.

Pastikan semua status pod kube-system 'berjalan'.

Inisialisasi dan konfigurasi master cluster Kubernetes telah selesai.

Langkah 3 - Menambahkan node01 dan node02 ke Cluster

Pada langkah ini, kita akan menambahkan node01 dan node02 untuk bergabung dengan cluster 'k8s'.

Hubungkan ke server node01 dan jalankan perintah kubeadm join seperti yang kita salin di atas.

kubeadm bergabung 10.0.15.10:6443 --token vzau5v.vjiqyxq26lzsf28e --discovery-token-ca-cert-hash sha256:e6d046ba34ee03e7d55e1f5ac6d2de09fd6d7e6959d16782ef0761e 

Hubungkan ke server node02 dan jalankan perintah kubeadm join seperti yang kita salin di atas.

kubeadm bergabung 10.0.15.10:6443 --token vzau5v.vjiqyxq26lzsf28e --discovery-token-ca-cert-hash sha256:e6d046ba34ee03e7d55e1f5ac6d2de09fd6d7e6959d16782ef0761e 

Tunggu beberapa menit dan kembali ke server master cluster 'k8s-master' periksa node dan pod menggunakan perintah berikut.

kubectl mendapatkan node
kubectl mendapatkan pod --all-namespaces

Sekarang Anda akan mendapatkan node01 dan node02 telah ditambahkan ke cluster dengan status 'ready'.

node01 dan node02 telah ditambahkan ke cluster kubernetes.

Langkah 4 - Menguji Buat Pod Pertama

Pada langkah ini, kita akan melakukan pengujian dengan men-deploy pod Nginx ke cluster kubernetes. Pod adalah grup dari satu atau beberapa container dengan penyimpanan dan jaringan bersama yang berjalan di bawah Kubernetes. Sebuah Pod berisi satu atau lebih container, seperti container Docker.

Masuk ke server 'k8s-master' dan buat penerapan baru bernama 'nginx' menggunakan perintah kubectl.

kubectl buat penerapan nginx --image=nginx

Untuk melihat detail spesifikasi penerapan 'nginx', jalankan perintah berikut.

kubectl menjelaskan penerapan nginx

Dan Anda akan mendapatkan spesifikasi penerapan pod nginx.

Selanjutnya, kami akan mengekspos pod nginx yang dapat diakses melalui internet. Dan kita perlu membuat layanan baru NodePort untuk ini.

Jalankan perintah kubectl di bawah ini.

kubectl create service nodeport nginx --tcp=80:80

Pastikan tidak ada kesalahan. Sekarang periksa nodeport dan IP layanan nginx menggunakan perintah kubectl di bawah ini.

kubectl mendapatkan pod
kubectl mendapatkan svc

Sekarang Anda akan mendapatkan pod nginx sekarang berjalan di bawah alamat IP cluster '10.160.60.38' port 80, dan alamat IP utama node '10.0.15.x' pada port '30691'.

Dari server 'k8s-master', jalankan perintah curl di bawah ini.

curl node01:30691

curl node02:30691

Nginx Pod sekarang telah di-deploy di bawah cluster Kubernetes dan dapat diakses melalui internet.

Sekarang akses dari browser web.

http://10.0.15.10:30691/

Dan Anda akan mendapatkan halaman default Nginx.

Di server node02 - http://10.0.15.11:30691/

Instalasi dan konfigurasi cluster Kubernetes pada CentOS 7 telah berhasil diselesaikan.


Cent OS
  1. Cara Menginstal Docker di CentOS 7

  2. Cara Menginstal Docker di CentOS 7 / RHEL 7

  3. Cara Menginstal Docker Di CentOS

  1. Cara Menginstal Kubernetes di Ubuntu 18.04

  2. Cara Memasang Cluster Kubernetes di CentOS 7

  3. Cara Menginstal Docker Compose di CentOS 7

  1. Cara Menginstal Docker di CentOS 8

  2. Cara Menginstal Rancher di CentOS 7

  3. Cara menginstal Docker CE di RHEL 8 / CentOS 8