Clusters Kubernetes : explication et création
Kubernetes est un système populaire de gestion des conteneurs. L’une des unités les plus importantes de l’ensemble du système Kubernetes est constituée par ce que l’on appelle les clusters. Ils interviennent à chaque utilisation de Kubernetes.
Managed Kubernetes est la plateforme idéale pour des applications de conteneurs performantes et hautement évolutives.
Qu’est-ce qu’un cluster Kubernetes ?
Les clusters sont généralement une association d’ordinateurs qui, de l’extérieur, semble fermée sur elle-même. Dans le cas de Kubernetes, plusieurs nœuds sont regroupés en clusters au lieu d’ordinateurs physiques. Les nœuds, également appelés nodes, sont des machines virtuelles ou physiques.
Les différentes applications sont exécutées sur les clusters Kubernetes. Les clusters Kubernetes sont donc le niveau le plus élevé de la hiérarchie Kubernetes.
Domaines d’application des clusters Kubernetes
Les clusters sont un élément important pour pouvoir profiter des avantages de Kubernetes. Seuls les clusters vous permettent de mettre en place vos applications sans les lier à des machines concrètes. Ils servent donc avant tout à exécuter sur plusieurs machines les conteneurs en faisant des abstractions. Les conteneurs ne sont pas liés à un système d’exploitation particulier et sont donc extrêmement flexibles.
Les clusters ne sont pas seulement parfaits pour le déploiement de l’ensemble de vos applications, mais aussi pour l’utilisation de microservices. Les applications ainsi déployées peuvent communiquer entre elles grâce à Kubernetes. Cette méthode de déploiement garantit une grande évolutivité, ce qui à tout moment vous permet d’adapter l’utilisation de vos ressources.
Les clusters peuvent également être utilisés pour exécuter des tâches d’intégration continue ou de livraison continue.
Avec Managed Kubernetes de IONOS, vous obtenez un cluster Kubernetes parfaitement intégré à l’écosystème IONOS.
De quoi se compose un cluster Kubernetes ?
Un cluster Kubernetes se compose d’une unité de contrôle, également appelée « nœud maître », et d’un ou plusieurs nœuds de travail.
Nœud maître
Le nœud maître constitue la base de l’ensemble du cluster. Il est responsable de la gestion de l’ensemble du cluster. Ce faisant, il s’occupe en grande partie de l’état du cluster, en déterminant par exemple quelle application doit être exécutée et à quel moment. L’unité de contrôle se divise à son tour en différents composants :
- Serveur API Kube
- Ordonnanceur
- Contrôleur
- etcd
Serveur API Kube
Le serveur API est en quelque sorte le frontend du nœud maître et coordonne la communication avec le cluster Kubernetes. L’état du cluster est par exemple défini via l’interface. Une interaction avec l’API Kubernetes est possible soit via la ligne de commande, soit via l’interface utilisateur dans la Google Cloud Console.
Ordonnanceur
L’ordonnanceur s’occupe de la répartition des conteneurs en fonction des ressources disponibles. Ce planificateur s’assure que tous les pods (groupes de conteneurs) sont affectés à un nœud et peuvent donc être exécutés.
Contrôleur
Le gestionnaire de contrôleur permet de coordonner les différents contrôleurs, qui ne sont en fait rien d’autre que des processus. Cela permet notamment de garantir une réaction adéquate en cas de panne de certains nœuds. Plus généralement, le gestionnaire de contrôleur s’occupe d’adapter à tout moment l’état actuel d’un cluster à l’état souhaité.
etcd
etcd est un composant de l’unité de contrôle qui stocke toutes les données importantes du cluster. Ainsi, etcd peut être considéré comme une mémoire de sauvegarde pour Kubernetes.
Nœuds de travail
Chaque cluster possède au moins un, mais dans la plupart des cas, plusieurs nœuds de travail. Ceux-ci exécutent les tâches et les applications qui leur sont attribuées par l’unité de contrôle. Les nœuds de travail comprennent deux composants :
- Kubelet
- Proxy Kube
Kubelet
Kubelet est un composant des nœuds de travail qui garantit que chaque conteneur est exécuté dans un pod. Pour ce faire, Kubelet interagit avec le moteur Docker, un programme de création et de gestion de conteneurs.
Proxy Kube
Le proxy Kube permet de garantir le respect des règles de réseau. De plus, ce composant est chargé d’effectuer un transfert de connexion.
Création de clusters Kubernetes
Un cluster Kubernetes peut être déployé soit sur des ordinateurs virtuels, soit sur des ordinateurs physiques. Pour créer ses propres clusters, il existe différentes possibilités.
Pour comprendre comment installer Kubernetes et travailler avec des clusters dans Kubernetes, lisez les informations détaillées de notre tutoriel Kubernetes.
Minikube
Pour créer un cluster simple avec un nœud de travail, on peut utiliser Minikube. Il s’agit d’un outil permettant d’exécuter Kubernetes localement sur son propre ordinateur. Il peut être installé sur tous les systèmes d’exploitation courants. Pour vérifier si votre installation de Minikube a réussi, vous pouvez entrer la commande suivante dans le terminal :
minikube version
Utilisez l’instruction suivante pour démarrer Minikube :
minikube start
Après avoir exécuté cette commande, Minikube démarre une machine virtuelle. Un cluster s’exécute automatiquement dans celle-ci. Pour interagir avec Kubernetes, vous pouvez utiliser la ligne de commande Kubernetes. Pour savoir si celle-ci est installée, utilisez la commande de terminal suivante :
kubectl version
Vous pouvez consulter les détails de votre cluster avec :
kubectl cluster-info
Vous pouvez également voir les différents nœuds sur lesquels vos applications peuvent fonctionner directement dans le terminal :
kubectl get nodes
Kind
Si vous souhaitez créer un cluster Kubernetes avec plus d’un nœud, vous pouvez utiliser l’outil kind. Kind est également disponible pour tous les systèmes d’exploitation courants. L’installation se fait simplement à l’aide du gestionnaire de paquets. Dans les exemples présentés ici, le logiciel Windows Chocolatey est utilisé :
choco install kind
Pour un cluster avec plusieurs nœuds de travail, créez maintenant un fichier de configuration yaml dans un répertoire quelconque. Dans ce fichier, vous définissez la structure de votre cluster. Un fichier de configuration pour un cluster Kubernetes avec un nœud maître et deux nœuds de travail peut par exemple ressembler à ceci :
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
Vous pouvez ensuite créer un cluster Kubernetes selon la configuration que vous avez choisie en utilisant la commande suivante :
kind create cluster --config fichier.yaml