Auf dieser Seite wird erläutert, wie Sie ein Container-Image in einem Google Kubernetes Engine-Cluster (GKE) oder einem GKE-Cluster bereitstellen, in dem die Binärautorisierung aktiviert ist. Die kubectl
-Befehle, die Sie zum Bereitstellen des Images verwenden, sind mit denen identisch, die Sie zum Bereitstellen von Images in Clustern ohne Binärautorisierung verwenden.
Hinweis
Achten Sie darauf, dass die Binärautorisierung in Ihrem Projekt und ein GKE-Cluster mit aktivierter Binärautorisierung aktiviert ist. Siehe In Google Kubernetes Engine einrichten oder GKE-Cluster einrichten.
Installieren Sie kubectl
für die Interaktion mit GKE.
kubectl
konfigurieren
Sie müssen für Ihre kubectl
-Installation die lokale Datei kubeconfig
aktualisieren.
Damit werden die Anmeldedaten und Endpunktinformationen bereitgestellt, die für den Zugriff auf den Cluster in GKE oder GKE-Clustern erforderlich sind.
Führen Sie den folgenden gcloud
-Befehl aus, um kubectl
zu konfigurieren:
GKE
gcloud container clusters get-credentials \ --zone ZONE \ CLUSTER_NAME
Ersetzen Sie Folgendes:
- ZONE ist der Name der GKE-Zone, in der der Cluster ausgeführt wird, z. B.
us-central1-a
- CLUSTER_NAME ist der Name des Clusters.
GKE-Cluster
gcloud container fleet memberships get-credentials \ --location LOCATION \ MEMBERSHIP_NAME
Ersetzen Sie Folgendes:
- LOCATION: der Standort der Flottenmitgliedschaft des GKE-Clusters, z. B.
global
- MEMBERSHIP_NAME: der Name der Flottenmitgliedschaft des GKE-Clusters
Container-Image bereitstellen
Stellen Sie das Container-Image so bereit:
Konfigurieren Sie Umgebungsvariablen:
POD_NAME=POD_NAME IMAGE_PATH=IMAGE_PATH IMAGE_DIGEST=IMAGE_DIGEST
Ersetzen Sie Folgendes:
- POD_NAME ist der Name, den Sie für die GKE-Arbeitslast verwenden möchten.
- IMAGE_PATH: Pfad des Images in Artifact Registry, Container Registry oder einer anderen Registry.
IMAGE_DIGEST: Der Digest des Image-Manifests. Beispiele:
- Artifact Registry:
- Pfad:
us-docker.pkg.dev/google-samples/containers/gke/hello-app
- Digest:
sha256:37e5287945774f27b418ce567cd77f4bbc9ef44a1bcd1a2312369f31f9cce567
- Pfad:
- Container Registry:
- Pfad:
gcr.io/google-samples/hello-app
- Digest:
sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4
- Pfad:
Wie Sie den Digest eines Images in Artifact Registry erhalten, erfahren Sie unter Images verwalten. Informationen zu einem Image in Container Registry finden Sie unter Versionen eines Images auflisten.
- Artifact Registry:
Stellen Sie das Image mit dem Befehl
kubectl run
bereit.Sie müssen das Image mit dem Digest anstelle eines Tags wie
1.0
oderlatest
bereitstellen, da die Binärautorisierung sowohl den Image-Pfad als auch den Digest zur Suche nach Attestierungen verwendet.Führen Sie den folgenden
kubectl
-Befehl aus, um das Image bereitzustellen:kubectl run ${POD_NAME} \ --image ${IMAGE_PATH}@${IMAGE_DIGEST}
Prüfen Sie, ob das Deployment durch die Binärautorisierung blockiert wurde:
kubectl get pods
Der Pod wird angezeigt.
Fail-Open
Der Erzwingungsprozess schlägt fehl, wenn GKE- oder GKE-Cluster den Binärautorisierungsserver aus irgendeinem Grund nicht erreichen können. Wenn Sie beispielsweise ein Container-Image bereitstellen und der Binärautorisierungserzwinger aufgrund eines Netzwerkausfalls nicht erreichbar ist, wird das Image bereitgestellt, obwohl der Erzwinger es blockiert hätte. Wenn Cloud-Audit-Logs aktiviert sind, gibt der Logeintrag das Image an, das mit einer Fail-Open-Bedingung bereitgestellt wurde.
Images bereitstellen, die gegen die Richtlinie verstoßen
Die Binärautorisierung unterstützt ein Feature mit dem Namen Break-Glass, mit dem ein Image bereitgestellt werden kann, auch wenn es gegen die Richtlinie verstößt.
Weitere Informationen finden Sie unter Break-Glass verwenden.
Bereinigen
Löschen Sie zum Bereinigen den Pod mit dem folgenden Befehl:
kubectl delete pod ${POD_NAME}
Nächste Schritte
- Probelaufmodus
- CV verwenden
- Kontinuierliche Legacy-Validierung verwenden (verworfen).
- Image-Digests in Kubernetes-Manifesten verwenden