GKE si basa sulla piattaforma di orchestrazione dei container open source Kubernetes e gran parte della documentazione di questo sito presuppone che tu abbia già familiarità con i concetti e la terminologia di base di Kubernetes. In caso contrario, questa pagina fornisce una rapida panoramica dei concetti fondamentali di Kubernetes, con link a letture consigliate per iniziare.
Concetti fondamentali
Di seguito sono riportati alcuni concetti chiave che utilizziamo in tutta la documentazione di GKE. Questo non è un elenco esaustivo dei concetti di Kubernetes; puoi trovare molto altro da leggere ed esplorare negli argomenti forniti dalla documentazione di Kubernetes e nelle nostre letture consigliate.
Nodi e cluster
Tutti i carichi di lavoro Kubernetes vengono eseguiti sui nodi. In GKE, un nodo è una macchina virtuale (VM) di Compute Engine. Su altre piattaforme Kubernetes, un nodo può essere una macchina fisica o virtuale. Ogni nodo è gestito dal control plane Kubernetes e dispone di tutti i componenti necessari per eseguire i pod. Un cluster è un insieme di nodi che possono essere trattati insieme come una singola entità, su cui esegui il deployment di un'applicazione containerizzata.
Scopri di più nella documentazione di Kubernetes:
Spazi dei nomi
Gli spazi dei nomi Kubernetes forniscono un meccanismo per raggruppare e selezionare ulteriormente le risorse come pod e servizi all'interno di un cluster, ad esempio se più team di applicazioni eseguono carichi di lavoro su un singolo cluster.
Scopri di più nella documentazione di Kubernetes:
Pod
In Kubernetes, le applicazioni containerizzate vengono eseguite all'interno di un pod. Un pod è l'unità di calcolo di cui può essere eseguito il deployment più piccola che puoi creare e gestire in Kubernetes. Un pod ha uno o più container. Quando un pod esegue più container (ad esempio, un server applicazioni e un proxy server), i container vengono gestiti come una singola entità e condividono le risorse del pod.
Scopri di più nella documentazione di Kubernetes:
Controller
I controller Kubernetes monitorano e gestiscono lo stato dei cluster e dei carichi di lavoro in base allo stato desiderato specificato (ad esempio, "Vorrei eseguire tre di questi pod su questo cluster, con questo container in ogni pod"). Diversi controller monitorano diversi tipi di risorse Kubernetes, tra cui:
- Deployment: un deployment è un oggetto Kubernetes che rappresenta uno o più pod identici, chiamati repliche. Un deployment esegue più repliche dei pod distribuite tra i nodi di un cluster. Un deployment sostituisce automaticamente tutti i pod che non funzionano o non rispondono.
- StatefulSet: uno StatefulSet è simile a un deployment, ma mantiene un' identità univoca permanente per ciascuno dei suoi pod. Gli StatefulSet possono essere utili nelle applicazioni con stato permanente (applicazioni stateful).
- DaemonSets: un DaemonSet Kubernetes consente di aggiungere pod predefiniti ad alcuni o a tutti i nodi. Questi sono spesso servizi "helper" per i carichi di lavoro, come un daemon di raccolta dei log o un daemon di monitoraggio.
- ReplicaSets: un ReplicaSet è un insieme di pod identici. Un ReplicaSet viene in genere gestito come parte di un deployment.
Scopri di più nella documentazione di Kubernetes:
Servizio Kubernetes
Per impostazione predefinita, non puoi controllare il nodo del cluster su cui è in esecuzione un pod, quindi i pod non hanno indirizzi IP stabili. Per ottenere un indirizzo IP per un'applicazione in esecuzione
in Kubernetes, devi definire un'astrazione di rete sopra i relativi pod
chiamata servizio
Kubernetes. Un servizio Kubernetes fornisce un endpoint di rete stabile per un insieme di pod.
Esistono diversi tipi di
servizi, inclusi
LoadBalancer servizi che espongono un indirizzo IP esterno in modo che tu possa
raggiungere le applicazioni dall'esterno del cluster.
Kubernetes dispone anche di un sistema DNS integrato per la risoluzione degli indirizzi interni, che assegna nomi DNS (ad esempio, helloserver.default.cluster.local) ai servizi. In questo modo, i pod all'interno del cluster possono raggiungere altri pod nel cluster utilizzando un indirizzo stabile. Non puoi utilizzare questo nome DNS all'esterno del cluster, ad esempio da Cloud Shell.
Scopri di più nella documentazione di Kubernetes:
Archiviazione
Se le tue applicazioni devono salvare dati che esistono oltre la durata del pod (applicazioni stateful), puoi utilizzare un oggetto PersistentVolume Kubernetes per eseguire il provisioning di questo spazio di archiviazione. In GKE, l'archiviazione PersistentVolume è supportata dai dischi di Compute Engine. Puoi anche scegliere di utilizzare lo spazio di archiviazione temporaneo, che viene eliminato quando il pod corrispondente termina.
Scopri di più nella documentazione di Kubernetes:
Control plane Kubernetes
Il control plane Kubernetes è un insieme di componenti di sistema che gestiscono lo stato generale del cluster, tra cui il server API Kubernetes che consente di interagire con i cluster e le applicazioni utilizzando kubectl e altri strumenti, uno scheduler per pianificare i pod sui nodi disponibili e i controller che monitorano e gestiscono lo stato del cluster. In GKE, il control plane viene
fornito e gestito da Cloud de Confiance by S3NS.
Scopri di più nella documentazione di Kubernetes:
Controllo dell'accesso basato sui ruoli (RBAC)
Kubernetes include un meccanismo di controllo controllo dell'accesso basato sui ruoli (RBAC) che consente di creare criteri di autorizzazione per l'accesso ai cluster e alle relative risorse. Quando utilizzi GKE, spesso utilizzerai una combinazione di RBAC Kubernetes e Cloud de Confiance by S3NS's Identity and Access Management per proteggere le tue applicazioni.
Scopri di più nella documentazione di Kubernetes:
Letture consigliate
Questa sezione fornisce link a risorse consigliate per saperne di più su Kubernetes. In particolare, Kubernetes.io, il sito web ufficiale di Kubernetes, contiene molti materiali aggiornati e affidabili su tutto ciò che riguarda Kubernetes.
Guide e tutorial
- Panoramica di Kubernetes: una panoramica concettuale completa di Kubernetes. Perché hai bisogno di Kubernetes e cosa può fare è un'ottima introduzione ai problemi che Kubernetes può risolvere.
- Tutorial: Learn Kubernetes basics: ti guida attraverso le nozioni di base di Kubernetes con un semplice esempio.
- Tutorial: Introducing containers: scopri i container e l'orchestrazione dei container con un'applicazione di esempio semplice, terminando con l'esempio in esecuzione su GKE.
- Tutorial di Kubernetes: quando sei pronto per andare oltre le nozioni di base, questa sezione della documentazione di Kubernetes fornisce tutorial su una varietà di argomenti di Kubernetes, dalle applicazioni stateful alla sicurezza.
Documentazione di riferimento
- Glossario di: un elenco completo e standardizzato della terminologia di Kubernetes. Se non hai dubbi su un termine di Kubernetes, ecco dove cercarlo.
Video
- Come utilizzare Kubernetes con Google: una playlist di guide video di Google che trattano diverse funzionalità di Kubernetes, con materiale per sviluppatori e operatori.
Fumetto
- Fumetto di: scopri la storia di Kubernetes e come utilizzarlo per l'integrazione e la distribuzione continue, con l'improbabile aiuto della Dea della Saggezza (e delle applicazioni containerizzate).