Upgrade von Anthos-Cluster in AWS

Wenn Sie Ihre Anthos-Cluster in der AWS-Umgebung (GKE auf AWS) aktualisieren möchten, aktualisieren Sie zuerst den verwalteten Dienst und aktualisieren Sie anschließend Ihre Nutzercluster.

Verwaltungsdienst

In den folgenden Abschnitten führen Sie ein Upgrade Ihres Verwaltungsdiensts durch.

Hinweis

Führen Sie die folgenden Schritte aus, um eine Verbindung zu Ihren Anthos Clusters on AWS-Ressourcen herzustellen. Wählen Sie aus, ob Sie eine bestehende AWS-VPC (oder eine direkte Verbindung zu Ihrer VPC) verwenden oder beim Erstellen Ihres Verwaltungsdienstes eine dedizierte VPC angelegt haben.

Vorhandene VPC

Wenn Sie eine direkte Verbindung oder eine VPN-Verbindung zu einer vorhandenen VPC verwenden, lassen Sie die Zeile env HTTP_PROXY=http://localhost:8118 in den Befehlen in diesem Thema weg.

Dedizierte VPC

Wenn Sie einen Verwaltungsdienst in einer dedizierten VPC erstellen, enthält Anthos-Cluster auf AWS einen Bastion-Host in einem öffentlichen Subnetz.

So stellen Sie eine Verbindung zu Ihrem Verwaltungsdienst her:

  1. Wechseln Sie in das Verzeichnis mit Ihrer Anthos-Cluster auf AWS-Konfiguration. Sie haben dieses Verzeichnis bei der Installation des Verwaltungsdienstes erstellt.

    cd anthos-aws

  2. Führen Sie das Skript bastion-tunnel.sh aus, um den Tunnel zu öffnen. Über den Tunnel erfolgt eine Weiterleitung zu localhost:8118.

    Führen Sie den folgenden Befehl aus, um einen Tunnel zum Bastion Host zu öffnen:

    ./bastion-tunnel.sh -N
    

    In diesem Fenster werden Nachrichten aus dem SSH-Tunnel angezeigt. Wenn Sie bereit sind, die Verbindung zu trennen, beenden Sie den Vorgang mit Strg+C oder schließen Sie das Fenster.

  3. Öffnen Sie ein neues Terminal und wechseln Sie in das Verzeichnis anthos-aws:

    cd anthos-aws
  4. Prüfen Sie, ob Sie mit kubectl eine Verbindung zum Cluster herstellen können.

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

    Die Ausgabe enthält die URL für den API-Server des Verwaltungsdiensts.

Verwaltungsdienst upgraden

Laden Sie zum Aktualisieren Ihres Verwaltungsdiensts eine neue Version von anthos-gke herunter, bearbeiten Sie Ihre anthos-gke.yaml-Datei und übernehmen Sie die Änderungen.

Neue Version von Anthos GKE herunterladen

Die neueste Version des anthos-gke-Tools ist aws-1.14.1-gke.0. Führen Sie die folgenden Schritte aus, um eine neue Version von anthos-gke herunterzuladen:

Das anthos-gke-Befehlszeilentool unterstützt nur Linux und macOS.

  1. Laden Sie die Binärdatei aus Cloud Storage herunter.

    Linux

    gsutil cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .
    

    macOS

    gsutil cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .
    
  2. Aktualisieren Sie die Berechtigungen von anthos-gke und kopieren Sie sie in /usr/local/bin.

    chmod 755 anthos-gke
    sudo mv anthos-gke /usr/local/bin
    
  3. Prüfen Sie, ob die Version aws-1.14.1-gke.0 ist.

    anthos-gke version
    

Verwaltungsdienst upgraden

Führen Sie die folgenden Schritte aus, um Ihren Cluster zu aktualisieren:

  1. Wechseln Sie in das Verzeichnis mit Ihrer Konfiguration von Anthos-Cluster on AWS. Sie haben dieses Verzeichnis bei der Installation des Verwaltungsdienstes erstellt.
    cd anthos-aws
  2. Öffnen Sie anthos-gke.yaml in einem Texteditor. Ändern Sie den Wert von spec.version in aws-1.14.1-gke.0.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSManagementService
    metadata:
     name: management
    spec:
     version: aws-1.14.1-gke.0
     region: aws-region
     ...
    
  3. Führen Sie anthos-gke aws management init aus, um das Objekt AWSManagementService zu validieren, und aktualisieren Sie die Datei anthos-gke.status.yaml.

    anthos-gke aws management init
    
  4. Führen Sie anthos-gke aws management apply aus, um den Verwaltungsdienst für AWS zu aktualisieren.

    anthos-gke aws management apply
    

    Der Befehl anthos-gke beginnt mit dem Upgraden Ihres Verwaltungsdiensts. Das Upgrade kann bis zu zehn Minuten dauern.

Nutzercluster

In den folgenden Abschnitten aktualisieren Sie Ihre Nutzercluster.

Hinweis

Bevor Sie diese Schritte ausführen können, benötigen Sie einen Verwaltungsdienst und mindestens einen Nutzercluster.

Unterstützte Kubernetes-Versionen

