11.2. Configuration de l'encapsulation de l'espace de noms de montage
Vous pouvez configurer l'encapsulation de l'espace de noms de montage de manière à ce qu'un cluster fonctionne avec moins de ressources.
L'encapsulation de l'espace de noms de montage est une fonctionnalité de l'aperçu technologique et elle est désactivée par défaut. Pour l'utiliser, vous devez l'activer manuellement.
Conditions préalables
-
Vous avez installé l'OpenShift CLI (
oc
). -
Vous vous êtes connecté en tant qu'utilisateur avec les privilèges
cluster-admin
.
Procédure
Créer un fichier appelé
mount_namespace_config.yaml
avec le YAML suivant :apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: master name: 99-kubens-master spec: config: ignition: version: 3.2.0 systemd: units: - enabled: true name: kubens.service --- apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker name: 99-kubens-worker spec: config: ignition: version: 3.2.0 systemd: units: - enabled: true name: kubens.service
Appliquez l'espace de noms mount
MachineConfig
CR en exécutant la commande suivante :$ oc apply -f mount_namespace_config.yaml
Exemple de sortie
machineconfig.machineconfiguration.openshift.io/99-kubens-master created machineconfig.machineconfiguration.openshift.io/99-kubens-worker created
La CR
MachineConfig
peut prendre jusqu'à 30 minutes pour finir d'être appliquée dans le cluster. Vous pouvez vérifier l'état de la CRMachineConfig
en exécutant la commande suivante :$ oc get mcp
Exemple de sortie
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-03d4bc4befb0f4ed3566a2c8f7636751 False True False 3 0 0 0 45m worker rendered-worker-10577f6ab0117ed1825f8af2ac687ddf False True False 3 1 1
Attendez que la CR
MachineConfig
soit appliquée avec succès sur tous les nœuds de plan de contrôle et de travail après l'exécution de la commande suivante :$ oc wait --for=condition=Updated mcp --all --timeout=30m
Exemple de sortie
machineconfigpool.machineconfiguration.openshift.io/master condition met machineconfigpool.machineconfiguration.openshift.io/worker condition met
Vérification
Pour vérifier l'encapsulation d'un hôte de cluster, exécutez les commandes suivantes :
Ouvrez un shell de débogage sur l'hôte du cluster :
oc debug node/<node_name>
Ouvrez une session
chroot
:sh-4.4# chroot /host
Vérifiez l'espace de noms de montage de systemd :
sh-4.4# readlink /proc/1/ns/mnt
Exemple de sortie
mnt:[4026531953]
Vérifier l'espace de noms du montage kubelet :
sh-4.4# readlink /proc/$(pgrep kubelet)/ns/mnt
Exemple de sortie
mnt:[4026531840]
Vérifiez l'espace de noms de la monture CRI-O :
sh-4.4# readlink /proc/$(pgrep crio)/ns/mnt
Exemple de sortie
mnt:[4026531840]
Ces commandes renvoient les espaces de noms de montage associés à systemd, kubelet et à l'exécution du conteneur. Dans OpenShift Container Platform, l'exécution du conteneur est CRI-O.
L'encapsulation est effective si systemd se trouve dans un espace de noms de montage différent de kubelet et CRI-O, comme dans l'exemple ci-dessus. L'encapsulation n'est pas effective si les trois processus se trouvent dans le même espace de noms de montage.