Installeer Kubernetes met kubespray

Stap-voor-stap-instructies

Inhoud

Howto: installeren van Kubernetes met Kubespray, inclusief het instellen van de omgeving, het configureren van de inventory en het uitvoeren van de Ansible playbooks.

werknemers spuiten het kubus in het oude fabrieksgebouw

Voorwaarden

Hardware- en Softwarevereisten

  • Zorg ervoor dat u meerdere machines heeft (minimaal 3 knooppunten: 1 master en 2 workers) met de volgende specificaties:
    • Ubuntu 16.04/18.04 of CentOS 7 geïnstalleerd.
    • Minimaal 2 GB RAM per machine (meer RAM wordt aangeraden voor grotere clusters).
    • Netwerkverbinding en SSH-toegang vanaf de Kubespray-controlemachine naar elk knooppunt.
    • Voor hoge beschikbaarheid, overweeg knooppunten met 16 GB RAM, 100 GB schijf en 6 CPU-kernen.

Instelling van de controlemachine

  • Installeer Git als deze nog niet is geïnstalleerd:

    sudo apt install git-all
    
  • Installeer Python (2.7 of 3.5+) en pip:

    sudo apt update
    sudo apt install python3 python3-pip
    
  • Installeer Ansible en andere afhankelijkheden. Kubespray biedt een script om dit te doen:

    git clone https://github.com/kubernetes-sigs/kubespray.git
    cd kubespray
    git checkout release-2.20  # Optioneel: een stabiele release uitchecken
    python3 -m venv venv  # Een Python virtuele omgeving aanmaken
    source venv/bin/activate  # De virtuele omgeving activeren
    pip install -r requirements.txt  # Ansible en andere afhankelijkheden installeren
    

De inventory configureren

  • Kopieer het voorbeeld van de inventory:

    cp -r inventory/sample inventory/mycluster
    
  • Bewerk het bestand inventory/mycluster/hosts.ini om uw knooppunten toe te voegen:

    [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
    
  • Als u een andere gebruiker heeft, vervang ubuntu met uw gebruikersnaam.

  • U kunt ook het script inventory_builder gebruiken om het inventorybestand te genereren:

    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[@]}
    

Configuratie aanpassen

  • Pas de Kubernetes-clusterinstellingen aan in het bestand inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml. Bijvoorbeeld:

    kube_network_plugin: flannel
    kubeconfig_localhost: true
    
  • Voor hoge beschikbaarheid, configureer een VIP en een load balancer:

    # In 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  # Vervang met de juiste VIP
    kube_vip_interface: eno1  # Vervang met de juiste interface
    

Cluster implementeren

  • Voer de Ansible-playbook uit om Kubernetes te implementeren:
    ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml -b -v --become --become-user=root --private-key=~/.ssh/private_key
    

Na-implementatie

  • Zodra de implementatie is voltooid, vindt u een kubeconfig-bestand in de map inventory/mycluster/artifacts. Dit bestand is nodig om met uw Kubernetes-cluster te communiceren via kubectl.
    export KUBECONFIG=inventory/mycluster/artifacts/admin.conf
    kubectl get nodes
    

Probleemoplossing en toegang

  • Om problemen op te lossen of toegang te krijgen tot uw cluster, zorg ervoor dat u het kubectl-bestand hebt geïnstalleerd op uw controlemachine of op elk ander apparaat waarvan u het cluster wilt beheren.
  • Als u problemen tegenkomt zoals dat werknemersknooppunten niet gereed zijn of andere pod-schedulingsproblemen, controleer dan de logboeken en pas de configuraties zo nodig aan.