Pasang Kubernetes dengan kubespray
Instruksi langkah demi langkah
Howto: menginstal Kubernetes menggunakan Kubespray, termasuk mengatur lingkungan, mengonfigurasi inventaris, dan menjalankan playbook Ansible.
Prasyarat
Persyaratan Perangkat Keras dan Perangkat Lunak
- Pastikan Anda memiliki beberapa mesin (setidaknya 3 node: 1 master dan 2 worker) dengan spesifikasi berikut:
- Ubuntu 16.04/18.04 atau CentOS 7 terinstal.
- Setidaknya 2 GB RAM per mesin (lebih banyak RAM disarankan untuk klaster yang lebih besar).
- Koneksi jaringan dan akses SSH dari mesin kontrol Kubespray ke setiap node.
- Untuk ketersediaan tinggi, pertimbangkan node dengan 16 GB RAM, 100 GB disk, dan 6 inti CPU.
Pengaturan Mesin Kontrol
-
Instal Git jika belum terinstal:
sudo apt install git-all
-
Instal Python (2.7 atau 3.5+) dan pip:
sudo apt update sudo apt install python3 python3-pip
-
Instal Ansible dan dependensi lainnya. Kubespray menyediakan skrip untuk menangani ini:
git clone https://github.com/kubernetes-sigs/kubespray.git cd kubespray git checkout release-2.20 # Opsional: Cek out rilis stabil python3 -m venv venv # Membuat lingkungan virtual Python source venv/bin/activate # Mengaktifkan lingkungan virtual pip install -r requirements.txt # Menginstal Ansible dan dependensi lainnya
Mengonfigurasi Inventaris
-
Salin contoh inventaris:
cp -r inventory/sample inventory/mycluster
-
Edit file
inventory/mycluster/hosts.ini
untuk menambahkan node Anda:[all] node1 ansible_host=10.10.1.3 ansible_user=ubuntu node2 ansible_host=10.10.1.4 ansible_user=ubuntu node3 ansible_host=10.10.1.5 ansible_user=ubuntu [kube-master] node1 [kube-node] node2 node3
-
Jika Anda memiliki pengguna yang berbeda, ganti
ubuntu
dengan pengguna Anda. -
Anda juga dapat menggunakan skrip
inventory_builder
untuk menghasilkan file inventaris:declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5) HOST_PREFIX=dcm-cp- KUBE_CONTROL_HOSTS=3 CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
Menyesuaikan Konfigurasi
-
Sesuaikan pengaturan klaster Kubernetes di file
inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
. Contohnya:kube_network_plugin: flannel kubeconfig_localhost: true
-
Untuk ketersediaan tinggi, konfigurasikan VIP dan load balancer:
# Di inventory/mycluster/group_vars/all/all.yml kube_vip_arp_enabled: true kube_vip_enabled: true kube_vip_controlplane_enabled: true kube_vip_address: 10.7.12.250 # Perbarui dengan VIP yang benar kube_vip_interface: eno1 # Perbarui dengan antarmuka yang benar
Mendeploy Klaster
- Jalankan playbook Ansible untuk mendeploy Kubernetes:
ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml -b -v --become --become-user=root --private-key=~/.ssh/private_key
Pasca-Deploy
- Setelah deploy selesai, Anda akan menemukan file
kubeconfig
di direktoriinventory/mycluster/artifacts
. File ini diperlukan untuk berinteraksi dengan klaster Kubernetes Anda menggunakankubectl
.export KUBECONFIG=inventory/mycluster/artifacts/admin.conf kubectl get nodes
Penyelesaian Masalah dan Akses
- Untuk menyelesaikan masalah atau mengakses klaster Anda, pastikan Anda memiliki biner
kubectl
terinstal di mesin kontrol Anda atau mesin lain di mana Anda berencana mengelola klaster. - Jika Anda menghadapi masalah seperti node worker yang tidak siap atau masalah penjadwalan pod lainnya, periksa log dan sesuaikan konfigurasi sebagaimana diperlukan.