Installera Kubernetes med kubespray

Steg-för-steg-instruktioner

Sidinnehåll

Hur man installerar Kubernetes med Kubespray, inklusive att konfigurera miljön, ställa in inventeringen och köra Ansible-playböcker.

Arbetare sprayar kuben i den gamla fabriksbyggnaden

Förutsättningar

Hårdvara och programvarukrav

  • Se till att du har flera maskiner (minst 3 noder: 1 master och 2 arbetare) med följande specifikationer:
    • Ubuntu 16.04/18.04 eller CentOS 7 installerat.
    • Minst 2 GB RAM per maskin (mer RAM rekommenderas för större kluster).
    • Nätverksanslutning och SSH-åtkomst från Kubespray-kontrollmaskinen till varje nod.
    • För hög tillgänglighet, överväg noder med 16 GB RAM, 100 GB disk och 6 CPU-kärnor.

Kontrollmaskinsinställning

  • Installera Git om det inte redan finns:

    sudo apt install git-all
    
  • Installera Python (2.7 eller 3.5+) och pip:

    sudo apt update
    sudo apt install python3 python3-pip
    
  • Installera Ansible och andra beroenden. Kubespray erbjuder ett skript för att hantera detta:

    git clone https://github.com/kubernetes-sigs/kubespray.git
    cd kubespray
    git checkout release-2.20  # Valfritt: Checka ut en stabil version
    python3 -m venv venv  # Skapa en Python-virtual miljö
    source venv/bin/activate  # Aktivera den virtuella miljön
    pip install -r requirements.txt  # Installera Ansible och andra beroenden
    

Konfigurera inventeringen

  • Kopiera exempelinventeringen:

    cp -r inventory/sample inventory/mycluster
    
  • Redigera filen inventory/mycluster/hosts.ini för att lägga till dina noder:

    [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
    
  • Om du har en annan användare, ersätt ubuntu med din användare.

  • Du kan också använda inventory_builder-skriptet för att generera inventeringsfilen:

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

Anpassa konfigurationen

  • Anpassa Kubernetes-klusterinställningarna i filen inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml. Till exempel:

    kube_network_plugin: flannel
    kubeconfig_localhost: true
    
  • För hög tillgänglighet, konfigurera en VIP och lastbalanserare:

    # I 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  # Uppdatera med rätt VIP
    kube_vip_interface: eno1  # Uppdatera med rätt gränssnitt
    

Distribuera klustret

  • Kör Ansible-playboken för att distribuera Kubernetes:
    ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml -b -v --become --become-user=root --private-key=~/.ssh/private_key
    

Efter distribution

  • När distributionen är klar hittar du en kubeconfig-fil i katalogen inventory/mycluster/artifacts. Denna fil är nödvändig för att interagera med ditt Kubernetes-kluster med kubectl.
    export KUBECONFIG=inventory/mycluster/artifacts/admin.conf
    kubectl get nodes
    

Felsökning och åtkomst

  • För att felsöka eller komma åt ditt kluster, se till att du har kubectl-binären installerad på din kontrollmaskin eller någon maskin där du planerar att hantera klustret från.
  • Om du stöter på problem som att arbetarnoder inte är redo eller andra pod-schemaläggningsproblem, kontrollera loggarna och justera konfigurationerna vid behov.

Användbara länkar