Architettura dei cluster GKE


Questa pagina presenta l'architettura di un cluster Google Kubernetes Engine (GKE). Tutti i tuoi carichi di lavoro Kubernetes containerizzati vengono eseguiti in un cluster GKE.

Un cluster GKE è costituito da un piano di controllo e da macchine worker denominate nodi. Il piano di controllo e i nodi costituiscono il sistema di orchestrazione dei cluster di Kubernetes. GKE Autopilot gestisce l'intera infrastruttura sottostante dei cluster, compreso il piano di controllo, i nodi e tutti i componenti di sistema. Se utilizzi la modalità GKE Standard, GKE gestisce il piano di controllo e i componenti di sistema, mentre tu gestisci i nodi. Il seguente diagramma mostra l'architettura di un cluster GKE:

Architettura dei cluster GKE. Il piano di controllo è gestito da GKE ed esegue il server API, i controller delle risorse, lo scheduler e l'archiviazione del cluster. I nodi sono gestiti da GKE in modalità Autopilot e dagli utenti in modalità Standard.
     I pod utente eseguono i container nei nodi. Sono disponibili altri servizi Google Cloud per l'integrazione con GKE.

Informazioni sul piano di controllo

Il piano di controllo esegue processi come il server API, lo scheduler e i controller delle risorse principali di Kubernetes. GKE gestisce il ciclo di vita del piano di controllo, dalla creazione all'eliminazione. Sono inclusi gli upgrade alla versione di Kubernetes in esecuzione sul piano di controllo, che GKE esegue automaticamente, oppure manualmente su tua richiesta, se preferisci eseguire l'upgrade prima della pianificazione automatica.

Piano di controllo e API Kubernetes

Il piano di controllo è l'endpoint unificato per il cluster. Puoi interagire con il piano di controllo tramite chiamate API Kubernetes. Il piano di controllo esegue il processo del server API Kubernetes (kube-apiserver) per gestire le richieste API. Puoi effettuare chiamate API Kubernetes nei seguenti modi:

  • Chiamate dirette: HTTP/gRPC
  • Chiamate indirette: client a riga di comando Kubernetes come kubectl o la console Google Cloud.

Il processo del server API è l'hub per tutte le comunicazioni relative al cluster. Tutti i componenti interni del cluster, come nodi, processi di sistema e controller delle applicazioni, agiscono come client del server API.

Le richieste API indicano a Kubernetes lo stato desiderato per gli oggetti nel cluster. Kubernetes cerca di mantenere questo stato ininterrottamente. Kubernetes consente di configurare gli oggetti nell'API in modo imperativo o dichiarativamente.

Per saperne di più sulla gestione degli oggetti in Kubernetes, consulta le seguenti pagine:

Interazione tra piano di controllo e nodo

Il piano di controllo gestisce ciò che viene eseguito su tutti i nodi del cluster. Il piano di controllo pianifica i carichi di lavoro e gestisce il ciclo di vita, la scalabilità e gli upgrade dei carichi di lavoro. Inoltre, il piano di controllo gestisce le risorse di rete e di archiviazione per questi carichi di lavoro. Il piano di controllo e i nodi comunicano tra loro tramite le API Kubernetes.

Interazioni del piano di controllo con Artifact Registry

Quando crei o aggiorni un cluster, GKE estrae le immagini container per il software di sistema Kubernetes in esecuzione sul piano di controllo e i nodi da Artifact Registry di pkg.dev o da Container Registry gcr.io. Un'interruzione che interessa questi registry potrebbe causare l'esito negativo delle seguenti azioni:

  • Creazione di un nuovo cluster
  • Upgrade della versione del cluster

Le interruzioni dei carichi di lavoro potrebbero verificarsi anche senza il tuo intervento, a seconda della natura specifica e della durata dell'interruzione.

Se l'interruzione di pkg.dev Artifact Registry o gcr.io di Container Registry a livello di regione, potremmo reindirizzare le richieste a una zona o regione non interessata dall'interruzione.

Per controllare lo stato dei servizi Google Cloud, vai alla dashboard dello stato di Google Cloud.

Informazioni sui nodi

I nodi sono le macchine worker che eseguono le tue applicazioni containerizzate e altri carichi di lavoro. Le singole macchine sono macchine virtuali (VM) Compute Engine create da GKE. Il piano di controllo gestisce e riceve aggiornamenti sullo stato segnalato autonomamente di ciascun nodo.

Un nodo esegue i servizi necessari per supportare i container che costituiscono i carichi di lavoro del cluster. Questi includono il runtime e l'agente del nodo Kubernetes (kubelet), che comunica con il piano di controllo ed è responsabile dell'avvio e dell'esecuzione dei container pianificati sul nodo.

GKE esegue inoltre una serie di container di sistema eseguiti come agenti per nodo, chiamati DaemonSet, che forniscono funzionalità come la raccolta di log e la connettività di rete intra-cluster.

La gestione dei nodi varia in base alla modalità di funzionamento del cluster, come segue:
Componente del nodo Modalità Autopilot Modalità Standard
Lifecycle

Completamente gestito da GKE, tra cui:

GKE gestisce quanto segue:

Puoi gestire quanto segue:

Visibilità Visualizza i nodi utilizzando kubectl. Macchine virtuali di Compute Engine sottostanti non visibili o accessibili in gcloud CLI o nella console Google Cloud. Visualizza i nodi utilizzando kubectl, gcloud CLI e la console Google Cloud. Visualizza e accedi alle VM sottostanti di Compute Engine.
Connettività Nessuna connessione diretta alle VM sottostanti. Connettiti alle VM sottostanti tramite SSH.
Sistema operativo nodo Gestito da GKE. Tutti i nodi utilizzano Container-Optimized OS con containerd (cos_containerd). Scegli un sistema operativo per i tuoi nodi.
Selezione dell'hardware della macchina

Richiedi classi di computing nei pod in base al caso d'uso.

GKE gestisce la configurazione, la pianificazione, la quantità e il ciclo di vita delle macchine.

Scegli e configura i tipi di macchine Compute Engine durante la creazione dei pool di nodi. Configura le impostazioni per dimensionamento, scalabilità, quantità, pianificazione e località in base alle esigenze.