Configurare i domini di topologia

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

La configurazione di un dominio di topologia richiede l'attivazione del cluster avanzato. Tieni presenti le seguenti limitazioni relative all'anteprima avanzata del cluster:

  • Puoi abilitare il cluster avanzato al momento della creazione del cluster solo per i nuovi cluster 1.31.
  • Una volta abilitato 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 è destinata agli amministratori e agli architetti che definiscono soluzioni IT e architetture di sistema in linea con la strategia aziendale e che creano e gestiscono 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 degli utenti GKE.

Panoramica

Un dominio di topologia è un gruppo di nodi del cluster considerati parte dello stesso raggruppamento logico o fisico, ad esempio un campus o un data center. Un dominio di topologia deve corrispondere a un hardware o software sottostante che ha una certa possibilità di guasto correlato. Ad esempio:

  • Guasto del software, ad esempio server vCenter diversi
  • Guasto hardware, ad esempio rack diversi, fonti di alimentazione diverse edifici diversi

In Google Distributed Cloud (solo software) per VMware, quando crei un cluster, definisci un'etichetta di topologia nell'ambito della configurazione di un dominio 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, hai le seguenti opzioni:

  • Versione 1.32 e successive: configura i vincoli di distribuzione della topologia predefinita a livello di cluster. Per maggiori dettagli, vedi schedulerConfiguration.

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

  • Configura PodTemplate nel deployment, in StatefulSet o in ReplicaSet, a seconda dei casi, con la chiave dell'etichetta di topologia. Nella specifica del pod, utilizzi la chiave nell'etichetta della topologia come valore per il campo topologySpreadConstraints.topologyKey. Questa chiave consente allo scheduler Kubernetes di distribuire i pod nel dominio della topologia per garantire un'elevata disponibilità ed evitare un'eccessiva concentrazione in una singola area in caso di errore. Per ulteriori informazioni sulla configurazione di topologySpreadConstraints nella specifica del pod, consulta la sezione Vincoli di distribuzione della topologia dei pod nella documentazione di Kubernetes.

Esempio di etichette di dominio della topologia

Supponiamo di creare i seguenti tre domini di topologia durante la creazione di 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 livello generale, lo scheduler Kubernetes utilizza topology.examplepetstore.com/zone per separare i nodi del cluster in gruppi diversi: zone-1, zone-2 e zone-3. Dopodiché, lo scheduler distribuisce i pod in questi tre gruppi di nodi.

Linee guida per la configurazione dei domini di topologia

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

  • I domini della topologia devono essere bilanciati. Devi fornire quantità quasi uguali di capacità di CPU e RAM in ogni dominio della topologia.
  • Fornisci almeno due e preferibilmente tre domini di topologia.
  • Non distribuire per più di una chiave di topologia.
  • I nodi devono avere dimensioni simili in ogni dominio di topologia.
  • Se utilizzi taint 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 rispettate, lo scheduler tenterà comunque di utilizzare la capacità completa del cluster, ma la pianificazione dei pod potrebbe richiedere più tempo e non tutti i pod avranno il comportamento di distribuzione previsto.

Passaggi successivi