Inizia a scoprire Kubernetes

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 nella documentazione di Kubernetes e nella nostra lettura consigliata.

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 di 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 risorse come pod e servizi all'interno di un cluster, ad esempio se hai più team di applicazioni che 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 più piccola di cui può essere eseguito il deployment, che puoi creare e gestire in Kubernetes. Un pod ha uno o più container. Quando un pod esegue più container (ad esempio, un server delle applicazioni e un server proxy), 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 workload in base allo stato desiderato specificato (ad esempio "Vorrei eseguire tre di questo pod su questo cluster, con questo container in ogni pod"). Controller diversi 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 persistente (applicazioni stateful).
  • DaemonSets: un DaemonSet di Kubernetes ti consente di aggiungere pod predefiniti ad alcuni o a tutti i tuoi nodi. Si tratta spesso di servizi "helper" per i tuoi 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 nell'ambito di un deployment.

Scopri di più nella documentazione di Kubernetes:

Servizio Kubernetes

Per impostazione predefinita, non puoi controllare su quale nodo del cluster viene eseguito 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 suoi pod chiamata servizio Kubernetes. Un servizio Kubernetes fornisce un endpoint di rete stabile per un insieme di pod. Esistono diversi tipi di servizio, inclusi i servizi LoadBalancer che espongono un indirizzo IP esterno in modo da poter raggiungere le applicazioni dall'esterno del cluster.

Kubernetes ha anche 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 al di fuori 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 il ciclo di vita del pod (applicazioni stateful), puoi utilizzare un oggetto PersistentVolume di 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 l'archiviazione temporanea, che viene eliminata quando il pod corrispondente termina.

Scopri di più nella documentazione di Kubernetes:

Control plane Kubernetes

Il control plane di Kubernetes è un insieme di componenti di sistema che gestiscono lo stato generale del cluster, tra cui il server API Kubernetes che ti 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 piano di controllo è fornito e gestito da Google Cloud.

Scopri di più nella documentazione di Kubernetes:

Controllo degli accessi basato su ruoli (RBAC)

Kubernetes include un meccanismo di controllo dell'controllo dell'accesso basato sui ruoli (RBAC) che consente di creare criteri di autorizzazione per accedere ai cluster e alle relative risorse. Quando utilizzi GKE, spesso utilizzi una combinazione di Kubernetes RBAC e Identity and Access Management di Google Cloudper proteggere le tue applicazioni.

Scopri di più nella documentazione di Kubernetes:

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

Documentazione di riferimento

  • Glossario Kubernetes: Un elenco completo e standardizzato della terminologia di Kubernetes. Se non hai familiarità con un termine di Kubernetes, ecco dove puoi cercarlo.

Video

  • Learn Kubernetes with Google: Una playlist di guide video di Google che trattano diverse funzionalità di Kubernetes, con materiale per sviluppatori e operatori.

Fumetto

  • Fumetto su Kubernetes: 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).