Container bereitstellen

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:

  1. 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.

  2. 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.