Installa Kubernetes con kubespray
Istruzioni passo per passo
Howto: installare Kubernetes utilizzando Kubespray, inclusi l’impostazione dell’ambiente, la configurazione dell’inventario e l’esecuzione dei playbook Ansible.
Prerequisiti
Requisiti hardware e software
- Assicurati di disporre di più macchine (almeno 3 nodi: 1 master e 2 worker) con le seguenti specifiche:
- Installato Ubuntu 16.04/18.04 o CentOS 7.
- Almeno 2 GB di RAM per macchina (si consiglia una quantità maggiore per cluster più grandi).
- Connessione di rete e accesso SSH dalla macchina di controllo Kubespray a ciascun nodo.
- Per la disponibilità elevata, considera nodi con 16 GB di RAM, 100 GB di disco e 6 core CPU.
Configurazione della macchina di controllo
-
Installa Git se non è già presente:
sudo apt install git-all
-
Installa Python (2.7 o 3.5+) e pip:
sudo apt update sudo apt install python3 python3-pip
-
Installa Ansible e altre dipendenze. Kubespray fornisce uno script per gestire questa operazione:
git clone https://github.com/kubernetes-sigs/kubespray.git cd kubespray git checkout release-2.20 # Opzionale: checkout di una versione stabile python3 -m venv venv # Crea un ambiente virtuale Python source venv/bin/activate # Attiva l'ambiente virtuale pip install -r requirements.txt # Installa Ansible e altre dipendenze
Configura l’inventario
-
Copia l’esempio dell’inventario:
cp -r inventory/sample inventory/mycluster
-
Modifica il file
inventory/mycluster/hosts.ini
per aggiungere i tuoi nodi:[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
-
Se hai un utente diverso, sostituisci
ubuntu
con il tuo utente. -
Puoi anche utilizzare lo script
inventory_builder
per generare il file dell’inventario: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[@]}
Personalizza la configurazione
-
Personalizza le impostazioni del cluster Kubernetes nel file
inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
. Ad esempio:kube_network_plugin: flannel kubeconfig_localhost: true
-
Per la disponibilità elevata, configura un VIP e un 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 # Aggiorna con l'indirizzo VIP corretto kube_vip_interface: eno1 # Aggiorna con l'interfaccia corretta
Distribuisci il cluster
- Esegui il playbook Ansible per distribuire Kubernetes:
ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml -b -v --become --become-user=root --private-key=~/.ssh/private_key
Post-distribuzione
- Una volta completata la distribuzione, troverai un file
kubeconfig
nella directoryinventory/mycluster/artifacts
. Questo file è necessario per interagire con il tuo cluster Kubernetes utilizzandokubectl
.export KUBECONFIG=inventory/mycluster/artifacts/admin.conf kubectl get nodes
Risoluzione dei problemi e accesso
- Per risolvere problemi o accedere al cluster, assicurati di avere il binario
kubectl
installato sulla tua macchina di controllo o su qualsiasi altra macchina da cui pianifichi di gestire il cluster. - Se incontri problemi come nodi worker non pronti o problemi di pianificazione dei pod, controlla i log e modifica le configurazioni necessarie.