Zainstaluj Kubernetes za pomocą kubespray
Instrukcje krok po kroku
Page content
Howto: instalacja Kubernetes za pomocą Kubespray, w tym konfiguracja środowiska, ustawienie inwentarza i uruchomienie playbooków Ansible.
Wymagania wstępne
Wymagania sprzętowe i oprogramowania
- Upewnij się, że masz wiele maszyn (co najmniej 3 węzły: 1 główny i 2 pracownie) z poniższymi specyfikacjami:
- Zainstalowany Ubuntu 16.04/18.04 lub CentOS 7.
- Co najmniej 2 GB pamięci RAM na maszynę (rekomendowane więcej RAM dla większych klastrów).
- Połączenie sieciowe i dostęp SSH z maszyny kontrolnej Kubespray do każdego węzła.
- Dla wysokiej dostępności rozważ węzły z 16 GB RAM, 100 GB dysku i 6 rdzeni CPU.
Konfiguracja maszyny kontrolnej
-
Zainstaluj Git, jeśli jeszcze nie jest obecny:
sudo apt install git-all
-
Zainstaluj Python (2.7 lub 3.5+) i pip:
sudo apt update sudo apt install python3 python3-pip
-
Zainstaluj Ansible i inne zależności. Kubespray dostarcza skrypt do obsługi tego:
git clone https://github.com/kubernetes-sigs/kubespray.git cd kubespray git checkout release-2.20 # Opcjonalnie: pobierz stabilną wersję python3 -m venv venv # Utwórz środowisko wirtualne Pythona source venv/bin/activate # Aktywuj środowisko wirtualne pip install -r requirements.txt # Zainstaluj Ansible i inne zależności
Konfiguracja inwentarza
-
Skopiuj przykład inwentarza:
cp -r inventory/sample inventory/mycluster
-
Edytuj plik
inventory/mycluster/hosts.ini
, aby dodać swoje węzły:[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
-
Jeśli masz innego użytkownika, zamień
ubuntu
na swojego użytkownika. -
Możesz również użyć skryptu
inventory_builder
, aby wygenerować plik inwentarza: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[@]}
Dostosowanie konfiguracji
-
Dostosuj ustawienia klastra Kubernetes w pliku
inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
. Na przykład:kube_network_plugin: flannel kubeconfig_localhost: true
-
Dla wysokiej dostępności skonfiguruj VIP i load balancer:
# W pliku 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 # Zaktualizuj na poprawny VIP kube_vip_interface: eno1 # Zaktualizuj na poprawny interfejs
Wdrożenie klastra
- Uruchom playbook Ansible, aby wdrożyć Kubernetes:
ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml -b -v --become --become-user=root --private-key=~/.ssh/private_key
Po wdrożeniu
- Po zakończeniu wdrożenia znajdziesz plik
kubeconfig
w kataloguinventory/mycluster/artifacts
. Ten plik jest konieczny do interakcji z Twoim klastrem Kubernetes za pomocąkubectl
.export KUBECONFIG=inventory/mycluster/artifacts/admin.conf kubectl get nodes
Rozwiązywanie problemów i dostęp
- Aby rozwiązywać problemy lub uzyskać dostęp do klastra, upewnij się, że masz zainstalowany binarny plik
kubectl
na swojej maszynie kontrolnej lub na dowolnej maszynie, z której planujesz zarządzać klastrem. - Jeśli napotkasz problemy, takie jak brak gotowości węzłów pracowniowych lub inne problemy z planowaniem kontenerów, sprawdź logi i dostosuj konfiguracje w razie potrzeby.