Zustandslose Arbeitslasten aktualisieren

Auf dieser Seite wird erläutert, wie Sie vorhandene zustandslose Arbeitslasten aktualisieren, die in einem GDC-Kubernetes-Cluster (Google Distributed Cloud) ohne Internetverbindung ausgeführt werden. Wenn sich Ihre Anwendung aufgrund von Ressourcennutzung und Konfigurationsoptimierungen weiterentwickelt, müssen Sie die zugrunde liegende Pod-Spezifikation im Kubernetes-Cluster aktualisieren, um diese Änderungen an der Arbeitslast zu berücksichtigen.

Diese Seite richtet sich an Entwickler in der Gruppe der Anwendungsoperatoren, die für die Aktualisierung von Anwendungsarbeitslasten für ihre Organisation verantwortlich sind. Weitere Informationen finden Sie in der Dokumentation zu Zielgruppen für GDC-Air-Gap-Umgebungen.

Hinweise

Wenn Sie Befehle für einen Kubernetes-Cluster ausführen möchten, benötigen Sie die folgenden Ressourcen:

  1. Suchen Sie den Namen des Kubernetes-Clusters oder fragen Sie Ihren Plattformadministrator danach.

  2. Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Kubernetes-Cluster, falls Sie noch keine haben.

  3. Verwenden Sie den kubeconfig-Pfad des Kubernetes-Clusters, um KUBERNETES_CLUSTER_KUBECONFIG in dieser Anleitung zu ersetzen.

Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Namespace Admin“ (namespace-admin) in Ihrem Projekt-Namespace zuzuweisen, um die erforderlichen Berechtigungen zum Aktualisieren zustandsloser Arbeitslasten zu erhalten.

Bereitstellung aktualisieren

So aktualisieren Sie ein Deployment-Objekt:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    apply -f DEPLOYMENT_FILE

Ersetzen Sie Folgendes:

  • KUBERNETES_CLUSTER_KUBECONFIG: die kubeconfig-Datei für den Cluster, in dem die Bereitstellung ausgeführt wird.

  • NAMESPACE: der Projekt-Namespace.

  • DEPLOYMENT_FILE: der Name der Deployment-Manifestdatei, die aktualisiert werden soll.

Der Befehl kubectl apply weist einer Ressource eine Manifestdatei zu. Wenn die angegebene Ressource nicht vorhanden ist, wird sie mit dem Befehl erstellt.

Es gibt auch mehrere andere Möglichkeiten, Ressourcen in Ihrer Bereitstellung zu aktualisieren.

Container-Image aktualisieren

So ändern Sie das Bild eines Deployment-Objekts:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    set image deployment DEPLOYMENT_NAME \
    IMAGE=IMAGE:TAG

Ersetzen Sie Folgendes:

  • KUBERNETES_CLUSTER_KUBECONFIG: die kubeconfig-Datei für den Cluster, in dem die Bereitstellung ausgeführt wird.

  • NAMESPACE: der Projekt-Namespace.

  • DEPLOYMENT_NAME: der Name des Deployment-Objekts, das das Bild enthält.

  • IMAGE ist der Name des Container-Images.

  • TAG: Das Tag, das für das Container-Image aktualisiert werden soll.

Das Aktualisieren des Images eines Deployments ist nützlich, um Auswahlfelder oder Ressourcen wie Anfragen oder Limits zu ändern.

Wenn Sie beispielsweise ein Deployment-Objekt mit dem Namen nginx aktualisieren möchten, damit die Version 1.9.1 verwendet wird, führen Sie Folgendes aus:

kubectl --kubeconfig /tmp/kubeconfig.yaml -n my-namespace \
    set image deployment nginx nginx=nginx:1.9.1

Rollback für ein Update ausführen

Wenn Sie ein Update zurücksetzen möchten, z. B. wenn Ihre Bereitstellung instabil wird, verwenden Sie die kubectl-CLI. Der Rollout-Verlauf eines Deployment-Objekts wird im System gespeichert, sodass Sie jederzeit ein Rollback durchführen können.

So setzen Sie eine laufende oder abgeschlossene Aktualisierung auf die vorherige Version zurück:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME

Ersetzen Sie Folgendes:

  • KUBERNETES_CLUSTER_KUBECONFIG: die kubeconfig-Datei für den Cluster, in dem die Bereitstellung ausgeführt wird.

  • NAMESPACE: der Projekt-Namespace.

  • DEPLOYMENT_NAME: der Name des Deployment-Objekts, für das ein Rollback durchgeführt werden soll.

So führen Sie einen Rollback zu einer bestimmten Überarbeitung durch:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME \
    --to-revision=REVISION_NUMBER

Ersetzen Sie Folgendes:

  • KUBERNETES_CLUSTER_KUBECONFIG: die kubeconfig-Datei für den Cluster, in dem die Bereitstellung ausgeführt wird.

  • NAMESPACE: der Projekt-Namespace.

  • DEPLOYMENT_NAME: der Name des Deployment-Objekts, für das ein Rollback durchgeführt werden soll.

  • REVISION_NUMBER: die Ganzzahl, die die Revision definiert, auf die zurückgesetzt werden soll, z. B. 3.