Etichette supportate per diversi casi d'uso

Scopri le etichette utilizzate da Kubernetes Engine (OKE) durante la creazione e la gestione dei cluster.

Kubernetes Engine utilizza una serie di etichette diverse durante la creazione e la gestione dei cluster, tra cui:

Per ulteriori informazioni sulle etichette Kubernetes, consulta la documentazione di Kubernetes.

topology.kubernetes.io/zona

Il motore Kubernetes aggiunge automaticamente l'etichetta topology.kubernetes.io/zone a ogni nodo di lavoro (sia i nodi gestiti che i nodi virtuali) in un cluster, in base al dominio di disponibilità in cui viene posizionato. L'etichetta topology.kubernetes.io/zone era in precedenza l'etichetta failure-domain.beta.kubernetes.io/zone nelle release precedenti di Kubernetes.

Un dominio di disponibilità è uno o più data center situati all'interno di un'area geografica. Un'area è costituita da uno o più domini di disponibilità. I domini di disponibilità sono isolati gli uni dagli altri, hanno funzionalità di tolleranza agli errori e scarse probabilità di subire guasti contemporaneamente. Vedere Aree e domini di disponibilità.

L'etichetta topology.kubernetes.io/zone può essere utilizzata in modi diversi.

  • È possibile utilizzare l'etichetta topology.kubernetes.io/zone (insieme all'etichetta oci.oraclecloud.com/fault-domain) per vincolare i nodi di lavoro su cui eseguire un pod, nel caso di un cluster con nodi di lavoro in più domini di disponibilità. Includere l'etichetta topology.kubernetes.io/zone nella specifica pod per specificare il dominio di disponibilità in cui devono essere stati posizionati i nodi di lavoro.
  • È possibile utilizzare l'etichetta topology.kubernetes.io/zone per specificare il dominio di disponibilità e l'area per eseguire il provisioning delle richieste di volume persistenti sul servizio per volumi a blocchi quando si utilizza il plugin del volume FlexVolume. Vedere Impostazione dello storage per i cluster Kubernetes.

Quando si specifica un valore per l'etichetta topology.kubernetes.io/zone, è necessario utilizzare la versione abbreviata corretta del nome di dominio di disponibilità in un'area Oracle Cloud Infrastructure.

Nella maggior parte dei casi, le versioni abbreviate dei nomi di dominio di disponibilità sono nel formato <region-identifier>-1-AD-<availability-domain-number>. Ad esempio, 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. Per conoscere gli identificativi delle aree e i domini di disponibilità da utilizzare, vedere Disponibilità per area.

Si noti che le versioni abbreviate dei nomi di dominio di disponibilità nelle aree Ashburn e Phoenix sono eccezioni, come mostrato di seguito:

  • Per l'area Phoenix, le versioni abbreviate dei nomi di dominio di disponibilità sono nel formato PHX-AD-<availability-domain-number>. Ad esempio, PHX-AD-1, PHX-AD-2, PHX-AD-3.
  • Per l'area Ashburn, le versioni abbreviate dei nomi di dominio di disponibilità sono nel formato US-ASHBURN-AD-<availability-domain-number>. Ad esempio, US-ASHBURN-AD-1, US-ASHBURN-AD-2, US-ASHBURN-AD-3.

oci.oraclecloud.com/dominio-errore

Il motore Kubernetes aggiunge automaticamente l'etichetta oci.oraclecloud.com/fault-domain a ogni nodo di lavoro (sia i nodi gestiti che i nodi virtuali) in un cluster, in base al dominio di errore in cui viene posizionato.

Un dominio di errore è un gruppo di hardware e infrastruttura che si distingue da altri domini di errore nello stesso dominio di disponibilità. Ogni dominio di disponibilità dispone di tre domini di errore (nome FAULT-DOMAIN-1, FAULT-DOMAIN-2, FAULT-DOMAIN-3). Ogni istanza di computazione viene posizionata in un dominio di errore. Vedere Domini di errore.

È possibile vincolare i nodi di lavoro su cui eseguire un pod includendo l'etichetta oci.oraclecloud.com/fault-domain nella specifica del pod. Utilizzare l'etichetta oci.oraclecloud.com/fault-domain per specificare il dominio di errore in cui devono essere stati posizionati i nodi di lavoro.

In genere, utilizzerai l'etichetta oci.oraclecloud.com/fault-domain per ottenere alta disponibilità quando un cluster si trova in un'area con un singolo dominio di disponibilità.

Ad esempio:

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

Se si applica la specifica pod di esempio precedente a un cluster, viene creato un pod nginx solo se nel cluster sono presenti nodi di lavoro in FAULT-DOMAIN-3 nel dominio di disponibilità. Se il cluster contiene solo nodi di lavoro in FAULT-DOMAIN-1 o FAULT-DOMAIN-2, il pod non viene creato e rimane in stato in sospeso.

Se un cluster dispone di nodi di lavoro in più domini di disponibilità, includere sia l'etichetta failure-domain.beta.kubernetes.io/zone che l'etichetta oci.oraclecloud.com/fault-domain in una specifica pod per specificare sia il dominio di disponibilità che il dominio di errore dei nodi di lavoro su cui eseguire il pod.

node.kubernetes.io/esclude-from-external-load-balancer

Il motore Kubernetes abilita automaticamente il gate di controllo delle funzioni ServiceNodeExclusion nei cluster creati. Con il gate di controllo delle funzioni ServiceNodeExclusion abilitato in un cluster, è possibile aggiungere un'etichetta a nodi gestiti specifici per escluderli dalla lista di server backend in un set backend del load balancer Oracle Cloud Infrastructure. Minore è il numero di nodi di lavoro inclusi in un set backend, maggiore è la velocità con cui il load balancer può essere aggiornato.

Per escludere un nodo di lavoro dalla lista di server backend in un set backend, aggiungere l'etichetta node.kubernetes.io/exclude-from-external-load-balancers al nodo immettendo:
kubectl label nodes <node-name> node.kubernetes.io/exclude-from-external-load-balancers=true

Ad esempio:

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

Dopo aver aggiunto l'etichetta a un nodo, il nodo viene escluso dalla lista dei server backend indipendentemente dal valore dell'etichetta. Ad esempio, anche se si specifica node.kubernetes.io/exclude-from-external-load-balancers label=false, il nodo di lavoro viene comunque escluso dalla lista dei server backend.

Per rimuovere l'etichetta dal nodo, immettere:

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

Per escludere tutti i nodi di un pool di nodi dalla lista dei server backend, aggiungere node.kubernetes.io/exclude-from-external-load-balancers=true alla proprietà Kubernetes Labels del pool di nodi quando si crea o si modifica il pool di nodi.

Tenere presente che l'etichetta node.kubernetes.io/exclude-from-external-load-balancers non è supportata con i nodi virtuali.