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.

pracownicy rozpylają sześcian w starym budynku fabryki

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 katalogu inventory/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.

Przydatne linki