Anthos-Cluster in AWS aws-1.14.1-gke.0 unterstützen die folgenden Kubernetes-Versionen:

  • 1.23.15-gke.2000
  • 1.24.9-gke.2100
  • 1.25.5-gke.2100

Informationen zu früheren unterstützten Versionen finden Sie unter Versionshinweise.

Komponentenupgrades

In diesem Abschnitt wird das Upgrade von AWSClustern und AWSNodePools beschrieben.

AWSCluster

Sie können einen AWS-Cluster auf eine neue Version von Anthos Clusters on AWS aktualisieren, ohne Ihre AWSNodePools zu aktualisieren.

AWSNodePools

Sie können einen AWSNodePool nicht auf eine neuere Version als Ihren AWSCluster aktualisieren. Wenn Sie Ihre AWSNodePools aktualisieren möchten, müssen Sie zuerst Ihren AWSCluster aktualisieren.

Die Version Ihrer AWSNodePools darf höchstens zwei Nebenversionen niedriger als Ihre AWSCluster-Version sein.

Vorhandenen AWSCluster und AWSNodePool upgraden

Aktualisieren Sie zum Aktualisieren Ihres Clusters das Feld version von AWSCluster- und AWSNodePool-Objekten in Ihrem Verwaltungsdienst.

AWSCluster

So führen Sie ein Upgrade für einen AWSCluster durch:

  1. Verwenden Sie anthos-gke im Verzeichnis anthos-aws, um den Kontext zu Ihrem Verwaltungsdienst zu wechseln.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Öffnen Sie die YAML-Datei, die Ihren AWSCluster erstellt hat, in einem Texteditor. Wenn Sie Ihre ursprüngliche YAML-Datei nicht haben, können Sie kubectl edit verwenden.

    YAML bearbeiten

    Wenn Sie der Anleitung unter Nutzercluster erstellen gefolgt sind, hat Ihre YAML-Datei den Namen cluster-0.yaml. Öffnen Sie diese Datei in einem Texteditor.

    kubectl edit

    Führen Sie den folgenden Befehl aus, um Ihren AWSCluster mit kubectl edit zu bearbeiten:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-name
    

    Ersetzen Sie cluster-name durch Ihren AWSCluster. Führen Sie beispielsweise den folgenden Befehl aus, um den Standardcluster cluster-0 zu bearbeiten:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. Aktualisieren Sie das Feld spec.controlPlane.version auf eine neue Version von Anthos-Cluster on AWS. Die neueste Version ist 1.25.5-gke.2100.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    metadata:
      name: cluster-0
    spec:
      region: us-east-1
      controlPlane:
        version: gke_version
        instanceType: t3.medium
      ...
    

    Ersetzen Sie gke-version durch die gewünschte Kubernetes-Version. Die neueste unterstützte Kubernetes-Version ist 1.25.5-gke.2100.

  4. Speichern Sie die Datei. Wenn Sie kubectl edit verwenden, wendet kubectl die Änderungen automatisch an. Wenn Sie die YAML-Datei bearbeiten, wenden Sie sie mit dem folgenden Befehl auf Ihren Verwaltungsdienst an:

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl apply -f cluster-0.yaml
    

    Der Verwaltungsdienst aktualisiert dann Ihren AWSCluster.

AWSNodePool

So aktualisieren Sie einen AWSNodePool:

  1. Verwenden Sie anthos-gke im Verzeichnis anthos-aws, um den Kontext zu Ihrem Verwaltungsdienst zu wechseln.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Öffnen Sie die YAML-Datei, die Ihren AWSNodePool erstellt hat, in einem Texteditor. Wenn Sie der Anleitung unter Nutzercluster erstellen gefolgt sind, hat diese Datei den Namen cluster-0.yaml.

  3. Aktualisieren Sie den Wert von spec.version in Ihren AWSNodePool-Ressourcen.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    metadata:
      name: cluster-0-pool-0
    spec:
      clusterName: cluster-0
      region: us-east-1
      version: gke-version
      ...
    

    Ersetzen Sie gke-version durch die gewünschte Kubernetes-Version. Die neueste unterstützte Kubernetes-Version ist 1.25.5-gke.2100.

  4. Wenden Sie die neue Konfiguration mit kubectl auf Ihren Verwaltungsdienst an.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    

    Der Verwaltungsdienst aktualisiert dann Ihren AWSNodePool für jeden Knoten nacheinander. Bevor ein Knoten heruntergefahren wird, erhalten Pods, die auf diesem Knoten ausgeführt werden, einen SIGTERM. Wenn ein Pod nach einem Kulanzzeitraum nicht heruntergefahren wurde, erhält er ein SIGKILL.

Status anzeigen

Führen Sie kubectl get AWSClusters in Ihrem Verwaltungsdienst aus, um den Status eines Upgrades abzurufen.

env HTTPS_PROXY=http://localhost:8118 \
    kubectl get AWSClusters

Die Ausgabe enthält den Namen, den Status, das Alter, die Version und den Endpunkt jedes Clusters. Die folgende Ausgabe enthält beispielsweise einen AWSCluster namens cluster-0.

NAME        STATE          AGE     VERSION         ENDPOINT
cluster-0   Upgrading   2m41s      1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com

Das Upgrade des Nutzerclusters ist abgeschlossen, wenn der STATE Ihrer Cluster bereitgestellt ist.