Questa pagina spiega come eseguire il deployment di un'immagine container in Google Kubernetes Engine
(GKE) o a un cluster GKE in cui è abilitata l'Autorizzazione binaria. La
I comandi kubectl
che utilizzi per eseguire il deployment dell'immagine sono gli stessi che utilizzi
per il deployment di immagini in cluster che non utilizzano Autorizzazione binaria.
Prima di iniziare
Assicurati che l'API Binary Authorization sia abilitata nel tuo progetto e che Cluster GKE con Autorizzazione binaria abilitata. Consulta su Google Kubernetes Engine oppure configurando i cluster GKE.
Installa kubectl
per interagire con GKE.
Configura kubectl
Devi aggiornare il file kubeconfig
locale per l'installazione di kubectl
.
Fornisce le credenziali e le informazioni sugli endpoint necessarie per accedere al
in un cluster GKE o in un cluster GKE.
Per configurare kubectl
, esegui questo 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, ad esempio
us-central1-a
- CLUSTER_NAME: il nome del cluster
Cluster GKE
gcloud container fleet memberships get-credentials \ --location LOCATION \ MEMBERSHIP_NAME
Sostituisci quanto segue:
- LOCATION: la località 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_DIGEST
Sostituisci quanto segue:
- POD_NAME: il nome da utilizzare per Carico di lavoro GKE
- IMAGE_PATH: percorso dell'immagine in Artifact Registry Container Registry o un altro registro di sistema.
IMAGE_DIGEST: il digest del file manifest dell'immagine. Ecco alcuni esempi:
- Artifact Registry:
- Percorso:
us-docker.pkg.dev/google-samples/containers/gke/hello-app
- Sintesi:
sha256:37e5287945774f27b418ce567cd77f4bbc9ef44a1bcd1a2312369f31f9cce567
- Percorso:
- Container Registry:
- Percorso:
gcr.io/google-samples/hello-app
- Sintesi:
sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4
- Percorso:
Per scoprire come ottenere il digest di un'immagine in Artifact Registry, vedi Gestione delle immagini; per un'immagine in Container Registry, consulta Elenco delle versioni di un'immagine.
- 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.0
olatest
, poiché Autorizzazione binaria utilizza il digest per cercare attestazioni.Per eseguire il deployment dell'immagine, esegui questo comando
kubectl
:kubectl run ${POD_NAME} \ --image ${IMAGE_PATH}@${IMAGE_DIGEST}
Ora verifica che il deployment sia stato bloccato da Autorizzazione binaria:
kubectl get pods
Vedrai il tuo pod nell'elenco.
Fail open
Se GKE non è in grado di raggiungere Autorizzazione binaria server per qualsiasi motivo o se il server restituisce un errore, GKE non può determinare se Autorizzazione binaria consente o nega l'immagine. In questo caso, l'apertura di GKE non riesce: per impostazione predefinita viene eseguito il deployment dell'immagine, ma viene creata una voce di log Cloud Audit Logs per registrare il motivo per cui l'immagine è stata consentita.
L'applicazione forzata di GKE non si apre a causa di un compromesso tra l'affidabilità e la sicurezza. GKE invia una richiesta Autorizzazione binaria ogni volta che un pod viene creato o aggiornato. Sono inclusi scenari in cui i pod vengono creati o aggiornati automaticamente Controller per i carichi di lavoro Kubernetes, come ReplicaSet e StatefulSet. Se GKE non è stato chiuso invece che aperto, qualsiasi L'interruzione di Autorizzazione binaria arresterà l'esecuzione di questi pod. Inoltre, quando i pod vengono negati, il failover può portare a errori a cascata quando il traffico sovraccarica i pod ancora in esecuzione. Qualsiasi autorizzazione binaria potrebbe attivare un'interruzione completa per il tuo cluster, anche senza il deployment di nuove immagini.
Esegui il deployment di immagini che violano le norme
Autorizzazione binaria supporta una funzionalità nota come deployment di emergenza che consente a un'immagine il deployment, anche se viola il criterio.
Per maggiori informazioni, consulta Utilizzo del deployment di emergenza
Esegui la pulizia
Per eseguire la pulizia, elimina il pod eseguendo questo comando:
kubectl delete pod ${POD_NAME}
Passaggi successivi
- Scopri di più sulla modalità dry run.
- Scopri come utilizzare il CV.
- Scopri come utilizzare la convalida continua legacy (ritirata).
- Scopri come utilizzare le sintesi delle immagini nei manifest di Kubernetes.