In diesem Dokument wird beschrieben, wie Sie vorhandene zustandslose Arbeitslasten aktualisieren, die in einem GDC-Kubernetes-Cluster (Google Distributed Cloud) mit Air Gap 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 widerzuspiegeln.
Dieses Dokument 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 unter Dokumentation zu Zielgruppen für GDC mit Air Gap.
Hinweis
Zum Ausführen der Aufgaben in diesem Dokument müssen Sie die erforderlichen Berechtigungen anfordern und Ihre Umgebung vorbereiten.
IAM-Rollen anfordern
Sie benötigen bestimmte Rollen, um die Berechtigungen zum Aktualisieren zustandsloser Arbeitslasten zu erhalten. Welche Rollen Sie benötigen, hängt davon ab, ob Sie in einem freigegebenen Cluster auf Organisationsebene oder in einem Standardcluster auf Projektebene arbeiten. Weitere Informationen finden Sie unter Kubernetes-Clusterkonfigurationen.
Freigegebene Clusterrollen
Bitten Sie Ihren IAM-Projektadministrator, Ihnen die Rolle Namespace-Administrator (namespace-admin) zuzuweisen, um Arbeitslasten in einem freigegebenen Cluster zu erstellen, zu löschen, zu bearbeiten oder anzusehen.
Diese Rolle ist an Ihren Projekt-Namespace gebunden.
Standardclusterrollen
Bitten Sie den IAM-Projektadministrator, Ihnen die Rolle Cluster-Entwickler (cluster-developer) zuzuweisen, um Arbeitslasten in einem Standardcluster zu erstellen, zu löschen, zu bearbeiten oder anzusehen. Diese Rolle ist an Ihren Projekt-Namespace gebunden.
Umgebung vorbereiten
Wenn Sie Befehle für einen Kubernetes-Cluster über die API ausführen möchten, benötigen Sie die folgenden Ressourcen:
Suchen Sie den Namen des Kubernetes-Clusters oder fragen Sie ein Mitglied der Plattformadministratorgruppe nach dem Clusternamen.
Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Kubernetes-Cluster.
Ersetzen Sie
KUBERNETES_CLUSTER_KUBECONFIGin dieser Anleitung durch den kubeconfig-Pfad des Kubernetes-Clusters.
Bereitstellung aktualisieren
Führen Sie folgenden Befehl aus, um ein Deployment-Objekt zu aktualisieren:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
apply -f DEPLOYMENT_FILE
Ersetzen Sie Folgendes:
KUBERNETES_CLUSTER_KUBECONFIG: die kubeconfig-Datei für den Cluster, auf dem das Deployment ausgeführt wird.NAMESPACE: der Namespace. Bei freigegebenen Clustern muss dies ein Projekt-Namespace sein. Bei Standardclustern kann es sich um einen beliebigen Namespace handeln.DEPLOYMENT_FILE: der Name der zu aktualisierendenDeployment-Manifestdatei.
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 Ihrem Deployment zu aktualisieren.
Container-Image aktualisieren
Führen Sie den folgenden Befehl aus, um das Image eines Deployment-Objekts zu ändern:
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, auf dem das Deployment ausgeführt wird.NAMESPACE: der Namespace. Bei freigegebenen Clustern muss dies ein Projekt-Namespace sein. Bei Standardclustern kann es sich um einen beliebigen Namespace handeln.DEPLOYMENT_NAME: der Name desDeployment-Objekts, das das Image enthält.IMAGEist 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 auf die Version 1.9.1 aktualisieren möchten, 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 rückgängig machen möchten, z. B. wenn Ihre Bereitstellung instabil wird, verwenden Sie die kubectl-CLI. Der Roll-out-Verlauf eines Deployment-Objekts wird im System beibehalten, sodass Sie jederzeit ein Rollback durchführen können.
Führen Sie folgenden Befehl aus, um ein laufendes oder abgeschlossenes Update auf die vorherige Überarbeitung zurückzusetzen:
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, auf dem das Deployment ausgeführt wird.NAMESPACE: der Namespace. Bei freigegebenen Clustern muss dies ein Projekt-Namespace sein. Bei Standardclustern kann es sich um einen beliebigen Namespace handeln.DEPLOYMENT_NAME: der Name desDeployment-Objekts, das zurückgesetzt werden soll.
Führen Sie folgenden Befehl aus, um ein Rollback zu einer bestimmten Version durchzuführen:
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, auf dem das Deployment ausgeführt wird.NAMESPACE: der Namespace. Bei freigegebenen Clustern muss dies ein Projekt-Namespace sein. Bei Standardclustern kann es sich um einen beliebigen Namespace handeln.DEPLOYMENT_NAME: der Name desDeployment-Objekts, für das ein Rollback ausgeführt werden soll.REVISION_NUMBER: die Ganzzahl, die die Version definiert, auf die ein Rollback durchgeführt werden soll, z. B.3.