Questa pagina illustra l'architettura di un cluster Google Kubernetes Engine (GKE). Tutti i carichi di lavoro Kubernetes containerizzati vengono 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 sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud, consulta 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 il sistema di orchestrazione dei cluster Kubernetes. 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. Questo diagramma illustra in modo specifico dove esistono le risorse e chi le gestisce, anziché rappresentare il flusso di traffico:
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 ciclo di vita del piano di controllo 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 del cluster. Con cui interagisci
il piano di controllo
tramite le chiamate API Kubernetes. Il control plane esegue il 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 del cluster. Tutti i componenti interni del cluster, come nodi, processi di sistema e controller di applicazioni, agiscono come client del server API.
Le richieste API comunicano a Kubernetes lo stato desiderato per gli oggetti nel tuo cluster. Kubernetes tenta di mantenere costantemente questo 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 le seguenti pagine:
Interazione tra il piano di controllo e i nodi
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 loro ciclo di vita, la scalabilità e gli upgrade. Il piano di controllo gestisce anche le risorse di rete e di archiviazione per questi carichi di lavoro. 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 estrae le immagini container per il software di sistema Kubernetes in esecuzione sul piano di controllo e sui nodi da pkg.dev
Artifact Registry 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 della natura e della durata specifiche 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.
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 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 auto-segnalato di ciascun nodo.
Un nodo esegue i servizi necessari per 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 una serie di contenitori di sistema che funzionano come agenti per nodo, chiamati DaemonSet, che forniscono funzionalità come la raccolta dei log e la connettività di rete intra-cluster.
Utilizza stdout
per le applicazioni containerizzate perché stdout
consente alla tua piattaforma di gestire i log delle applicazioni.
Componente nodo | Modalità Autopilot | Modalità Standard |
---|---|---|
Ciclo di vita | Completamente gestito da GKE, tra cui:
|
GKE gestisce quanto segue:
Puoi gestire quanto segue:
|
Visibilità | Visualizza i nodi utilizzando kubectl . Macchine virtuali Compute Engine di base
non visibili o accessibili nell'interfaccia a riga di comando gcloud o nella 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) | Gestita 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 la configurazione, la pianificazione, la quantità e il ciclo di vita delle macchine. | 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. |