Installer Kubernetes avec Kubespray

Instructions étape par étape

Sommaire

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.

les ouvriers pulvérisent le cube dans l’ancien bâtiment d’usine

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épertoire inventory/mycluster/artifacts. Ce fichier est nécessaire pour interagir avec votre cluster Kubernetes à l’aide de kubectl.
    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.

Liens utiles