Configurare i domini della topologia

Questa pagina fornisce una panoramica dei domini di topologia e le linee guida per configurarli.

La configurazione di un dominio di topologia richiede l'attivazione del cluster avanzato.

Questa pagina è rivolta ad amministratori e architetti che definiscono le soluzioni IT e l'architettura di sistema in conformità con la strategia aziendale, nonché creano e gestiscono le policy relative alle autorizzazioni dell'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 presenta una certa possibilità di errore correlato. Ad esempio:

  • Errore software, ad esempio vCenter Server diversi
  • Guasto hardware, ad esempio rack, fonti di alimentazione ed edifici diversi

In Google Distributed Cloud (solo software) per VMware, nell'ambito della configurazione di un dominio di topologia durante la creazione di 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, 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 saperne di più, consulta Vincoli predefiniti integrati.

  • Configura PodTemplate nel tuo Deployment, StatefulSet o ReplicaSet, a seconda dei casi, 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 scheduler di Kubernetes di distribuire i pod nel dominio della topologia per garantire l'alta affidabilità 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 Vincoli di distribuzione della topologia dei pod nella documentazione di Kubernetes.

Esempi di etichette di dominio di 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"
...

In generale, lo scheduler di Kubernetes utilizza topology.examplepetstore.com/zone per separare i nodi del cluster in gruppi diversi, zone-1, zone-2 e zone-3. Quindi, lo scheduler distribuisce i pod tra 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 di Kubernetes, ti consigliamo di seguire queste linee guida:

  • I domini della topologia devono essere bilanciati. Devi fornire quantità quasi uguali di capacità di CPU e RAM in ogni dominio di topologia.
  • Fornisci almeno due e preferibilmente tre domini di topologia.
  • Non distribuire i pod su 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 workload 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 otterranno il comportamento di distribuzione previsto.

Limitazioni

Non puoi utilizzare gkectl get-config per generare file di configurazione da cluster che utilizzano domini di topologia. Questa limitazione si applica al cluster di amministrazione e a tutti i cluster utente gestiti dal cluster di amministrazione. Conserva i file di configurazione che utilizzi per creare e aggiornare questi cluster, inclusi il file di configurazione dell'infrastruttura vSphere e i file di blocchi IP. Utilizza questi file come fonte di riferimento per la configurazione del cluster.

Passaggi successivi