Installer Kubernetes avec Kubespray
Instructions étape par étape
Comment installer Kubernetes avec Kubespray : installer Kubernetes avec Kubespray, y compris la configuration de l’environnement, la configuration de l’inventaire et l’exécution des playbooks Ansible.
Prérequis
Exigences matérielles et logicielles
- Assurez-vous d’avoir plusieurs machines (au moins 3 nœuds : 1 maître et 2 travailleurs) avec les spécifications suivantes :
- Ubuntu 16.04/18.04 ou CentOS 7 installé.
- Au moins 2 Go de RAM par machine (plus de RAM est recommandé pour les clusters plus importants).
- Une connectivité réseau et un accès SSH depuis la machine de contrôle Kubespray vers chaque nœud.
- Pour la haute disponibilité, envisagez des nœuds avec 16 Go de RAM, 100 Go de disque et 6 cœurs de processeur.
Configuration de la machine de contrôle
-
Installez Git si ce n’est pas déjà fait :
sudo apt install git-all
-
Installez Python (2.7 ou 3.5+) et pip :
sudo apt update sudo apt install python3 python3-pip
-
Installez Ansible et autres dépendances. Kubespray fournit un script pour gérer cela :
git clone https://github.com/kubernetes-sigs/kubespray.git cd kubespray git checkout release-2.20 # Optionnel : passer à une version stable python3 -m venv venv # Créer un environnement virtuel Python source venv/bin/activate # Activer l'environnement virtuel pip install -r requirements.txt # Installer Ansible et autres dépendances
Configurer l’inventaire
-
Copiez l’exemple d’inventaire :
cp -r inventory/sample inventory/mycluster
-
Éditez le fichier
inventory/mycluster/hosts.ini
pour ajouter vos nœuds :[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
-
Si vous utilisez un autre utilisateur, remplacez
ubuntu
par votre utilisateur. -
Vous pouvez également utiliser le script
inventory_builder
pour générer le fichier d’inventaire :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[@]}
Personnaliser la configuration
-
Personnalisez les paramètres du cluster Kubernetes dans le fichier
inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
. Par exemple :kube_network_plugin: flannel kubeconfig_localhost: true
-
Pour la haute disponibilité, configurez un VIP et un équilibreur de charge :
# Dans 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 # Mettez à jour avec l'adresse VIP correcte kube_vip_interface: eno1 # Mettez à jour avec l'interface correcte
Déployer le cluster
- Exécutez le playbook Ansible pour déployer Kubernetes :
ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml -b -v --become --become-user=root --private-key=~/.ssh/private_key
Après le déploiement
- Une fois le déploiement terminé, vous trouverez un fichier
kubeconfig
dans le répertoireinventory/mycluster/artifacts
. Ce fichier est nécessaire pour interagir avec votre cluster Kubernetes à l’aide dekubectl
.export KUBECONFIG=inventory/mycluster/artifacts/admin.conf kubectl get nodes
Dépannage et accès
- Pour dépanner ou accéder à votre cluster, assurez-vous que le binaire
kubectl
est installé sur votre machine de contrôle ou sur toute autre machine depuis laquelle vous prévoyez de gérer le cluster. - Si vous rencontrez des problèmes tels que des nœuds travailleurs non prêts ou d’autres problèmes de planification de pods, vérifiez les journaux et ajustez les configurations si nécessaire.