Installeer Kubernetes met kubespray
Stap-voor-stap-instructies
Howto: installeren van Kubernetes met Kubespray, inclusief het instellen van de omgeving, het configureren van de inventory en het uitvoeren van de Ansible playbooks.
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 mapinventory/mycluster/artifacts
. Dit bestand is nodig om met uw Kubernetes-cluster te communiceren viakubectl
.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.