In questa pagina vengono descritte le immagini dei nodi disponibili per i nodi di Google Kubernetes Engine (GKE).
I nodi GKE Autopilot usano sempre
Container-Optimized OS con containerd (cos_containerd
), che è
il sistema operativo consigliato per i nodi. Se usi GKE
Standard, puoi scegliere l'immagine del sistema operativo da eseguire
durante la creazione del cluster o del pool di nodi. Puoi anche eseguire l'upgrade di un
cluster Standard esistente per utilizzare un'immagine del nodo diversa. Per
istruzioni su come impostare l'immagine del nodo, consulta
Specifica di un'immagine del nodo.
Immagini dei nodi disponibili
GKE offre le seguenti opzioni per le immagini dei nodi in base al sistema operativo cluster:
Sistema operativo | Immagini dei nodi |
---|---|
Container-Optimized OS |
|
Ubuntu |
|
Windows Server |
|
Container-Optimized OS
Il nodo Container-Optimized OS di Google immagini sono basate su una versione recente del kernel Linux e sono ottimizzate per migliorare la sicurezza dei nodi. Immagini Container-Optimized OS sono supportate da un team di Google in grado di applicare patch rapidamente alle immagini per motivi di sicurezza eseguire l'iterazione delle caratteristiche. Le immagini Container-Optimized OS offrono il supporto, la sicurezza e la stabilità rispetto ad altre immagini.
Per informazioni sul progetto Immagine e sulla famiglia, vedi Progetti di origine dell'immagine del nodo.
Varianti di Container-Optimized OS
Container-Optimized OS offre due runtime container. Immagini sono le stesse, ad eccezione della scelta del runtime del container.
- Container-Optimized OS con containerd (
cos_containerd
): il parametro L'immaginecos_containerd
utilizza direttamente containerd come runtime del container integrati con Kubernetes. Cluster GKE Autopilot usa sempre questa immagine. Per saperne di più, consulta Immagini dei nodi containerd. - Container-Optimized OS con Docker (
cos
): l'immaginecos
utilizza il runtime del container Docker.
Ubuntu
Le immagini dei nodi Ubuntu sono state convalidate rispetto al nodo di GKE requisiti delle immagini. Utilizza le immagini dei nodi Ubuntu se i tuoi nodi richiedono supporto per pacchetti XFS, CephFS o Debian.
Per informazioni sul progetto di immagine e sulla famiglia, vedi Supporto delle funzionalità per sistema operativo.
Varianti Ubuntu
Ubuntu offre due runtime container. Le immagini sono le stesse, rispetto alla scelta del runtime del container.
Ubuntu con containerd (
ubuntu_containerd
):ubuntu_containerd
usa containerd come runtime del container. Per ulteriori informazioni, vedi Immagini dei nodi containerd.Ubuntu con Docker (
ubuntu
): l'immagineubuntu
utilizza Docker come dal runtime del container.
Windows Server
Durante la creazione di un cluster utilizzando i pool di nodi di Windows Server puoi usare un canale semestrale (SAC) di Windows Server o Windows Server Immagine del nodo LTSC (Long-Term Servicing Channel). Tutte le immagini dei nodi Windows sono Immagini Windows Server Datacenter Core. Un singolo cluster può avere più Pool di nodi di Windows Server che utilizzano versioni di Windows Server diverse, ma ognuno di un singolo pool di nodi può usare una sola versione di Windows Server. Per maggiori informazioni le informazioni, vedi Scegli l'immagine del tuo nodo Windows.
Con le immagini dei nodi Windows Server LTSC e SAC, vengono offerti due runtime dei container: Docker e containerd. Le immagini sono le stesse, ad eccezione della scelta dal runtime del container.
Immagini di runtime containerd (disponibili in GKE versione 1.21 e successive):
Windows Server LTSC con containerd (
windows_ltsc_containerd
): il parametro L'immaginewindows_ltsc_containerd
utilizza containerd come runtime del container. Attualmente, questo tipo di immagine è mappato a due immagini nodo: Windows Server 2022 e Windows Server 2019. Puoi creare pool di nodi Windows LTSC2022 tramite il comando dell'interfaccia a riga di comando con il flagwindows-os-version
.Per saperne di più sulla creazione di pool di nodi di Windows Server 2022, consulta Creare pool di nodi Windows
Per ulteriori informazioni sulle immagini dei nodi containerd, consulta Immagini dei nodi containerd.
SAC di Windows Server con containerd (
windows_sac_containerd
): il L'immaginewindows_sac_containerd
utilizza containerd come runtime del container.Per saperne di più, consulta Immagini dei nodi containerd.
Immagini di runtime Docker (disponibili in GKE 1.16 e versioni successive):
- Windows Server LTSC con Docker (
windows_ltsc
): ilwindows_ltsc
usa Docker come runtime del container. - SAC di Windows Server con Docker (
windows_sac
):windows_sac
usa Docker come runtime del container.
- Windows Server LTSC con Docker (
Per informazioni sul progetto di immagine e sulla famiglia, vedi Supporto delle funzionalità per sistema operativo.
Confronto delle immagini dei nodi Linux
Le seguenti sezioni mettono a confronto gli aspetti operativi Immagini dei nodi Ubuntu e Container-Optimized OS, tra cui:
- Gestione di pacchetti software
- Inizializzazione del sistema
- Raccolta dei log
- Layout del file system
- Supporto dei driver di archiviazione
Gestione pacchetti software
Le immagini dei nodi cos
e cos_containerd
utilizzano un file system radice minimo con supporto integrato per
il runtime del container Docker (containerd), che funge anche da gestore di pacchetti software
per installare software sull'host. L'immagine Ubuntu utilizza la classe
Gestore di pacchetti APT.
Gestione del software su Container-Optimized OS
L'immagine Container-Optimized OS non fornisce il software di gestione dei pacchetti
ad esempio apt-get
. Non puoi installare software arbitrario sui nodi utilizzando
meccanismi convenzionali. Crea invece un'immagine container che contiene
il software necessario.
Nei cluster Standard solo a scopo di debug,
Container-Optimized OS include
CoreOS Toolbox per l'installazione
ed eseguire strumenti di debug comuni come ping
, psmisc
o pstree
.
Per ulteriori informazioni sul debug dei nodi di Container-Optimized OS, consulta
Guide illustrative per Container-Optimized OS.
Gestione del software su Ubuntu
L'immagine Ubuntu utilizza il gestore di pacchetti APT. Puoi usare apt-get
per installare pacchetti su queste immagini. Ad esempio, per installare ceph
di spedizione:
sudo apt-get update
sudo apt-get install ceph
Inizializzazione del sistema
Sia l'immagine dei nodi Container-Optimized OS sia l'immagine dei nodi Ubuntu utilizzano systemd
per la gestione
le risorse e i servizi di sistema
durante il processo di inizializzazione del sistema.
Entrambe le immagini nodo utilizzano
file di servizi di sistema
per definire services
sul nodo
systemd.targets
per raggruppare le destinazioni di avvio tramite dipendenze.
Raccolta dei log
Le immagini dei nodi Container-Optimized OS e Ubuntu utilizzano systemd-journald
per raccogliere i log a livello di sistema.
Visualizzazione dei log su Container-Optimized OS e Ubuntu
Per visualizzare i log su un nodo con l'immagine del nodo Ubuntu Container-Optimized OS o:
deve utilizzare journalctl
. Ad esempio, per visualizzare i log dei daemon containerd:
sudo journalctl -u containerd
Per visualizzare i log kubelet:
sudo journalctl -u kubelet
Layout del file system
L'immagine del nodo Ubuntu utilizza il layout del file system Linux standard.
Il layout del file system di immagine dei nodi Container-Optimized OS è ottimizzato per migliorare della sicurezza dei nodi. Lo spazio su disco di avvio è suddiviso in tre tipi di partizioni:
- Partizione root, montata in sola lettura.
- Partizioni stateful, scrivibili e stateful
- Partizioni stateless, che sono scrivibili, ma i cui contenuti non vengono mantenuti durante i riavvii
Quando utilizzi Container-Optimized OS, tieni presente il partizionamento se esegui propri servizi che hanno determinate aspettative sul layout del file system all'esterno dei container.
Utilizzo del file system Container-Optimized OS
Di seguito è riportato un elenco di percorsi nel file immagine dei nodi Container-Optimized OS sistema, insieme alle loro proprietà e all'utilizzo consigliato:
Percorso | Proprietà | Finalità |
---|---|---|
/ |
|
Il file system radice è montato in sola lettura per mantenere l'integrità. La il kernel verifica l'integrità del file system radice durante l'avvio e si rifiuta di avviarlo in caso di errori. |
/home /var |
|
Questi percorsi sono pensati per archiviare dati che persistono per tutta la durata del
il disco di avvio. Sono montati da /mnt/stateful_partition . |
/var/lib/google /var/lib/docker /var/lib/toolbox |
|
Questi percorsi sono directory di lavoro per i pacchetti Compute Engine (ad esempio, account Manager), Docker e Toolbox rispettivamente. |
/var/lib/cloud |
|
Questo percorso è la directory di lavoro del pacchetto cloud-init . |
/etc |
|
In genere contiene la configurazione (ad esempio,
systemd servizi definiti tramite cloud-init ).
Ti consigliamo di acquisire lo stato desiderato delle istanze
cloud-init , poiché cloud-init viene applicato quando
quando viene creata un'istanza e quando viene
è stata riavviata. |
/tmp |
|
In genere viene utilizzato come spazio temporaneo e non deve essere usato per archiviare e permanenti. |
/mnt/disks |
|
Puoi montare dischi permanenti nelle directory all'interno di /mnt/disks . |
Supporto dei driver di archiviazione
Ogni immagine del nodo varia a seconda dei tipi di plug-in di archiviazione supportati. La i seguenti termini si applicano quando si descrive il supporto di un'immagine nodo per un driver di archiviazione:
- Sì - Completamente testato/supportato: questo plug-in di archiviazione è completamente supportato e viene testato con l'immagine del nodo specificata.
- Sì - Test limitato: questo plug-in per lo spazio di archiviazione funziona con dell'immagine del nodo specificata, ma sono stati testati solo in modo limitato; tu potrebbero riscontrare comportamenti imprevisti. Per Container-Optimized OS, questi plug-in alla fine saranno completamente testati e supportati.
- Non supportato: questo plug-in di archiviazione non è stato testato o utilizzato con la dell'immagine del nodo specificata e GKE non può fornire alcuna garanzia delle funzionalità. Non è prevista la verifica di questo plug-in per lo spazio di archiviazione.
- No: questo plug-in di archiviazione non funziona con lo spazio di archiviazione specificato. l'immagine del nodo a causa di una limitazione intrinseca del sistema operativo nodo o di Google Cloud.
La seguente matrice descrive in che modo l'immagine di ciascun nodo GKE supporta alcuni comuni plug-in di archiviazione.
Tipo di volume | Funziona su Container-Optimized OS (cos )? |
Funziona su Ubuntu? |
---|---|---|
Disco permanente di Compute Engine (EXT4 o XFS) |
Sì - Completamente testato/supportato (XFS è supportato solo in cos-85 e versioni successive.) Consulta: le note di rilascio di GKE | Sì - Completamente testati/supportati |
NFSv3 | Sì - Completamente testati/supportati | Sì - Completamente testati/supportati |
NFSv4 | Sì - Completamente testati/supportati | Sì - Completamente testati/supportati |
CephFS | No | Sì - Test limitati (Il driver non è installato per impostazione predefinita. Devi installare il client ceph , preferibilmente tramite DaemonSet . |
Cedro | No | No |
Canale in fibra ottica | No | No |
Flocker | Non supportato | Non supportato |
iSCSI | No | No |
RBD | No | No |
Modifiche alle VM del nodo
Le modifiche sul disco di avvio di una VM del nodo non vengono mantenute attraverso il nodo attività ricreative. I nodi vengono ricreati durante l'upgrade manuale, upgrade automatico, riparazione automatica e scalabilità automatica. Inoltre, i nodi vengono ricreati quando abiliti una caratteristica che richiede la nuova creazione dei nodi, ad esempio GKE Sandbox, visibilità intranodi e nodi schermati.
Per mantenere le modifiche durante la ricreazione dei nodi, utilizza un DaemonSet.
Non è consigliabile gestire il software fondamentale fornito da un'immagine del nodo, come
come runtime del kernel o del container (containerd
o docker
). Nodo
vengono testate a fondo e modificando il software fondamentale fornito
l'immagine del nodo sottopone il nodo in uno stato sconosciuto e non verificabile.
I nodi GKE Autopilot non consentono il software nodo
modifica.
Mappa le versioni delle immagini dei nodi Container-Optimized OS alle versioni patch GKE
GKE pubblica un mapping JSON delle versioni delle patch di GKE alle versioni delle immagini dei nodi Container-Optimized OS:
Puoi usare questa mappatura per eseguire l'upgrade a una versione specifica di GKE per ottenere una specifica versione dell'immagine. Ad esempio, se il tuo cluster ha bisogno di un funzione o correzione da una versione immagine, puoi trovare la mappatura ed eseguire l'upgrade a una specifica versione di GKE per ottenere Versione dell'immagine di Container-Optimized OS con le modifiche. Per maggiori dettagli su le release delle immagini di Container-Optimized OS, consulta Release Container-Optimized OS note.
Questo elenco viene aggiornato settimanalmente all'incirca. Per verificare l'aggiornamento del
informazioni, fai riferimento al campo creation_time
nel file JSON.
Note di rilascio delle immagini dei nodi
Container-Optimized OS
Google fornisce una documentazione completa per Container-Optimized OS:
Ubuntu
Periodicamente, Google aggiorna le immagini Ubuntu che possono essere utilizzate su dai nodi del tuo cluster. Consulta le note di rilascio di GKE per informazioni su questi aggiornamenti, incluso un link a un file manifest che elenca e pacchetti installati per impostazione predefinita.
Problemi noti
La connessione casuale viene reimpostata sui nodi GKE utilizzando Container-Optimized OS con il runtime Docker
Il nodo GKE che utilizza Container-Optimized OS con Docker (cos
) può
una connessione TCP casuale si reimposta quando due pod sullo stesso nodo
comunicano usando un servizio ClusterIP di Kubernetes.
Sono interessate le seguenti versioni di GKE:
- 1.20.5-gke.100 o versioni successive
Per risolvere il problema, utilizza una delle seguenti opzioni:
- Eseguire la migrazione da Docker alle immagini dei nodi containerd.
- Attiva la visibilità tra nodi per il cluster.
Progetti di origine dell'immagine nodo
Le immagini dei nodi disponibili per GKE I cluster sono contenuti nei seguenti progetti di origine:
- Immagini di Container-Optimized OS:
gke-node-images
- Immagini Ubuntu:
ubuntu-os-gke-cloud
- Immagini Windows Server:
gke-windows-node-images
Oltre ai progetti di origine elencati sopra, GKE utilizza anche i seguenti progetti di origine per l'utilizzo esclusivo da parte del team GKE:
ubuntu-os-gke-cloud-private
(prenotato per l'utilizzo esclusivo da parte del team GKE)ubuntu-os-gke-cloud-devel
(prenotato per l'utilizzo esclusivo da parte del team GKE)
Potresti dover conoscere i nomi dei progetti di origine durante la configurazione di una sicurezza elevata cluster. I progetti di origine elencati sono soggetti a modifiche.