Questa pagina mostra come personalizzare la configurazione del runtime dei container containerd sui nodi Google Kubernetes Engine (GKE). Dovresti già sapere che cos'è un runtime del container e perché vuoi personalizzarlo.
Informazioni sulla configurazione containerd in GKE
Puoi configurare manualmente un insieme di opzioni nel runtime containerd sui nodi GKE che eseguono un sistema operativo come Container-Optimized OS. La personalizzazione del runtime consente di configurare requisiti speciali come l'accesso ai registri di immagini privati. Per impostare queste opzioni, crea un file YAML chiamato file di configurazione di runtime e passa il file a GKE quando crei o aggiorni un cluster.
Questo metodo di personalizzazione di containerd consente di evitare il deployment di DaemonSet con privilegi, che rappresentano un rischio per la sicurezza. Quando fornisci a GKE un file di configurazione di runtime, GKE ricrea i tuoi nodi e aggiorna il file config.toml
containerd su ogni nodo con la tua configurazione.
La configurazione persiste anche attraverso la terminazione, gli upgrade e le ricreazioni dei nodi.
Il file di configurazione del runtime consente solo di configurare le opzioni in containerd. GKE supporta inoltre la configurazione di opzioni kubelet specifiche e opzioni del kernel Linux di basso livello mediante un file separato chiamato file di configurazione del sistema dei nodi. Per maggiori dettagli, consulta Personalizzazione della configurazione del sistema dei nodi.
Limitazioni
Non puoi utilizzare un file di configurazione di runtime per modificare le impostazioni containerd nelle immagini dei nodi Ubuntu. È supportato solo Container-Optimized OS con containerd. Questa è l'immagine del nodo predefinita per tutti i cluster GKE.
Opzioni di configurazione containerd disponibili
La tabella seguente descrive le opzioni che puoi configurare utilizzando un file di configurazione del runtime:
Opzioni del file di configurazione di runtime | |
---|---|
|
Accedi ai registri di immagini private con credenziali private archiviate in Secret Manager. Per le istruzioni, consulta Accedere a registri privati con certificati CA privati. privateRegistryAccessConfig: enabled: true certificateAuthorityDomainConfig: - gcpSecretManagerCertificateConfig: secretURI: " Questa configurazione include i seguenti campi:
|
Applica la configurazione containerd a nuovi cluster
Questa sezione mostra come applicare un file di configurazione containerd quando crei un nuovo cluster GKE.
Esegui questo comando:
gcloud container clusters create-autoCLUSTER_NAME
\ --location=LOCATION
\ --scopes="cloud-platform" \ --containerd-config-from-file="PATH_TO_CONFIG_FILE
"
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del nuovo cluster.LOCATION
: la località di Compute Engine del nuovo cluster.PATH_TO_CONFIG_FILE
: il percorso del file di configurazione che hai creato, ad esempio~/containerd-configuration.yaml
.
Puoi abilitare la configurazione del registro privato sui nuovi cluster Standard eseguendo il comando gcloud container clusters create
con le stesse opzioni.
Applica la configurazione containerd ai cluster esistenti
Questa sezione mostra come applicare una configurazione containerd a cluster e nodi esistenti.
Controlla gli ambiti di accesso
I cluster esistenti devono avere l'ambito di accesso cloud-platform
per utilizzare questa funzionalità. Questa sezione mostra come controllare gli ambiti di accesso e aggiornare un cluster esistente con un file di configurazione del registro privato nuovo o modificato.
Per maggiori dettagli sugli ambiti di accesso predefiniti nei nuovi cluster, consulta Ambiti di accesso in GKE.
Controlla gli ambiti di accesso di Autopilot
Esegui questo comando:
gcloud container clusters describeCLUSTER_NAME
\ --location=LOCATION
\ --flatten=nodeConfig \ --format='csv[delimiter="\\n",no-heading](oauthScopes)'
Se il tuo cluster non ha l'ambito di accesso https://www.googleapis.com/auth/cloud-platform
, crea un nuovo cluster con questo ambito di accesso.
Controlla gli ambiti di accesso standard
Per verificare gli ambiti di accesso standard ai cluster, controlla un pool di nodi:
gcloud container node-pools describeNODE_POOL_NAME
\ --cluster=CLUSTER_NAME
\ --location=LOCATION
\ --flatten=nodeConfig \ --format='csv[delimiter="\\n",no-heading](oauthScopes)'
Sostituisci NODE_POOL_NAME
con il nome del pool di nodi.
Se il tuo cluster non ha l'ambito di accesso https://www.googleapis.com/auth/cloud-platform
, crea un nuovo pool di nodi con l'ambito di accesso cloud-platform
ed elimina il pool di nodi esistente.
Aggiorna il cluster per utilizzare il file di configurazione
Esegui questo comando:
gcloud container clusters updateCLUSTER_NAME
\ --location=LOCATION
\ --containerd-config-from-file="PATH_TO_CONFIG_FILE
"
Ricrea i nodi nei cluster standard
Se il tuo cluster Standard non utilizza upgrade automatici, devi ricreare manualmente i pool di nodi per applicare la nuova configurazione. Per attivare la ricreazione manuale dei nodi, esegui l'upgrade del cluster alla stessa versione GKE che utilizza già.
gcloud container clusters upgradeCLUSTER_NAME
\ --location=LOCATION
\ --cluster-version=VERSION
Sostituisci VERSION
con la stessa versione della patch GKE già in uso nel cluster.
Disattiva le opzioni di configurazione containerd
Per rimuovere la configurazione personalizzata:
-
Aggiorna il file di configurazione per specificare
enabled: false
nell'elemento di configurazione che vuoi disattivare ed elimina eventuali altri campi nell'elemento, come nell'esempio seguente:privateRegistryAccessConfig: enabled: false
- Applica il file di configurazione aggiornato al cluster. Per le istruzioni, consulta Applicare la configurazione containerd ai cluster esistenti.