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?
- Penginstalan Kubernetes
- Inisialisasi Cluster Kubernetes
- Menambahkan node01 dan node02 ke Cluster
- 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-namespacesSekarang 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=nginxUntuk melihat detail spesifikasi penerapan 'nginx', jalankan perintah berikut.
kubectl menjelaskan penerapan nginxDan 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.
Cara Menginstal Wiki Dokumentasi BookStack di CentOS 7 Cara Menginstal Perangkat Lunak Manajemen Proyek Taiga.io di CentOS 7Cent OS