6.4. À propos de l'opérateur de configuration de la machine
OpenShift Container Platform 4.12 intègre à la fois la gestion du système d'exploitation et du cluster. Étant donné que le cluster gère ses propres mises à jour, y compris les mises à jour de Red Hat Enterprise Linux CoreOS (RHCOS) sur les nœuds du cluster, OpenShift Container Platform offre une expérience de gestion du cycle de vie basée sur l'opinion qui simplifie l'orchestration des mises à niveau des nœuds.
OpenShift Container Platform utilise trois ensembles de démons et contrôleurs pour simplifier la gestion des nœuds. Ces ensembles de démons orchestrent les mises à jour du système d'exploitation et les modifications de configuration des hôtes en utilisant des constructions standard de type Kubernetes. Il s'agit de :
-
Le site
machine-config-controller
, qui coordonne les mises à niveau des machines à partir du plan de contrôle. Il surveille tous les nœuds de la grappe et orchestre leurs mises à jour de configuration. -
L'ensemble de démons
machine-config-daemon
, qui s'exécute sur chaque nœud du cluster et met à jour la configuration d'une machine telle que définie par machine config et selon les instructions du MachineConfigController. Lorsque le nœud détecte un changement, il vide ses pods, applique la mise à jour et redémarre. Ces changements se présentent sous la forme de fichiers de configuration Ignition qui appliquent la configuration machine spécifiée et contrôlent la configuration des kubelets. La mise à jour elle-même est livrée dans un conteneur. Ce processus est la clé du succès de la gestion conjointe des mises à jour d'OpenShift Container Platform et de RHCOS. -
Le jeu de démons
machine-config-server
, qui fournit les fichiers de configuration Ignition pour contrôler les nœuds de l'avion lorsqu'ils rejoignent le cluster.
La configuration de la machine est un sous-ensemble de la configuration d'Ignition. Le site machine-config-daemon
lit la configuration de la machine pour voir s'il doit effectuer une mise à jour d'OSTree ou s'il doit appliquer une série de modifications de fichiers kubelet systemd, de modifications de configuration ou d'autres modifications du système d'exploitation ou de la configuration d'OpenShift Container Platform.
Lorsque vous effectuez des opérations de gestion de nœuds, vous créez ou modifiez une ressource personnalisée (CR) KubeletConfig
.
Lorsque des modifications sont apportées à la configuration d'une machine, le MCO (Machine Config Operator) redémarre automatiquement tous les nœuds correspondants pour que les modifications soient prises en compte.
Pour éviter que les nœuds ne redémarrent automatiquement après des modifications de la configuration de la machine, vous devez, avant d'effectuer ces modifications, interrompre le processus de redémarrage automatique en définissant le champ spec.paused
sur true
dans le pool de configuration de la machine correspondant. En cas de pause, les modifications de la configuration de la machine ne sont pas appliquées tant que vous n'avez pas défini le champ spec.paused
sur false
et que les nœuds n'ont pas redémarré dans la nouvelle configuration.
Assurez-vous que les pools ne sont pas interrompus lorsque la rotation des certificats d'AC a lieu. Si les MCP sont en pause, le MCO ne peut pas envoyer les nouveaux certificats à ces nœuds. Cela entraîne la dégradation du cluster et l'échec de plusieurs commandes oc
, notamment oc debug
, oc logs
, oc exec
et oc attach
. Vous recevez des alertes dans l'interface utilisateur d'alerte de la console Web d'OpenShift Container Platform si un MCP est mis en pause lors de la rotation des certificats.
Les modifications suivantes ne déclenchent pas de redémarrage du nœud :
Lorsque le MCO détecte l'un des changements suivants, il applique la mise à jour sans vidanger ou redémarrer le nœud :
-
Modifications de la clé SSH dans le paramètre
spec.config.passwd.users.sshAuthorizedKeys
de la configuration d'une machine. -
Changements apportés au secret de tirage global ou au secret de tirage dans l'espace de noms
openshift-config
. -
Rotation automatique de l'autorité de certification
/etc/kubernetes/kubelet-ca.crt
par l'opérateur du serveur API Kubernetes.
-
Modifications de la clé SSH dans le paramètre
Lorsque le MCO détecte des modifications dans le fichier
/etc/containers/registries.conf
, telles que l'ajout ou la modification d'un objetImageDigestMirrorSet
ouImageTagMirrorSet
, il draine les nœuds correspondants, applique les modifications et désenregistre les nœuds :-
L'ajout d'un registre avec le jeu de paramètres
pull-from-mirror = "digest-only"
pour chaque miroir. -
L'ajout d'un miroir avec le paramètre
pull-from-mirror = "digest-only"
défini dans un registre. -
L'ajout d'éléments à la liste
unqualified-search-registries
.
-
L'ajout d'un registre avec le jeu de paramètres
Il peut arriver que la configuration d'un nœud ne corresponde pas entièrement à ce que la configuration de la machine actuellement appliquée spécifie. Cet état est appelé configuration drift. Le Machine Config Daemon (MCD) vérifie régulièrement que les nœuds ne présentent pas de dérive de configuration. Si le MCD détecte une dérive de la configuration, le MCO marque le nœud degraded
jusqu'à ce qu'un administrateur corrige la configuration du nœud. Un nœud dégradé est en ligne et opérationnel, mais il ne peut pas être mis à jour.
Ressources complémentaires
- Pour plus d'informations sur la détection de la dérive de la configuration, voir Comprendre la détection de la dérive de la configuration.
- Pour plus d'informations sur la façon d'empêcher les machines du plan de contrôle de redémarrer après que l'opérateur de configuration des machines a apporté des modifications à la configuration des machines, voir Désactiver le redémarrage automatique de l'opérateur de configuration des machines.