Cara Install Kubernetes Cluster Menggunakan Kubespray
Apakah Anda mencari panduan mudah tentang cara menginstal Kubernetes (k8s) menggunakan kubespray?
Panduan langkah demi langkah di halaman ini akan menunjukkan kepada Anda cara menginstal Kubernetes Cluster menggunakan kubespray pada sistem linux.
Kubesprayadalah alat sumber terbuka dan gratis yang menyediakan playbook yang memungkinkan untuk men-deploy dan mengelola cluster Kubernetes. Ini dirancang untuk menyederhanakan proses instalasi klaster Kubernetes di beberapa node, memungkinkan pengguna untuk menerapkan dan mengelola klaster Kubernetes siap produksi dengan cepat dan mudah.
Mendukung berbagai sistem operasi, termasuk Ubuntu, CentOS, Rocky Linux, dan Red Hat Enterprise Linux, dan dapat menerapkan Kubernetes pada berbagai platform, termasuk bare metal, cloud publik, dan cloud pribadi.
Dalam panduan ini, kami menggunakan lab berikut,
Ansible Node (Kubespray Node): Minimal menginstal Ubuntu 22.04 LTS (192.168. 1.240)3 Node Pengontrol: Rocky Linux 9 Terinstal Minimal (192.168.1.241/242/243)2 Node Pekerja: Rocky Linux 9 Terinstal Minimal (192.168.1.244/245)Persyaratan sistem minimum untuk kubesprayMaster Node: 1500 MB RAM, 2 CPU dan Ruang disk kosong 20 GB Node Pekerja: 1024 MB, 2 CPU, ruang disk kosong 20 GB Node yang Memungkinkan: 1024 MB, 1 CPU, dan ruang disk 20 GB Konektivitas internet pada setiap node Reguler dengan hak sudo admin
Tanpa penundaan lebih lanjut, mari d eep selami langkah-langkah instalasi,
Langkah 1) Konfigurasikan Kubespray Node
Login ke sistem Ubuntu 22.04 Anda dan instal yang memungkinkan. Jalankan rangkaian perintah berikut,
$ sudo apt update $ sudo apt install git python3 python3-pip -y $ git clone https://github.com/kubernetes-incubator/kubespray.git $ cd kubespray $ pip install -r requirements .txt
Verifikasi versi yang memungkinkan, run
$ ansible --version
Buat inventaris host, jalankan perintah di bawah dan jangan lupa untuk mengganti alamat IP yang sesuai dengan penerapan Anda.
$ cp -rfp inventarisasi/inventaris sampel/mycluster $ deklarasikan -a IPS =(192.168.1.241 192.168.1.241 192.168.1.242 192.168.1.243 192.168.1.244 192.168.1.245) $ CONFIG_FILE=inventaris/mycluster/hosts.yaml python3 contrib/inventory_builder/inventify@bfile.py. , setel 3 node kontrol dan 2 node pekerja
$ vi inventory/mycluster/hosts.yaml
Simpan dan tutup file
Review dan ubah parameter berikut dalam file “inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml”.
kube_version: v1.26.2 kube_network_plugin: calico kube_p ods_subnet: 10.233.64.0/18 kube_service_addresses: 10.233.0.0/18 cluster_name: linuxtechi.local
Untuk mengaktifkan addons seperti dasbor kuberenetes dan pengontrol masuknya, atur parameter sebagai diaktifkan di file “inventory/mycluster/group_vars/k8s_cluster/addons.yml”
$ vi inventory/mycluster/group_vars/k8s_cluster/addons.yml ----------- dashboard_enabled: true ingress_nginx_enabled: true ingress_nginx_host_network: true -----------
save dan keluar dari file.
Langkah 2) Salin kunci-SSH dari node yang memungkinkan ke semua node lain
Pertama buat kunci-ssh untuk pengguna lokal Anda di node yang memungkinkan,
$ ssh-keygen
Salin kunci-ssh menggunakan perintah ssh-copy-id,
$ ssh-copy -id [email protected] $ ssh-copy-id [email protected] $ ssh-copy-id [email protected] $ ssh-copy-id [email protected] $ ssh-copy-id [email protected]
Baca Juga: Cara untuk Mengatur Login SSH Tanpa Kata Sandi di Linux dengan Keys
Juga jalankan perintah berikut di setiap node.
$ echo "sysops SEMUA=(SEMUA) NOPASSWD:SEMUA" | sudo tee /etc/sudoers.d/sysops
Langkah 3) Nonaktifkan Firewall dan Aktifkan penerusan IPV4
Untuk menonaktifkan firewall di semua node, jalankan perintah berikut dari node yang memungkinkan,
$ cd kubespray $ ansible all -i inventory/mycluster/hosts.yaml - m shell -a "sudo systemctl stop firewalld && sudo systemctl disable firewalld"
Jalankan mengikuti perintah yang memungkinkan untuk mengaktifkan penerusan IPv4 dan menonaktifkan swap pada semua node,
$ memungkinkan semua -i inventori/mycluster/hosts.yaml -m shell -a " echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf" $ memungkinkan semua -i inventori/mycluster/hosts.yaml -m shell -a "sudo sed -i '/ swap / s/ ^(.*)$/#1/g' /etc/fstab && sudo swapoff -a"
Langkah 4) Mulai penerapan Kubernetes
Sekarang, kita siap untuk memulai penerapan kluster Kubernetes, jalankan mengikuti playbook yang memungkinkan dari node yang memungkinkan,
$ cd kubespray $ ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml
Now pantau penerapan nt, mungkin diperlukan waktu 20 hingga 30 menit tergantung pada kecepatan internet dan sumber daya perangkat keras.
Setelah penerapan selesai, kita akan mendapatkan keluaran berikut di layar kita,
Bagus, keluaran di atas mengonfirmasi bahwa penerapan berhasil diselesaikan.
Langkah 5) Akses kluster Kubernetes
Login ke node master pertama, beralih ke pengguna root, jalankan perintah kubectl dari sana,
$ sudo su - # kubectl get nodes # kubectl get pods -A
Output,
Perfect, output di atas mengonfirmasi bahwa semua node dalam cluster dalam keadaan siap dan Pod dari semua namespace aktif dan berjalan. Ini menunjukkan bahwa klaster Kubernetes kita berhasil di-deploy.
Mari kita coba untuk men-deploy deployment berbasis nginx dan mengeksposnya sebagai nodeport, jalankan perintah kubectl berikut
$ kubectl create deployment demo-nginx-kubespray --image=nginx --replicas=2 $ kubectl expose deployment demo-nginx-kubespray --type NodePort --port=80 $ kubectl get deployments.apps $ kubectl get pods $ kubectl get svc demo-nginx-kubespray
Output dari perintah di atas,
Sekarang coba akses aplikasi nginx ini menggunakan alamat IP dan node pekerja port (30050)
Gunakan perintah curl di bawah atau browser web untuk mengakses aplikasi ini.
$ curl 192.168.1.245:30050
Or
Sempurna, ini mengonfirmasi bahwa aplikasi dapat diakses di luar cluster kami.
Langkah 6) Dasbor Kubernetes (GUI)
Untuk mengakses dasbor Kubernetes , mari kita buat akun layanan terlebih dahulu dan tetapkan hak istimewa admin agar dapat mengakses dasbor menggunakan token.
Buat akun layanan dengan nama ' admin-user' di kube-system namespace.
$ vi dashboard-adminuser.yml apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kube-system
save dan tutup file.
$ kubectl apply -f dashboard-adminuser .yml serviceaccount/admin-user membuat $
Buat pengikatan peran kluster,
$ vi admin-role-binding.yml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subject: - kind: ServiceAccount name: admin-user namespace: kube-system
save dan keluar dari file.
$ kubectl apply -f admin-role-binding.yml clusterrolebinding .rbac.authorization.k8s.io/admin-user membuat $
Sekarang, buat token untuk admin-user,
$ kubectl -n kube-system buat token admin-user
Salin token ini dan letakkan di tempat yang aman karena kita akan menggunakan token untuk login Kubernetes dashboard.
Hubungkan ke node master pertama dari sistem Anda menggunakan perintah ssh berikut
$ ssh -L8001:localhost:8001 [email protected]
Catatan : Ganti alamat IP yang sesuai dengan env.
AndaSetelah masuk, alihkan ke pengguna root dan jalankan perintah 'kubectl proxy',
$ sudo su - # kubectl proxy Mulai melayani pada 127.0.0.1:8001
Buka browser web sistem Anda, atur pengaturan proxy seperti yang ditunjukkan di bawah ini,
Setelah Anda selesai dengan pengaturan proxy, rekatkan url berikut di browser,
http://localhost:8001/ api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#/logi
Pilih mekanisme login sebagai Token dan tempel token yang telah Anda buat di atas untuk admin-pengguna lalu klik 'Masuk'
Sekian dari panduan ini, saya harap Anda menganggapnya informatif. Mohon kirimkan pertanyaan dan umpan balik Anda di bagian komentar di bawah.