Auf dieser Seite wird erläutert, wie Sie ein Container-Image in einem Google Kubernetes Engine-Cluster (GKE) bereitstellen, in dem die Binärautorisierung aktiviert ist. Die für das Deployment verwendeten Befehle sind mit denjenigen identisch, mit denen Sie Images in Clustern ohne Binärautorisierung bereitstellen.
Vorbereitung
Installieren Sie kubectl
für die Interaktion mit GKE.
kubectl
konfigurieren
Sie müssen für Ihre kubectl
-Installation die lokale Datei kubeconfig
aktualisieren.
Dadurch werden die Anmeldedaten und Endpunktinformationen bereitgestellt, die für den Zugriff auf den Cluster in GKE erforderlich sind.
Zum Konfigurieren von kubectl
:
gcloud container clusters get-credentials \ --zone ZONE \ CLUSTER_NAME
Dabei gilt:
- ZONE ist der Name der GKE-Zone, in der der Cluster ausgeführt wird (z. B.
us-central1-a1
). - CLUSTER_NAME ist der Name des Clusters.
Container-Image bereitstellen
Sie können das Image mit dem Befehl kubectl run
bereitstellen.
Sie müssen das Image mit dem Digest anstelle eines Tags wie 1.0
oder latest
bereitstellen, da die Binärautorisierung sowohl den Image-Pfad als auch den Digest zur Suche nach Attestierungen verwendet.
So stellen Sie das Image bereit:
kubectl run ${DEPLOYMENT_NAME} \ --image ${IMAGE_PATH}@${IMAGE_DIGEST} --port 8080
Dabei gilt:
DEPLOYMENT_NAME
ist der Name, den Sie für die GKE-Arbeitslast verwenden möchten.IMAGE_PATH
:IMAGE_DIGEST
ist der Pfad und Digest des Images in Container Registry oder einer anderen Registry (z. B.gcr.io/google-samples/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4
).
Richtlinie überschreiben
Die Binärautorisierung unterstützt ein Feature mit dem Namen Break-Glass, mit dem Sie eine Autorisierungsrichtlinie überschreiben können, wenn Sie ein Container-Image bereitstellen. Dieses Feature wird in Übereinstimmung mit den Empfehlungen in der Kubernetes-Spezifikation für die Zugangssteuerung implementiert.
Das folgende Beispiel zeigt, wie Sie einen GKE-Pod mit Break-Glass erstellen, um eine Richtlinie zu überschreiben:
Erstellen Sie eine Konfigurationsdatei im YAML-Format. Diese Datei enthält die Break-Glass-Annotation und weitere Informationen, die zum Erstellen des Pods erforderlich sind:
apiVersion: v1 kind: Pod metadata: name: pod-name annotations: alpha.image-policy.k8s.io/break-glass: "true" spec: containers: - name: container-name image: gcr.io/google-samples/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4
Mit GKE können Sie auch eine Konfiguration für neue Ressourcen im JSON-Format angeben.
Erstellen Sie den Pod mit
kubectl
:kubectl create -f YAML_file
Image auf Ausführung prüfen
Geben Sie Folgendes ein, um zu prüfen, ob das Image ausgeführt wird:
kubectl get pods
Der Befehl gibt eine Nachricht ähnlich der folgenden aus, die angibt, dass das Deployment erfolgreich war:
NAME READY STATUS RESTARTS AGE hello-server-579859fb5b-h2k8s 1/1 Running 0 1m
Audit-Logs abrufen
Weitere Informationen zum Anzeigen des Erzwingungsstatus und der Deployment-Nachrichten in Cloud Logging finden Sie unter Audit-Logs abrufen.