Configurare i domini di topologia

Questa pagina fornisce una panoramica dei domini di topologia e delle linee guida per la loro configurazione.

Per configurare un dominio di topologia, devi attivare il cluster avanzato. Tieni presenti le seguenti limitazioni dell'anteprima avanzata del cluster:

  • Puoi attivare il cluster avanzato al momento della creazione solo per i nuovi cluster 1.31.
  • Una volta attivato il cluster avanzato, non potrai eseguire l'upgrade del cluster alla versione 1.32. Attiva il cluster avanzato solo in un ambiente di test.

Questa pagina è rivolta ad amministratori e architetti che definiscono le soluzioni IT e l'architettura del sistema in base alla strategia aziendale e creano e gestiscono i criteri relativi alle autorizzazioni utente. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud , consulta Ruoli e attività comuni per gli utenti di GKE Enterprise.

Panoramica

Un dominio di topologia è un gruppo di nodi di cluster considerati appartenenti allo stesso raggruppamento logico o fisico, ad esempio un campus o un data center. Un dominio di topologia deve corrispondere a un hardware o software di base che presenta una certa possibilità di errore correlato. Ad esempio:

  • Errore del software, ad esempio server vCenter diversi
  • Guasti hardware come rack diversi, alimentazioni diverse e edifici diversi

In Google Distributed Cloud (solo software) per VMware, nell'ambito della configurazione di un dominio di topologia quando crei un cluster, definisci un'etichetta di topologia. Dopo la creazione del cluster, l'etichetta della topologia viene inserita nelle etichette dei nodi nel dominio della topologia.

Per utilizzare un dominio di topologia durante l'anteprima, hai a disposizione le seguenti opzioni:

  • Utilizza il vincolo predefinito a livello di cluster Kubernetes, "topology.kubernetes.io/zone", come chiave nell'etichetta della topologia. Per ulteriori informazioni, consulta Vincoli predefiniti integrati.

  • Configura PodTemplate nel tuo deployment, nel tuo StatefulSet o nel tuo ReplicaSet, come applicabile con la chiave dell'etichetta della topologia. Nella specifica del pod, utilizza la chiave nell'etichetta della topologia come valore per il campo topologySpreadConstraints.topologyKey. Questa chiave consente allo schedulatore Kubernetes di distribuire i pod nel dominio della topologia per garantire un'elevata disponibilità e prevenire la sovraconcentrazione in una singola area in caso di errore. Per ulteriori informazioni sulla configurazione di topologySpreadConstraints nella specifica del pod, consulta Limiti di distribuzione della topologia del pod nella documentazione di Kubernetes.

Esempi di etichette dei domini di topologia

Supponiamo di creare i seguenti tre domini di topologia quando crei un cluster utente:

...
topologyDomains:
- name: "topology-domain-1"
  topologyLabels:
    "topology.examplepetstore.com/zone": "zone-1"
...
...
topologyDomains:
- name: "topology-domain-2"
  topologyLabels:
    "topology.examplepetstore.com/zone": "zone-2"
...
...
topologyDomains:
- name: "topology-domain-3"
  topologyLabels:
    "topology.examplepetstore.com/zone": "zone-3"
...

Dopo aver creato il cluster, aggiorna la specifica del pod, ad esempio:

...
topologySpreadConstraints:
  topologyKey: "topology.examplepetstore.com/zone"
...

A un livello generale, lo scheduler Kubernetes utilizza topology.examplepetstore.com/zone per separare i nodi del cluster in diversi gruppi, zone-1, zone-2 e zone-3. Lo scheduler suddivide poi i pod in questi tre gruppi di nodi.

Linee guida per la configurazione dei domini di topologia

Per garantire un utilizzo efficace di tutte le risorse dei cluster da parte dello scheduler Kubernetes, consigliamo le seguenti linee guida:

  • I domini di topologia devono essere bilanciati. Devi fornire quantità quasi uguali di capacità della CPU e della RAM in ogni dominio di topologia.
  • Fornisci almeno due e preferibilmente tre domini di topologia.
  • Non eseguire la distribuzione in base a più di una chiave di topologia.
  • I nodi devono avere dimensioni simili in ogni dominio di topologia.
  • Se utilizzi contaminazioni e tolleranze per la separazione dei carichi di lavoro all'interno di un cluster, ogni gruppo di nodi deve soddisfare i requisiti precedenti.

Se queste linee guida non vengono soddisfatte, lo scheduler tenterà comunque di utilizzare la piena capacità del cluster, ma la pianificazione dei pod potrebbe richiedere più tempo e non tutti i pod avranno il comportamento di diffusione previsto.

Passaggi successivi