Questa pagina spiega come eseguire il deployment di un'immagine container in un cluster GKE (su
Google Cloud o Google Distributed Cloud) in cui è abilitata l'Autorizzazione binaria.
I comandi kubectl che utilizzi per eseguire il deployment dell'immagine sono gli stessi che utilizzi per eseguire il deployment delle immagini nei cluster che non utilizzano l'Autorizzazione binaria.
Prima di iniziare
Assicurati di aver abilitato l'API Binary Authorization nel tuo progetto e di avere un cluster GKE con l'Autorizzazione binaria abilitata. Consulta la sezione Configurazione su Google Kubernetes Engine o Configurazione su Distributed Cloud.
Installa kubectl per interagire con GKE.
Configura kubectl
Devi aggiornare il file kubeconfig locale per l'installazione di kubectl.
Questo fornisce le credenziali e le informazioni sull'endpoint necessarie per accedere al cluster in GKE o Distributed Cloud.
Per configurare kubectl, esegui il seguente comando gcloud:
GKE
gcloud container clusters get-credentials \
--zone ZONE \
CLUSTER_NAME
Sostituisci quanto segue:
- ZONE: il nome della zona GKE in cui è in esecuzione il
cluster, ad esempio
us-central1-a - CLUSTER_NAME: il nome del cluster
Distributed Cloud
gcloud container fleet memberships get-credentials \
--location LOCATION \
MEMBERSHIP_NAME
Sostituisci quanto segue:
- LOCATION: la posizione dell'appartenenza al parco risorse del cluster GKE, ad esempio
global - MEMBERSHIP_NAME: il nome dell'appartenenza al parco risorse del cluster GKE
Esegui il deployment dell'immagine container
Esegui il deployment dell'immagine container nel seguente modo:
Configura le variabili di ambiente:
POD_NAME=POD_NAME IMAGE_PATH=IMAGE_PATH IMAGE_DIGEST=IMAGE_DIGESTSostituisci quanto segue:
- POD_NAME: il nome che vuoi utilizzare per il carico di lavoro GKE
- IMAGE_PATH: il percorso dell'immagine in Artifact Registry o in un altro registro.
IMAGE_DIGEST: il digest del manifest dell'immagine. Di seguito è riportato un esempio:
- Artifact Registry:
- Percorso:
us-docker.pkg.dev/google-samples/containers/gke/hello-app - Digest:
sha256:37e5287945774f27b418ce567cd77f4bbc9ef44a1bcd1a2312369f31f9cce567
- Percorso:
Per scoprire come ottenere il digest di un'immagine in Artifact Registry, consulta la sezione Gestire le immagini.
- Artifact Registry:
Esegui il deployment dell'immagine utilizzando il comando
kubectl run.Devi eseguire il deployment dell'immagine utilizzando il digest anziché un tag come
1.0olatest, poiché l'Autorizzazione binaria utilizza il digest per cercare le attestazioni.Per eseguire il deployment dell'immagine, esegui il seguente comando
kubectl:kubectl run ${POD_NAME} \ --image ${IMAGE_PATH}@${IMAGE_DIGEST}Ora verifica che il deployment sia stato bloccato dall'Autorizzazione binaria:
kubectl get pods
Viene visualizzato il pod.
Fail open
Se GKE non riesce a raggiungere il server di Autorizzazione binaria per qualsiasi motivo o se il server restituisce un errore, GKE non può determinare se l'Autorizzazione binaria consentirebbe o negherebbe l'immagine. In questo caso, GKE esegue il fail open: per impostazione predefinita, consente il deployment dell'immagine, ma crea una voce di log in Cloud Audit Logs per registrare il motivo per cui l'immagine è stata consentita.
L'applicazione di GKE esegue il fail open a causa di un compromesso tra affidabilità e sicurezza. GKE invia una richiesta all'Autorizzazione binaria ogni volta che viene creato o aggiornato un pod. Sono inclusi gli scenari in cui i pod vengono creati o aggiornati automaticamente dai controller dei carichi di lavoro Kubernetes di livello superiore, come ReplicaSet e StatefulSet. Se GKE avesse eseguito il fail close anziché il fail open, qualsiasi interruzione dell'Autorizzazione binaria impedirebbe l'esecuzione di questi pod. Inoltre, quando i pod vengono negati, il failover può causare errori a cascata, poiché il traffico reindirizzato sovraccarica i pod ancora in esecuzione. Qualsiasi interruzione dell'Autorizzazione binaria potrebbe causare un'interruzione completa del cluster, anche senza eseguire il deployment di nuove immagini.
Esegui il deployment di immagini che violano le norme
L'Autorizzazione binaria supporta una funzionalità nota come breakglass che consente il deployment di un'immagine, anche se viola le norme.
Per ulteriori informazioni, consulta la sezione Utilizzare la funzionalità breakglass.
Libera spazio
Per liberare spazio, elimina il pod eseguendo il seguente comando:
kubectl delete pod ${POD_NAME}
Passaggi successivi
- Scopri di più sulla modalità di prova .
- Scopri come utilizzare CV.
- Scopri come utilizzare la convalida continua legacy (ritirata).
- Scopri come utilizzare i digest delle immagini nei manifest di Kubernetes.