Blog ENI : Toute la veille numérique !
🎁 Jusqu'au 31/12, recevez notre
offre d'abonnement à la Bibliothèque Numérique. Cliquez ici
🎁 Jusqu'au 31/12, recevez notre
offre d'abonnement à la Bibliothèque Numérique. Cliquez ici
  1. Livres et vidéos
  2. Kubernetes
  3. Installation de Kubernetes en interne
Extrait - Kubernetes Gérez la plateforme de déploiement de vos applications conteneurisées (3e édition)
Extraits du livre
Kubernetes Gérez la plateforme de déploiement de vos applications conteneurisées (3e édition) Revenir à la page d'achat du livre

Installation de Kubernetes en interne

Objectifs du chapitre et prérequis

L’installation de Kubernetes par soi-même réclame un certain investissement lié aux points suivants :

  • complexité intrinsèque du produit ;

  • connaissances système préalables nécessaires (DNS, stockage, système, etc.).

Pour la suite, l’installation se fera à l’aide de Kubespray (basé sur Ansible) afin de masquer une grande partie des aspects bas niveau suivants :

  • paquets et services système ;

  • configuration des briques du cluster.

Toutefois, le lecteur devra disposer au préalable de connaissances minimales sur l’administration système et notamment la communication avec des machines via le protocole SSH.

Installation à l’aide de Kubespray

1. Origine du besoin

L’installation de Kubernetes demande du temps et des connaissances relativement poussés sur différents produits : Etcd, Docker, Kubernetes en lui-même, etc.

L’utilisation d’un cluster Kubernetes géré à l’aide d’un service managé permet de répondre rapidement à une demande d’installation. Toutefois, pour différentes raisons, il n’est pas toujours possible de passer par un cloud (sécurité, politique interne, etc.). Dans ce cas, il est nécessaire de revenir à des solutions plus traditionnelles.

2. Pourquoi Kubespray ?

Kubernetes peut s’installer entièrement à la main (méthode de Kelsey Hightower) ou en s’aidant d’outils comme Kubeadm.

Cette démarche aura le mérite de très bien comprendre tous les éléments du cluster. En revanche, dans le cas où l’installation devrait se faire en moins d’une semaine, cette méthode ne sera pas forcément la plus adaptée.

3. Principe de Kubespray

Kubespray n’est pas une solution clés en main comparé à des outils comme Kops. Il s’agit plutôt d’un recueil de procédures permettant d’installer un cluster Kubernetes.

L’ordonnancement de l’installation se fait à l’aide d’Ansible et de procédures prenant la forme de playbooks.

En revanche, en cas d’utilisation du cluster dans un cloud, faites plutôt appel aux services managés disponibles (décrits dans le chapitre précédent).

4. Prérequis des machines à administrer avec Ansible

a. Échange de clés SSH

Pour fonctionner, Ansible s’appuie sur le protocole SSH. L’échange de clés SSH avec les machines à administrer est donc un prérequis.

 Pour vérifier la communication entre le poste courant et la machine distante, faites appel à la commande ssh suivie du nom de la machine préfixé par le compte sur lequel a été fait l’échange de clés.

La vérification de la communication entre la machine node1 en tant qu’utilisateur admin se fera de la manière suivante :

$ ssh admin@node1...

Environnement embarqué avec k3s

1. Présentation et but du projet

Le projet k3s est un projet initié par la société Rancher Labs. Il a pour vocation de faire fonctionner Kubernetes dans des environnements contraints en mémoire et CPU (pour de l’IOT, par exemple). Il permet ainsi de disposer des capacités de Kubernetes dans de l’informatique embarquée.

Il peut également s’agir d’une alternative à Minikube pour mettre en place un cluster Kubernetes de test sur un poste local. Attention toutefois aux limitations introduites par son utilisation.

Afin de réduire au maximum l’empreinte système, certains éléments ont été supprimés afin de ne conserver que le minimum :

  • suppression des fonctions alpha, bêta ou dépréciées de Kubernetes ;

  • suppression des pilotes de stockage ou cloud embarqués dans le code ;

  • utilisation de sqlite à la place d’etcd ;

  • un seul binaire pour tout gérer ;

  • peu/pas de dépendances au niveau OS.

La plupart des utilisateurs ne devraient pas constater de différence avec un cluster normal. Certains éléments peuvent être éventuellement réactivés à l’aide d’extensions.

La page d’accueil du projet est consultable à l’adresse suivante : https://k3s.io/

À noter qu’en plus de k3s, il existe un autre projet relativement similaire : le projet k3d. Le but de ce dernier est d’installer Kubernetes à l’aide de conteneurs Docker. L’avantage est qu’ainsi la machine de l’utilisateur est moins impactée.

2. Installation de k3s

Il est possible de lancer l’installation de k3s à l’aide de l’instruction suivante :

$ curl -sfL https://get.k3s.io | sh - 

Le script renvoie alors les messages suivants :

[sudo] Mot de passe de yannig :  
[INFO]  Finding release for channel stable 
[INFO]  Using v1.30.4+k3s1 as release 
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/
download/v1.30.4+k3s1/sha256sum-amd64.txt 
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/...