title | content_template |
---|---|
Installer Kubernetes avec Kubespray (on-premises et fournisseurs de cloud) |
templates/concept |
{{% capture overview %}}
Cette documentation permet d'installer rapidement un cluster Kubernetes hébergé sur GCE, Azure, Openstack, AWS, vSphere, Oracle Cloud Infrastructure (expérimental) ou sur des serveurs physiques (bare metal) grâce à Kubespray.
Kubespray se base sur des outils de provisioning, des paramètres et playbooks Ansible ainsi que sur des connaissances spécifiques à Kubernetes et l'installation de systèmes d'exploitation afin de fournir:
- Un cluster en haute disponibilité
- des composants modulables
- Le support des principales distributions Linux:
- Container Linux de CoreOS
- Debian Jessie, Stretch, Wheezy
- Ubuntu 16.04, 18.04
- CentOS/RHEL 7
- Fedora/CentOS Atomic
- openSUSE Leap 42.3/Tumbleweed
- des tests d'intégration continue
Afin de choisir l'outil le mieux adapté à votre besoin, veuillez lire cette comparaison avec kubeadm et kops.
{{% /capture %}}
{{% capture body %}}
Les serveurs doivent être installés en s'assurant des éléments suivants:
- Ansible v2.6 (ou version plus récente) et python-netaddr installés sur la machine qui exécutera les commandes Ansible
- Jinja 2.9 (ou version plus récente) est nécessaire pour exécuter les playbooks Ansible
- Les serveurs cibles doivent avoir accès à Internet afin de télécharger les images Docker. Autrement, une configuration supplémentaire est nécessaire, (se référer à Offline Environment)
- Les serveurs cibles doivent être configurés afin d'autoriser le transfert IPv4 (IPv4 forwarding)
- Votre clé ssh doit être copiée sur tous les serveurs faisant partie de votre inventaire Ansible.
- La configuration du pare-feu n'est pas gérée. Vous devrez vous en charger en utilisant votre méthode habituelle. Afin d'éviter tout problème pendant l'installation nous vous conseillons de le désacttiver.
- Si Kubespray est exécuté avec un utilisateur autre que "root", une méthode d'autorisation appropriée devra être configurée sur les serveurs cibles (exemple: sudo). Il faudra aussi utiliser le paramètre
ansible_become
ou ajouter--become
oub
à la ligne de commande.
Afin de vous aider à préparer votre de votre environnement, Kubespray fournit les outils suivants:
Lorsque vos serveurs sont disponibles, créez un fichier d'inventaire Ansible (inventory). Vous pouvez le créer manuellement ou en utilisant un script d'inventaire dynamique. Pour plus d'informations se référer à Building your own inventory.
Kubespray permet de personnaliser de nombreux éléments:
- Choix du mode: kubeadm ou non-kubeadm
- Plugins CNI (réseau)
- Configuration du DNS
- Choix du control plane: natif/binaire ou dans un conteneur docker/rkt
- Version de chaque composant
- "route reflectors" Calico
- Moteur de conteneur
- docker
- rkt
- cri-o
- Méthode de génération des certificats (Vault n'étant plus maintenu)
Ces paramètres Kubespray peuvent être définis dans un fichier de variables. Si vous venez juste de commencer à utiliser Kubespray nous vous recommandons d'utiliser les paramètres par défaut pour déployer votre cluster et découvrir Kubernetes
Vous pouvez ensuite lancer le déploiement de votre cluster:
Déploiement du cluster en utilisant l'outil en ligne de commande ansible-playbook.
ansible-playbook -i your/inventory/hosts.ini cluster.yml -b -v \
--private-key=~/.ssh/private_key
Pour des déploiements plus importants (>100 noeuds) quelques ajustements peuvent être nécessaires afin d'obtenir de meilleurs résultats.
Kubespray fournit le moyen de vérifier la connectivité inter-pods ainsi que la résolution DNS grâce à Netchecker. Les pods netchecker-agents s'assurent que la résolution DNS (services Kubernetes) ainsi que le ping entre les pods fonctionnent correctement. Ces pods reproduisent un comportement similaire à celui des autres applications et offrent un indicateur de santé du cluster.
Kubespray fournit des playbooks supplémentaires qui permettent de gérer votre cluster: scale et upgrade.
Vous pouvez ajouter des noeuds à votre cluter en exécutant le playbook scale
. Pour plus d'informations se référer à Adding nodes.
vous pouvez retirer des noeuds de votre cluster en exécutant le playbook remove-node
. Se référer à Remove nodes.
Vous pouvez mettre à jour votre cluster en exécutant le playbook upgrade-cluster
. Pour plus d'informations se référer à Upgrades.
Vous pouvez réinitialiser vos noeuds et supprimer tous les composants installés par Kubespray en utilisant le playbook reset.
{{< caution >}}
Quand vous utilisez le playbook reset
, assurez-vous de ne pas cibler accidentellement un cluster de production !
{{< /caution >}}
- Channel Slack: #kubespray
- Issues GitHub
{{% /capture %}}
{{% capture whatsnext %}}
Jetez un oeil aux travaux prévus sur Kubespray: roadmap.
{{% /capture %}}