3.7. Placer des pods sur des nœuds spécifiques en utilisant des sélecteurs de nœuds
Un site node selector spécifie une carte de paires clé/valeur définies à l'aide d'étiquettes personnalisées sur les nœuds et de sélecteurs spécifiés dans les pods.
Pour qu'un module puisse être exécuté sur un nœud, il doit avoir le même sélecteur de nœud clé/valeur que l'étiquette du nœud.
3.7.1. À propos des sélecteurs de nœuds
Vous pouvez utiliser des sélecteurs de nœuds sur les pods et des étiquettes sur les nœuds pour contrôler l'endroit où le pod est planifié. Avec les sélecteurs de nœuds, OpenShift Container Platform planifie les pods sur les nœuds qui contiennent les étiquettes correspondantes.
Vous pouvez utiliser un sélecteur de nœud pour placer des pods spécifiques sur des nœuds spécifiques, des sélecteurs de nœuds à l'échelle du cluster pour placer de nouveaux pods sur des nœuds spécifiques n'importe où dans le cluster, et des sélecteurs de nœuds de projet pour placer de nouveaux pods dans un projet sur des nœuds spécifiques.
Par exemple, en tant qu'administrateur de cluster, vous pouvez créer une infrastructure dans laquelle les développeurs d'applications peuvent déployer des pods uniquement sur les nœuds les plus proches de leur emplacement géographique en incluant un sélecteur de nœud dans chaque pod qu'ils créent. Dans cet exemple, le cluster se compose de cinq centres de données répartis dans deux régions. Aux États-Unis, les nœuds sont étiquetés us-east
, us-central
ou us-west
. Dans la région Asie-Pacifique (APAC), les nœuds sont étiquetés apac-east
ou apac-west
. Les développeurs peuvent ajouter un sélecteur de nœud aux pods qu'ils créent pour s'assurer que les pods sont planifiés sur ces nœuds.
Un pod n'est pas programmé si l'objet Pod
contient un sélecteur de nœud, mais qu'aucun nœud n'a d'étiquette correspondante.
Si vous utilisez des sélecteurs de nœuds et des affinités de nœuds dans la même configuration de pods, les règles suivantes contrôlent le placement des pods sur les nœuds :
-
Si vous configurez à la fois
nodeSelector
etnodeAffinity
, les deux conditions doivent être remplies pour que le pod soit planifié sur un nœud candidat. -
Si vous spécifiez plusieurs
nodeSelectorTerms
associés à des typesnodeAffinity
, le module peut être programmé sur un nœud si l'un desnodeSelectorTerms
est satisfait. -
Si vous spécifiez plusieurs
matchExpressions
associés ànodeSelectorTerms
, le module ne peut être programmé sur un nœud que si tous lesmatchExpressions
sont satisfaits.
- Sélecteurs de nœuds sur des pods et des nœuds spécifiques
Vous pouvez contrôler le nœud sur lequel un pod spécifique est programmé en utilisant des sélecteurs de nœuds et des étiquettes.
Pour utiliser les sélecteurs de nœuds et les étiquettes, il faut d'abord étiqueter le nœud afin d'éviter que les modules ne soient désordonnés, puis ajouter le sélecteur de nœud au module.
NoteVous ne pouvez pas ajouter un sélecteur de nœud directement à un module programmé existant. Vous devez étiqueter l'objet qui contrôle le module, tel que la configuration de déploiement.
Par exemple, l'objet
Node
suivant porte l'étiquetteregion: east
:Exemple d'objet
Node
avec une étiquettekind: Node apiVersion: v1 metadata: name: ip-10-0-131-14.ec2.internal selfLink: /api/v1/nodes/ip-10-0-131-14.ec2.internal uid: 7bc2580a-8b8e-11e9-8e01-021ab4174c74 resourceVersion: '478704' creationTimestamp: '2019-06-10T14:46:08Z' labels: kubernetes.io/os: linux failure-domain.beta.kubernetes.io/zone: us-east-1a node.openshift.io/os_version: '4.5' node-role.kubernetes.io/worker: '' failure-domain.beta.kubernetes.io/region: us-east-1 node.openshift.io/os_id: rhcos beta.kubernetes.io/instance-type: m4.large kubernetes.io/hostname: ip-10-0-131-14 beta.kubernetes.io/arch: amd64 region: east 1 type: user-node
- 1
- Étiquettes correspondant au sélecteur de nœuds de pods.
Un pod possède le sélecteur de nœuds
type: user-node,region: east
:Exemple d'objet
Pod
avec des sélecteurs de nœudsapiVersion: v1 kind: Pod .... spec: nodeSelector: 1 region: east type: user-node
- 1
- Sélecteurs de nœuds correspondant à l'étiquette du nœud. Le nœud doit avoir une étiquette pour chaque sélecteur de nœud.
Lorsque vous créez le pod à l'aide de la spécification de pod d'exemple, il peut être planifié sur le nœud d'exemple.
- Sélecteurs de nœuds par défaut pour l'ensemble du cluster
Avec des sélecteurs de nœuds par défaut à l'échelle du cluster, lorsque vous créez un pod dans ce cluster, OpenShift Container Platform ajoute les sélecteurs de nœuds par défaut au pod et planifie le pod sur des nœuds avec des étiquettes correspondantes.
Par exemple, l'objet
Scheduler
suivant possède les sélecteurs de nœuds par défaut pour l'ensemble du clusterregion=east
ettype=user-node
:Exemple d'ordonnanceur Opérateur Ressource personnalisée
apiVersion: config.openshift.io/v1 kind: Scheduler metadata: name: cluster ... spec: defaultNodeSelector: type=user-node,region=east ...
Un nœud de cette grappe possède les étiquettes
type=user-node,region=east
:Exemple d'objet
Node
apiVersion: v1 kind: Node metadata: name: ci-ln-qg1il3k-f76d1-hlmhl-worker-b-df2s4 ... labels: region: east type: user-node ...
Exemple d'objet
Pod
avec un sélecteur de nœudapiVersion: v1 kind: Pod ... spec: nodeSelector: region: east ...
Lorsque vous créez le pod à l'aide de la spécification de pod d'exemple dans le cluster d'exemple, le pod est créé avec le sélecteur de nœud à l'échelle du cluster et est planifié sur le nœud étiqueté :
Exemple de liste de pods avec le pod sur le nœud étiqueté
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod-s1 1/1 Running 0 20s 10.131.2.6 ci-ln-qg1il3k-f76d1-hlmhl-worker-b-df2s4 <none> <none>
NoteSi le projet dans lequel vous créez le module dispose d'un sélecteur de nœud de projet, ce sélecteur a la préférence sur un sélecteur de nœud à l'échelle du cluster. Votre module n'est pas créé ou planifié s'il n'a pas de sélecteur de nœud de projet.
- Sélecteurs de nœuds de projet
Avec les sélecteurs de nœuds de projet, lorsque vous créez un pod dans ce projet, OpenShift Container Platform ajoute les sélecteurs de nœuds au pod et planifie les pods sur un nœud avec les étiquettes correspondantes. S'il existe un sélecteur de nœuds par défaut à l'échelle du cluster, le sélecteur de nœuds du projet est privilégié.
Par exemple, le projet suivant possède le sélecteur de nœuds
region=east
:Exemple d'objet
Namespace
apiVersion: v1 kind: Namespace metadata: name: east-region annotations: openshift.io/node-selector: "region=east" ...
Le nœud suivant possède les étiquettes
type=user-node,region=east
:Exemple d'objet
Node
apiVersion: v1 kind: Node metadata: name: ci-ln-qg1il3k-f76d1-hlmhl-worker-b-df2s4 ... labels: region: east type: user-node ...
Lorsque vous créez le pod à l'aide de l'exemple de spécification de pod dans cet exemple de projet, le pod est créé avec les sélecteurs de nœuds du projet et est planifié sur le nœud étiqueté :
Exemple d'objet
Pod
apiVersion: v1 kind: Pod metadata: namespace: east-region ... spec: nodeSelector: region: east type: user-node ...
Exemple de liste de pods avec le pod sur le nœud étiqueté
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod-s1 1/1 Running 0 20s 10.131.2.6 ci-ln-qg1il3k-f76d1-hlmhl-worker-b-df2s4 <none> <none>
Un module du projet n'est pas créé ou planifié s'il contient des sélecteurs de nœuds différents. Par exemple, si vous déployez le module suivant dans le projet d'exemple, il ne sera pas créé :
Exemple
Pod
objet avec un sélecteur de nœud invalideapiVersion: v1 kind: Pod ... spec: nodeSelector: region: west ....
3.7.2. Utilisation de sélecteurs de nœuds pour contrôler le placement des pods
Vous pouvez utiliser des sélecteurs de nœuds sur les pods et des étiquettes sur les nœuds pour contrôler l'endroit où le pod est planifié. Avec les sélecteurs de nœuds, OpenShift Container Platform planifie les pods sur les nœuds qui contiennent les étiquettes correspondantes.
Vous ajoutez des étiquettes à un nœud, à un ensemble de machines de calcul ou à une configuration de machine. L'ajout de l'étiquette à l'ensemble de machines de calcul garantit que si le nœud ou la machine tombe en panne, les nouveaux nœuds disposent de l'étiquette. Les étiquettes ajoutées à un nœud ou à une configuration de machine ne persistent pas si le nœud ou la machine tombe en panne.
Pour ajouter des sélecteurs de nœuds à un module existant, ajoutez un sélecteur de nœuds à l'objet de contrôle de ce module, tel que l'objet ReplicaSet
, l'objet DaemonSet
, l'objet StatefulSet
, l'objet Deployment
ou l'objet DeploymentConfig
. Tous les modules existants sous cet objet de contrôle sont recréés sur un nœud avec une étiquette correspondante. Si vous créez un nouveau module, vous pouvez ajouter le sélecteur de nœud directement à la spécification Pod
.
Vous ne pouvez pas ajouter un sélecteur de nœud directement à un module planifié existant.
Conditions préalables
Pour ajouter un sélecteur de nœud à des modules existants, déterminez l'objet de contrôle de ce module. Par exemple, le module router-default-66d5cf9464-m2g75
est contrôlé par l'ensemble de répliques router-default-66d5cf9464
:
$ oc describe pod router-default-66d5cf9464-7pwkc Name: router-default-66d5cf9464-7pwkc Namespace: openshift-ingress .... Controlled By: ReplicaSet/router-default-66d5cf9464
La console web liste l'objet de contrôle sous ownerReferences
dans le pod YAML :
ownerReferences: - apiVersion: apps/v1 kind: ReplicaSet name: router-default-66d5cf9464 uid: d81dd094-da26-11e9-a48a-128e7edf0312 controller: true blockOwnerDeletion: true
Procédure
Ajoutez des étiquettes à un nœud en utilisant un ensemble de machines de calcul ou en éditant le nœud directement :
Utilisez un objet
MachineSet
pour ajouter des étiquettes aux nœuds gérés par l'ensemble de machines de calcul lors de la création d'un nœud :Exécutez la commande suivante pour ajouter des étiquettes à un objet
MachineSet
:$ oc patch MachineSet <name> --type='json' -p='[{"op":"add","path":"/spec/template/spec/metadata/labels", "value":{"<key>"="<value>","<key>"="<value>"}}]' -n openshift-machine-api
Par exemple :
$ oc patch MachineSet abc612-msrtw-worker-us-east-1c --type='json' -p='[{"op":"add","path":"/spec/template/spec/metadata/labels", "value":{"type":"user-node","region":"east"}}]' -n openshift-machine-api
AstuceVous pouvez également appliquer le YAML suivant pour ajouter des étiquettes à un ensemble de machines de calcul :
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: name: <machineset> namespace: openshift-machine-api spec: template: spec: metadata: labels: region: "east" type: "user-node"
Vérifiez que les étiquettes sont ajoutées à l'objet
MachineSet
en utilisant la commandeoc edit
:Par exemple :
$ oc edit MachineSet abc612-msrtw-worker-us-east-1c -n openshift-machine-api
Exemple d'objet
MachineSet
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet .... spec: ... template: metadata: ... spec: metadata: labels: region: east type: user-node ....
Ajouter des étiquettes directement à un nœud :
Modifiez l'objet
Node
pour le nœud :$ oc label nodes <name> <key>=<value>
Par exemple, pour étiqueter un nœud :
$ oc label nodes ip-10-0-142-25.ec2.internal type=user-node region=east
AstuceVous pouvez également appliquer le langage YAML suivant pour ajouter des étiquettes à un nœud :
kind: Node apiVersion: v1 metadata: name: <node_name> labels: type: "user-node" region: "east"
Vérifiez que les étiquettes sont ajoutées au nœud :
$ oc get nodes -l type=user-node,region=east
Exemple de sortie
NAME STATUS ROLES AGE VERSION ip-10-0-142-25.ec2.internal Ready worker 17m v1.25.0
Ajouter le sélecteur de nœud correspondant à un pod :
Pour ajouter un sélecteur de nœud aux modules existants et futurs, ajoutez un sélecteur de nœud à l'objet de contrôle des modules :
Exemple
ReplicaSet
objet avec étiquetteskind: ReplicaSet .... spec: .... template: metadata: creationTimestamp: null labels: ingresscontroller.operator.openshift.io/deployment-ingresscontroller: default pod-template-hash: 66d5cf9464 spec: nodeSelector: kubernetes.io/os: linux node-role.kubernetes.io/worker: '' type: user-node 1
- 1
- Ajouter le sélecteur de nœud.
Pour ajouter un sélecteur de nœud à un nouveau pod spécifique, ajoutez le sélecteur à l'objet
Pod
directement :Exemple d'objet
Pod
avec un sélecteur de nœudapiVersion: v1 kind: Pod .... spec: nodeSelector: region: east type: user-node
NoteVous ne pouvez pas ajouter un sélecteur de nœud directement à un module planifié existant.
3.7.3. Création de sélecteurs de nœuds par défaut pour l'ensemble du cluster
Vous pouvez utiliser des sélecteurs de nœuds par défaut à l'échelle du cluster sur les pods ainsi que des étiquettes sur les nœuds pour contraindre tous les pods créés dans un cluster à des nœuds spécifiques.
Avec des sélecteurs de nœuds à l'échelle du cluster, lorsque vous créez un pod dans ce cluster, OpenShift Container Platform ajoute les sélecteurs de nœuds par défaut au pod et planifie le pod sur des nœuds avec des étiquettes correspondantes.
Vous configurez les sélecteurs de nœuds à l'échelle du cluster en modifiant la ressource personnalisée (CR) de l'opérateur d'ordonnancement. Vous ajoutez des étiquettes à un nœud, à un ensemble de machines de calcul ou à une configuration de machine. L'ajout de l'étiquette à l'ensemble de machines de calcul garantit que si le nœud ou la machine tombe en panne, les nouveaux nœuds disposent de l'étiquette. Les étiquettes ajoutées à un nœud ou à une configuration de machine ne persistent pas si le nœud ou la machine tombe en panne.
Vous pouvez ajouter des paires clé/valeur supplémentaires à un pod. Mais vous ne pouvez pas ajouter une valeur différente pour une clé par défaut.
Procédure
Pour ajouter un sélecteur de nœuds par défaut à l'échelle du cluster :
Modifiez le CR de l'opérateur d'ordonnancement pour ajouter les sélecteurs de nœuds par défaut à l'échelle du cluster :
$ oc edit scheduler cluster
Exemple d'opérateur d'ordonnancement CR avec un sélecteur de nœuds
apiVersion: config.openshift.io/v1 kind: Scheduler metadata: name: cluster ... spec: defaultNodeSelector: type=user-node,region=east 1 mastersSchedulable: false
- 1
- Ajouter un sélecteur de nœud avec les paires
<key>:<value>
appropriées.
Après avoir effectué cette modification, attendez que les pods du projet
openshift-kube-apiserver
soient redéployés. Cela peut prendre plusieurs minutes. Le sélecteur de nœuds par défaut à l'échelle du cluster ne prend pas effet tant que les pods ne sont pas redéployés.Ajoutez des étiquettes à un nœud en utilisant un ensemble de machines de calcul ou en éditant le nœud directement :
Utiliser un ensemble de machines de calcul pour ajouter des étiquettes aux nœuds gérés par l'ensemble de machines de calcul lors de la création d'un nœud :
Exécutez la commande suivante pour ajouter des étiquettes à un objet
MachineSet
:$ oc patch MachineSet <name> --type='json' -p='[{"op":"add","path":"/spec/template/spec/metadata/labels", "value":{"<key>"="<value>","<key>"="<value>"}}]' -n openshift-machine-api 1
- 1
- Ajouter une paire
<key>/<value>
pour chaque étiquette.
Par exemple :
$ oc patch MachineSet ci-ln-l8nry52-f76d1-hl7m7-worker-c --type='json' -p='[{"op":"add","path":"/spec/template/spec/metadata/labels", "value":{"type":"user-node","region":"east"}}]' -n openshift-machine-api
AstuceVous pouvez également appliquer le YAML suivant pour ajouter des étiquettes à un ensemble de machines de calcul :
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: name: <machineset> namespace: openshift-machine-api spec: template: spec: metadata: labels: region: "east" type: "user-node"
Vérifiez que les étiquettes sont ajoutées à l'objet
MachineSet
en utilisant la commandeoc edit
:Par exemple :
$ oc edit MachineSet abc612-msrtw-worker-us-east-1c -n openshift-machine-api
Exemple d'objet
MachineSet
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet ... spec: ... template: metadata: ... spec: metadata: labels: region: east type: user-node ...
Redéployez les nœuds associés à cet ensemble de machines de calcul en réduisant l'échelle à
0
et en augmentant l'échelle des nœuds :Par exemple :
$ oc scale --replicas=0 MachineSet ci-ln-l8nry52-f76d1-hl7m7-worker-c -n openshift-machine-api
$ oc scale --replicas=1 MachineSet ci-ln-l8nry52-f76d1-hl7m7-worker-c -n openshift-machine-api
Lorsque les nœuds sont prêts et disponibles, vérifiez que l'étiquette a été ajoutée aux nœuds à l'aide de la commande
oc get
:$ oc get nodes -l <key>=<value>
Par exemple :
$ oc get nodes -l type=user-node
Exemple de sortie
NAME STATUS ROLES AGE VERSION ci-ln-l8nry52-f76d1-hl7m7-worker-c-vmqzp Ready worker 61s v1.25.0
Ajouter des étiquettes directement à un nœud :
Modifiez l'objet
Node
pour le nœud :$ oc label nodes <name> <key>=<value>
Par exemple, pour étiqueter un nœud :
$ oc label nodes ci-ln-l8nry52-f76d1-hl7m7-worker-b-tgq49 type=user-node region=east
AstuceVous pouvez également appliquer le langage YAML suivant pour ajouter des étiquettes à un nœud :
kind: Node apiVersion: v1 metadata: name: <node_name> labels: type: "user-node" region: "east"
Vérifiez que les étiquettes sont ajoutées au nœud à l'aide de la commande
oc get
:$ oc get nodes -l <key>=<value>,<key>=<valeur>
Par exemple :
$ oc get nodes -l type=user-node,region=east
Exemple de sortie
NAME STATUS ROLES AGE VERSION ci-ln-l8nry52-f76d1-hl7m7-worker-b-tgq49 Ready worker 17m v1.25.0
3.7.4. Création de sélecteurs de nœuds pour l'ensemble du projet
Vous pouvez utiliser des sélecteurs de nœuds dans un projet ainsi que des étiquettes sur les nœuds pour contraindre tous les pods créés dans ce projet aux nœuds étiquetés.
Lorsque vous créez un pod dans ce projet, OpenShift Container Platform ajoute les sélecteurs de nœuds aux pods du projet et planifie les pods sur un nœud avec des étiquettes correspondantes dans le projet. S'il existe un sélecteur de nœud par défaut à l'échelle du cluster, le sélecteur de nœud du projet a la préférence.
Vous ajoutez des sélecteurs de nœuds à un projet en modifiant l'objet Namespace
pour ajouter le paramètre openshift.io/node-selector
. Vous ajoutez des étiquettes à un nœud, à un ensemble de machines de calcul ou à une configuration de machine. L'ajout de l'étiquette à l'ensemble de machines de calcul garantit que si le nœud ou la machine tombe en panne, les nouveaux nœuds disposent de l'étiquette. Les étiquettes ajoutées à un nœud ou à une configuration de machine ne persistent pas si le nœud ou la machine tombe en panne.
Un pod n'est pas planifié si l'objet Pod
contient un sélecteur de nœuds, mais qu'aucun projet n'a de sélecteur de nœuds correspondant. Lorsque vous créez un pod à partir de cette spécification, vous recevez une erreur similaire au message suivant :
Exemple de message d'erreur
Error from server (Forbidden): error when creating "pod.yaml": pods "pod-4" is forbidden: pod node label selector conflicts with its project node label selector
Vous pouvez ajouter des paires clé/valeur supplémentaires à un module. Mais vous ne pouvez pas ajouter une valeur différente pour une clé de projet.
Procédure
Pour ajouter un sélecteur de nœud de projet par défaut :
Créez un espace de noms ou modifiez un espace de noms existant pour ajouter le paramètre
openshift.io/node-selector
:oc edit namespace <name> $ oc edit namespace <name>
Exemple de sortie
apiVersion: v1 kind: Namespace metadata: annotations: openshift.io/node-selector: "type=user-node,region=east" 1 openshift.io/description: "" openshift.io/display-name: "" openshift.io/requester: kube:admin openshift.io/sa.scc.mcs: s0:c30,c5 openshift.io/sa.scc.supplemental-groups: 1000880000/10000 openshift.io/sa.scc.uid-range: 1000880000/10000 creationTimestamp: "2021-05-10T12:35:04Z" labels: kubernetes.io/metadata.name: demo name: demo resourceVersion: "145537" uid: 3f8786e3-1fcb-42e3-a0e3-e2ac54d15001 spec: finalizers: - kubernetes
- 1
- Ajoutez les paires
openshift.io/node-selector
et<key>:<value>
appropriées.
Ajoutez des étiquettes à un nœud en utilisant un ensemble de machines de calcul ou en éditant le nœud directement :
Utilisez un objet
MachineSet
pour ajouter des étiquettes aux nœuds gérés par l'ensemble de machines de calcul lors de la création d'un nœud :Exécutez la commande suivante pour ajouter des étiquettes à un objet
MachineSet
:$ oc patch MachineSet <name> --type='json' -p='[{"op":"add","path":"/spec/template/spec/metadata/labels", "value":{"<key>"="<value>","<key>"="<value>"}}]' -n openshift-machine-api
Par exemple :
$ oc patch MachineSet ci-ln-l8nry52-f76d1-hl7m7-worker-c --type='json' -p='[{"op":"add","path":"/spec/template/spec/metadata/labels", "value":{"type":"user-node","region":"east"}}]' -n openshift-machine-api
AstuceVous pouvez également appliquer le YAML suivant pour ajouter des étiquettes à un ensemble de machines de calcul :
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: name: <machineset> namespace: openshift-machine-api spec: template: spec: metadata: labels: region: "east" type: "user-node"
Vérifiez que les étiquettes sont ajoutées à l'objet
MachineSet
en utilisant la commandeoc edit
:Par exemple :
$ oc edit MachineSet ci-ln-l8nry52-f76d1-hl7m7-worker-c -n openshift-machine-api
Exemple de sortie
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: ... spec: ... template: metadata: ... spec: metadata: labels: region: east type: user-node
Redéployer les nœuds associés à cet ensemble de machines de calcul :
Par exemple :
$ oc scale --replicas=0 MachineSet ci-ln-l8nry52-f76d1-hl7m7-worker-c -n openshift-machine-api
$ oc scale --replicas=1 MachineSet ci-ln-l8nry52-f76d1-hl7m7-worker-c -n openshift-machine-api
Lorsque les nœuds sont prêts et disponibles, vérifiez que l'étiquette a été ajoutée aux nœuds à l'aide de la commande
oc get
:$ oc get nodes -l <key>=<value>
Par exemple :
$ oc get nodes -l type=user-node,region=east
Exemple de sortie
NAME STATUS ROLES AGE VERSION ci-ln-l8nry52-f76d1-hl7m7-worker-c-vmqzp Ready worker 61s v1.25.0
Ajouter des étiquettes directement à un nœud :
Modifiez l'objet
Node
pour ajouter des étiquettes :$ oc label <resource> <name> <key>=<value>
Par exemple, pour étiqueter un nœud :
$ oc label nodes ci-ln-l8nry52-f76d1-hl7m7-worker-c-tgq49 type=user-node region=east
AstuceVous pouvez également appliquer le langage YAML suivant pour ajouter des étiquettes à un nœud :
kind: Node apiVersion: v1 metadata: name: <node_name> labels: type: "user-node" region: "east"
Vérifiez que les étiquettes sont ajoutées à l'objet
Node
à l'aide de la commandeoc get
:$ oc get nodes -l <key>=<value>
Par exemple :
$ oc get nodes -l type=user-node,region=east
Exemple de sortie
NAME STATUS ROLES AGE VERSION ci-ln-l8nry52-f76d1-hl7m7-worker-b-tgq49 Ready worker 17m v1.25.0
Ressources supplémentaires