Étiquettes prises en charge pour différents cas d'utilisation

Découvrez les étiquettes utilisées par Kubernetes Engine (OKE) lors de la création et de la gestion des grappes.

Lors de la création et de la gestion des grappes, Kubernetes Engine utilise un certain nombre d'étiquettes différentes, notamment :

Pour plus d'informations sur les étiquettes Kubernetes, voir la documentation sur Kubernetes.

topology.kubernetes.io/zone

Le moteur Kubernetes ajoute automatiquement l'étiquette topology.kubernetes.io/zone à chaque noeud de travail (noeuds gérés et noeuds virtuels) d'une grappe, en fonction du domaine de disponibilité dans lequel il est placé. (L'étiquette topology.kubernetes.io/zone était auparavant l'étiquette failure-domain.beta.kubernetes.io/zone dans les versions antérieures de Kubernetes.)

Un domaine de disponibilité est constitué d'un ou plusieurs centres de données à l'intérieur d'une région. Une région est composée d'un ou plusieurs domaines de disponibilité. Les domaines de disponibilité sont isolés les uns des autres, tolérants aux pannes et prémunis contre les pannes simultanées. Voir Régions et domaines de disponibilité.

Vous pouvez utiliser l'étiquette topology.kubernetes.io/zone de différentes façons :

  • Vous pouvez utiliser l'étiquette topology.kubernetes.io/zone (avec l'étiquette oci.oraclecloud.com/fault-domain) pour limiter les noeuds de travail sur lesquels exécuter un pod, dans le cas d'une grappe ayant des noeuds de travail dans plusieurs domaines de disponibilité. Ajoutez l'étiquette topology.kubernetes.io/zone dans la spécification du module de réseautage pour spécifier le domaine de disponibilité dans lequel les noeuds de travail doivent avoir été placés.
  • Vous pouvez utiliser l'étiquette topology.kubernetes.io/zone pour spécifier le domaine de disponibilité et la région afin de provisionner des revendications de volume persistant pour le service de volumes par blocs lors de l'utilisation du plugiciel de volume FlexVolume. Voir Configuration du stockage pour les grappes Kubernetes.

Lorsque vous spécifiez une valeur pour l'étiquette topology.kubernetes.io/zone, vous devez utiliser la version courte correcte du nom de domaine de disponibilité dans une région Oracle Cloud Infrastructure.

Dans la plupart des cas, les versions abrégées des noms de domaine de disponibilité sont dans le format <region-identifier>-1-AD-<availability-domain-number>. Par exemple : UK-LONDON-1-AD-1, UK-LONDON-1-AD-2, UK-LONDON-1-AD-3, AP-MELBOURNE-1-AD-1, ME-JEDDAH-1-AD-1. Pour connaître les identificateurs de région et les domaines de disponibilité à utiliser, voir Disponibilité par région.

Notez que les versions abrégées des noms de domaine de disponibilité dans les régions Ashburn et Phoenix sont des exceptions, comme on peut le voir ci-dessous :

  • Pour la région de Phoenix, les versions abrégées des noms de domaine de disponibilité sont dans le format PHX-AD-<availability-domain-number>. Par exemple, PHX-AD-1, PHX-AD-2, PHX-AD-3.
  • Pour la région d'Ashburn, les versions abrégées des noms de domaine de disponibilité sont dans le format US-ASHBURN-AD-<availability-domain-number>. Par exemple, US-ASHBURN-AD-1, US-ASHBURN-AD-2, US-ASHBURN-AD-3.

oci.oraclecloud.com/fault-domain

Kubernetes Engine ajoute automatiquement l'étiquette oci.oraclecloud.com/fault-domain à chaque noeud de travail (noeuds gérés et noeuds virtuels) d'une grappe, selon le domaine d'erreur dans lequel il se trouve.

Un domaine d'erreur est un regroupement d'équipements matériels et d'infrastructure qui est distinct des autres domaines d'erreur appartenant au même domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines d'erreur (FAULT-DOMAIN-1, FAULT-DOMAIN-2, FAULT-DOMAIN-3). Chaque instance de calcul est placée dans un domaine d'erreur. Voir Domaines d'erreur.

Vous pouvez limiter les noeuds de travail sur lesquels exécuter un pod en ajoutant l'étiquette oci.oraclecloud.com/fault-domain dans la spécification du pod. Utilisez l'étiquette oci.oraclecloud.com/fault-domain pour spécifier le domaine d'erreur dans lequel les noeuds de travail doivent avoir été placés.

L'étiquette oci.oraclecloud.com/fault-domain est généralement utilisée pour garantir la haute disponibilité lorsqu'une grappe se trouve dans une région comportant un seul domaine de disponibilité.

Par exemple :

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx:latest
    ports:
    - containerPort: 80
  nodeSelector:
    oci.oraclecloud.com/fault-domain: FAULT-DOMAIN-3

Si vous appliquez l'exemple de spécification de pod ci-dessus à une grappe, un pod nginx n'est créé que si la grappe a des noeuds de travail dans FAULT-DOMAIN-3 dans le domaine de disponibilité. Si les noeuds de travail de la grappe se trouvent uniquement dans FAULT-DOMAIN-1 ou FAULT-DOMAIN-2, le pod n'est pas créé et reste en attente.

Si une grappe a des noeuds de travail dans plusieurs domaines de disponibilité, ajoutez les étiquettes failure-domain.beta.kubernetes.io/zone et oci.oraclecloud.com/fault-domain dans une spécification de pod pour spécifier à la fois le domaine de disponibilité et le domaine d'erreur des noeuds de travail sur lesquels exécuter le pod.

node.kubernetes.io/exclude-from-external-load-balancers

Kubernetes Engine active automatiquement le point de contrôle de la fonction ServiceNodeExclusion sur les grappes qu'il crée. Lorsque le point de contrôle de la fonction ServiceNodeExclusion est activé sur une grappe, vous pouvez ajouter une étiquette à des noeuds gérés particuliers pour les exclure de la liste des serveurs dorsaux d'un jeu dorsal d'équilibreur de charge Oracle Cloud Infrastructure. Moins les noeuds de travail inclus dans un jeu dorsal sont nombreux, plus vite l'équilibreur de charge peut être mis à jour.

Pour exclure un noeud de travail de la liste des serveurs dorsaux d'un jeu dorsal, ajoutez l'étiquette node.kubernetes.io/exclude-from-external-load-balancers au noeud en entrant :
kubectl label nodes <node-name> node.kubernetes.io/exclude-from-external-load-balancers=true

Par exemple :

kubectl label nodes 10.0.1.2 node.kubernetes.io/exclude-from-external-load-balancers=true

Notez qu'après que vous avez ajouté l'étiquette à un noeud, celui-ci est exclu de la liste des serveurs dorsaux, quelle que soit la valeur de l'étiquette. Par exemple, même si vous spécifiez node.kubernetes.io/exclude-from-external-load-balancers label=false, le noeud de travail reste exclu de la liste des serveurs dorsaux.

Pour supprimer l'étiquette du noeud, entrez :

kubectl label nodes <node-name> node.kubernetes.io/exclude-from-external-load-balancers-

Pour exclure tous les noeuds d'un groupe de noeuds de la liste des serveurs dorsaux, ajoutez node.kubernetes.io/exclude-from-external-load-balancers=true à la propriété Étiquettes Kubernetes du groupe de noeuds lorsque vous créez ou modifiez le groupe de noeuds.

Notez que l'étiquette node.kubernetes.io/exclude-from-external-load-balancers n'est pas prise en charge avec les noeuds virtuels.