Chapitre 1. Aperçu de la gestion des machines

Vous pouvez utiliser la gestion des machines pour travailler de manière flexible avec l'infrastructure sous-jacente telle que Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Red Hat OpenStack Platform (RHOSP), Red Hat Virtualization (RHV) et VMware vSphere pour gérer le cluster OpenShift Container Platform. Vous pouvez contrôler le cluster et effectuer une mise à l'échelle automatique, telle que la mise à l'échelle vers le haut et vers le bas du cluster en fonction de politiques de charge de travail spécifiques.

Il est important d'avoir un cluster qui s'adapte à l'évolution des charges de travail. Le cluster OpenShift Container Platform peut évoluer horizontalement vers le haut ou vers le bas lorsque la charge augmente ou diminue.

La gestion des machines est mise en œuvre sous la forme d'une définition de ressource personnalisée (CRD). Un objet CRD définit un nouvel objet unique Kind dans le cluster et permet au serveur API Kubernetes de gérer l'ensemble du cycle de vie de l'objet.

L'opérateur API Machine provisionne les ressources suivantes :

  • MachineSet
  • Machine
  • ClusterAutoscaler
  • MachineAutoscaler
  • MachineHealthCheck

1.1. Vue d'ensemble de l'API Machine

L'API Machine est une combinaison de ressources primaires basées sur le projet Cluster API en amont et de ressources OpenShift Container Platform personnalisées.

Pour les clusters OpenShift Container Platform 4.12, l'API Machine effectue toutes les actions de gestion du provisionnement de l'hôte du nœud une fois l'installation du cluster terminée. Grâce à ce système, OpenShift Container Platform 4.12 offre une méthode de provisionnement élastique et dynamique au-dessus d'une infrastructure de cloud public ou privé.

Les deux principales ressources sont les suivantes

Machines
Unité fondamentale décrivant l'hôte d'un nœud. Une machine possède une spécification providerSpec, qui décrit les types de nœuds de calcul proposés par les différentes plateformes de cloud computing. Par exemple, un type de machine pour un nœud de travail sur Amazon Web Services (AWS) peut définir un type de machine spécifique et les métadonnées requises.
Jeux de machines

MachineSet les ressources sont des groupes de machines de calcul. Les ensembles de machines de calcul sont aux machines de calcul ce que les ensembles de répliques sont aux pods. Si vous avez besoin de plus de machines de calcul ou si vous devez les réduire, vous modifiez le champ replicas de la ressource MachineSet pour répondre à vos besoins en matière de calcul.

Avertissement

Les machines du plan de contrôle ne peuvent pas être gérées par des ensembles de machines de calcul.

Les ensembles de machines du plan de contrôle fournissent des capacités de gestion pour les machines du plan de contrôle prises en charge qui sont similaires à celles que les ensembles de machines de calcul fournissent pour les machines de calcul.

Pour plus d'informations, voir "Gestion des machines du plan de contrôle".

Les ressources personnalisées suivantes ajoutent des capacités supplémentaires à votre cluster :

Machine autoscaler

La ressource MachineAutoscaler met automatiquement à l'échelle les machines de calcul dans un nuage. Vous pouvez définir les limites minimales et maximales de mise à l'échelle pour les nœuds d'un ensemble de machines de calcul spécifié, et l'autoscaler de machines maintient cette plage de nœuds.

L'objet MachineAutoscaler prend effet après l'existence d'un objet ClusterAutoscaler. Les ressources ClusterAutoscaler et MachineAutoscaler sont mises à disposition par l'objet ClusterAutoscalerOperator.

Cluster autoscaler

Cette ressource est basée sur le projet de cluster autoscaler en amont. Dans l'implémentation d'OpenShift Container Platform, elle est intégrée à l'API Machine en étendant l'API compute machine set. Vous pouvez utiliser le cluster autoscaler pour gérer votre cluster de la manière suivante :

  • Définir des limites d'échelle à l'échelle du cluster pour les ressources telles que les cœurs, les nœuds, la mémoire et les GPU
  • Définir la priorité afin que le cluster donne la priorité aux pods et que de nouveaux nœuds ne soient pas mis en ligne pour des pods moins importants
  • Définir la politique de mise à l'échelle de manière à pouvoir augmenter les nœuds mais pas les diminuer
Bilan de santé de la machine
La ressource MachineHealthCheck détecte lorsqu'une machine n'est pas saine, la supprime et, sur les plates-formes prises en charge, crée une nouvelle machine.

Dans OpenShift Container Platform version 3.11, il n'était pas possible de déployer facilement une architecture multizone car le cluster ne gérait pas le provisionnement des machines. À partir de la version 4.1 d'OpenShift Container Platform, ce processus est plus facile. Chaque ensemble de machines de calcul est limité à une seule zone, de sorte que le programme d'installation envoie des ensembles de machines de calcul à travers les zones de disponibilité en votre nom. Ainsi, comme votre calcul est dynamique, et en cas de défaillance d'une zone, vous disposez toujours d'une zone pour rééquilibrer vos machines. Dans les régions Azure globales qui ne disposent pas de plusieurs zones de disponibilité, vous pouvez utiliser des ensembles de machines pour garantir une haute disponibilité. L'autoscaler assure l'équilibrage du meilleur effort pendant toute la durée de vie d'un cluster.