Architettura dei cluster GKE


Questa pagina introduce l'architettura di un cluster Google Kubernetes Engine (GKE). I carichi di lavoro Kubernetes containerizzati vengono tutti eseguiti in un cluster GKE.

Questa pagina è rivolta agli amministratori, agli architetti e agli operatori che definiscono le soluzioni IT e l'architettura di sistema. Per scoprire di più sui ruoli comuni e ad esempio di attività a cui facciamo riferimento nei contenuti di Google Cloud, Ruoli e attività utente comuni di GKE Enterprise.

Un cluster GKE è composto da un piano di controllo e un worker chiamati nodi. Il piano di controllo e i nodi costituiscono Kubernetes di orchestrazione dei cluster. GKE Autopilot gestisce dell'intera infrastruttura sottostante dei cluster, compreso il piano di controllo, nodi e tutti i componenti del sistema. Se usi GKE In modalità Standard, GKE gestisce il piano di controllo e il sistema e gestisci i nodi. Il seguente diagramma mostra l'architettura di un cluster GKE:

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

Informazioni sul piano di controllo

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

Piano di controllo e API Kubernetes

Il piano di controllo è l'endpoint unificato per il tuo cluster. Con cui interagisci il piano di controllo tramite le chiamate API Kubernetes. Il piano di controllo esegue Processo del server API Kubernetes (kube-apiserver) per gestire le richieste API. Puoi effettua chiamate API Kubernetes nei seguenti modi:

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

Il processo del server API è l'hub per tutte le comunicazioni per il cluster. Tutti i componenti del cluster interno come nodi, processi di sistema agiscono come client del server API.

Le richieste API comunicano a Kubernetes lo stato desiderato per gli oggetti nel tuo cluster. Kubernetes cerca di mantenere costantemente quello stato. Kubernetes consente di configurare oggetti nell'API in modo imperativo in modo dichiarativo.

Per saperne di più sulla gestione degli oggetti in Kubernetes, consulta quanto segue pagine:

Interazione tra piano di controllo e nodo

Il piano di controllo gestisce ciò che viene eseguito su tutti i nodi del cluster. Il gruppo di controllo pianifica i carichi di lavoro e gestisce il traffico il ciclo di vita, la scalabilità upgrade. Il piano di controllo gestisce anche le risorse di rete e di archiviazione per carichi di lavoro con scale out impegnativi. Il piano di controllo e i nodi comunicano tra loro utilizzando le API Kubernetes.

Interazioni del piano di controllo con Artifact Registry

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

  • Creazione di un nuovo cluster
  • Upgrade delle versioni dei cluster

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

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

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

Best practice:

Esegui il deployment in più regioni per consentire la disponibilità delle applicazioni durante le interruzioni della regione.

Informazioni sui nodi

I nodi sono le macchine worker che eseguono le tue applicazioni containerizzate e altre carichi di lavoro con scale out impegnativi. Le singole macchine vengono Macchine virtuali (VM) Compute Engine creati da GKE. Il piano di controllo gestisce e riceve aggiornamenti sullo stato di autosegnalazione di ciascun nodo.

Un nodo esegue i servizi necessari a supportare i container che costituiscono i carichi di lavoro del cluster. Sono inclusi 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 anche diversi container di sistema eseguiti per nodo. denominati DaemonSet, che offrono funzionalità quali la raccolta di log e la connettività di rete tra cluster.

Best practice:

Utilizza stdout per le applicazioni containerizzate perché stdout consente alla tua piattaforma di gestire i log delle applicazioni.

di Gemini Advanced. La gestione dei nodi varia in base al cluster modalità operativa, come che segue:
Componente nodo Modalità Autopilot Modalità Standard
Ciclo di vita

Completamente gestito da GKE, con incluse:

GKE gestisce quanto segue:

Puoi gestire quanto segue:

Visibilità Visualizza i nodi utilizzando kubectl. Compute Engine sottostante di macchine virtuali non visibili o accessibili nel con gcloud CLI o la console Google Cloud. Visualizza i nodi utilizzando kubectl, gcloud CLI e la console Google Cloud. Visualizza e accedi a Compute Engine sottostante delle VM in esecuzione.
Connettività Nessuna connessione diretta alle VM sottostanti. Connettiti alle VM sottostanti tramite SSH.
Sistema operativo nodo (OS) 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

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

GKE gestisce configurazione, pianificazione, quantità e ciclo di vita.

Scegli e configura i tipi di macchine di Compute Engine quando creazione di pool di nodi. Configura le impostazioni per dimensioni, scalabilità, quantità, pianificazione e posizione in base alle esigenze.