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
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
Copy to Clipboard Copied! Appliquez l'espace de noms mount
MachineConfig
CR en exécutant la commande suivante :oc apply -f mount_namespace_config.yaml
$ oc apply -f mount_namespace_config.yaml
Copy to Clipboard Copied! Exemple de sortie
machineconfig.machineconfiguration.openshift.io/99-kubens-master created machineconfig.machineconfiguration.openshift.io/99-kubens-worker created
machineconfig.machineconfiguration.openshift.io/99-kubens-master created machineconfig.machineconfiguration.openshift.io/99-kubens-worker created
Copy to Clipboard Copied! 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
$ oc get mcp
Copy to Clipboard Copied! 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
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
Copy to Clipboard Copied! 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
$ oc wait --for=condition=Updated mcp --all --timeout=30m
Copy to Clipboard Copied! Exemple de sortie
machineconfigpool.machineconfiguration.openshift.io/master condition met machineconfigpool.machineconfiguration.openshift.io/worker condition met
machineconfigpool.machineconfiguration.openshift.io/master condition met machineconfigpool.machineconfiguration.openshift.io/worker condition met
Copy to Clipboard Copied!
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>
oc debug node/<node_name>
Copy to Clipboard Copied! Ouvrez une session
chroot
:chroot /host
sh-4.4# chroot /host
Copy to Clipboard Copied! Vérifiez l'espace de noms de montage de systemd :
readlink /proc/1/ns/mnt
sh-4.4# readlink /proc/1/ns/mnt
Copy to Clipboard Copied! Exemple de sortie
mnt:[4026531953]
mnt:[4026531953]
Copy to Clipboard Copied! Vérifier l'espace de noms du montage kubelet :
readlink /proc/$(pgrep kubelet)/ns/mnt
sh-4.4# readlink /proc/$(pgrep kubelet)/ns/mnt
Copy to Clipboard Copied! Exemple de sortie
mnt:[4026531840]
mnt:[4026531840]
Copy to Clipboard Copied! Vérifiez l'espace de noms de la monture CRI-O :
readlink /proc/$(pgrep crio)/ns/mnt
sh-4.4# readlink /proc/$(pgrep crio)/ns/mnt
Copy to Clipboard Copied! Exemple de sortie
mnt:[4026531840]
mnt:[4026531840]
Copy to Clipboard Copied!
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.