Kf aktualisieren

In diesem Dokument wird beschrieben, wie Sie eine bestehende Kf-Installation und deren Abhängigkeiten aktualisieren.

Hinweise

Folgendes wird benötigt:

  • Einen vorhandenen Cluster, auf dem Kf installiert ist.
  • Zugriff auf einen Computer, auf dem gcloud, kf und kubectl installiert sind.

Vorhandene Kf-Installation überprüfen

  1. Rufen Sie die Anmeldedaten für die Authentifizierung ab, um mit dem Cluster zu interagieren:

    gcloud container clusters get-credentials CLUSTER_NAME \
      --zone CLUSTER_ZONE \
      --project CLUSTER_PROJECT_ID
  2. Führen Sie kf debug aus und prüfen Sie, ob die Kf-Kommandozeile und die Kf-Serverversionen übereinstimmen.

    • Die CLI-Version ist unter Kf Client aufgeführt.
    • Die Kf-Serverversion ist unter kf["app.kubernetes.io/version"] aufgeführt.
    $ kf debug
    ...
    Version:
      Kf Client:                        v2.0.0
      Server version:                   v1.17.13-gke.1401
      kf["app.kubernetes.io/version"]:  v2.0.0
    ...
    

    Wenn die Kf-Client- und Kf-Serverwerte nicht übereinstimmen, laden Sie die Kf-Befehlszeile herunter und installieren Sie die Version, die der Serverversion entspricht, und wiederholen Sie die Prüfung mit der neuen Befehlszeile. Die CLI-Version muss mit der Serverversion übereinstimmen, bevor Sie fortfahren.

  3. Führen Sie kf doctor aus, um den Status des Clusters zu prüfen. Sorgen Sie dafür, dass alle Tests bestanden werden, bevor Sie fortfahren.

    $ kf doctor
    ...
    === RUN doctor/user
    === RUN doctor/user/ContainerRegistry
    --- PASS: doctor/user
       --- PASS: doctor/user/ContainerRegistry
    ...
    

    Wenn die Meldung Error: environment failed checks angezeigt wird, befolgen Sie die Anweisungen in der Ausgabe doctor, um das Problem zu beheben, und wiederholen Sie den Befehl, bis der Vorgang erfolgreich war.

Upgrade

So führen Sie ein Upgrade von Kf aus:

  • Bereiten Sie die lokale Umgebung und das Upgrade vor.
  • Upgrade der Kf-Abhängigkeiten.
  • Führen Sie ein Upgrade von Kf durch und überprüfen Sie, ob das Upgrade erfolgreich war.

Upgrade vorbereiten

  1. Führen Sie kf version aus, um die aktuelle Version von Kf abzurufen.

    $ kf version
    kf version v2.0.0 linux
    
  2. Die nächste neue Version von Kf finden Sie auf der Downloadseite.

    1. Laden Sie die YAML-Datei der Kf-Release herunter und speichern Sie sie als kf-release.yaml.

    2. Laden Sie die Version von Kf für Ihr Betriebssystem herunter und nennen Sie sie kf-next.

    3. Führen Sie chmod aus, um kf-next ausführbar zu machen:

      chmod +x kf-next
    4. Führen Sie kf-next version aus, um sicherzustellen, dass die heruntergeladene Version der zu installierenden Kf-Version entspricht:

      $ kf-next version
      kf version v2.1.0 linux
      
  3. Erstellen Sie eine Sicherung der config-defaults-Konfigurationskarte, indem Sie Folgendes ausführen:

    kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
  4. Führen Sie kubectl diff -f kf-release.yaml aus und überprüfen Sie die Änderungen, die durch das Upgrade an Ihrem Cluster vorgenommen werden.

  5. Bearbeiten Sie kf-release.yaml und nehmen Sie die gewünschten Änderungen vor.

    Wenn Sie beispielsweise das config-defaults-Attributzuordnungsattribut spaceDefaultToV3Stack in v2.0.0 von Kf auf „false“ festlegen, hat der Release v2.1.0 den Standardwert true.

  6. Führen Sie kubectl diff -f kf-release.yaml noch einmal aus, um dafür zu sorgen, dass alle vorgenommenen Änderungen die erwartete Ausgabe liefern.

Upgrade von Kf-Abhängigkeiten

  1. Öffnen Sie die Downloadseite und suchen Sie die Abhängigkeitsmatrix für die Version von Kf, für das Sie ein Upgrade durchführen.

  2. Aktualisieren Sie Tekton:

    1. Öffnen Sie die Tekton-Releaseseite.

    2. Suchen Sie die Version von Tekton, die in der Kf-Abhängigkeitsmatrix aufgeführt ist.

    3. Führen Sie den Befehl unter der Überschrift „Installations-Einzeiler“ aus, um Tekton zu aktualisieren.

  3. Cloud Service Mesh upgraden:

    1. Öffnen Sie die Cloud Service Mesh-Upgrade-Anleitung.

    2. Wählen Sie im Versions-Drop-down die Version von Cloud Service Mesh aus, die in der Kf-Abhängigkeitsmatrix aufgeführt ist.

    3. Folgen Sie der Anleitung, um ein Upgrade von ASM durchzuführen.

Upgrade ausführen und Zertifikat prüfen

  1. Installieren Sie die aktualisierte Kf-Komponenten mithilfe der geänderten Releasekonfiguration:

    kubectl apply -f kf-release.yaml
  2. Führen Sie doctor aus, um sicherzustellen, dass die neu installierte Version fehlerfrei ist:

    kf-next doctor --retries=12 --delay=5s

    Der Befehl führt mehrmals eine Clusterprüfung durch. Es ist ganz normal, dass einige Versuche fehlschlagen, während die neuen Controller gestartet werden.

    Wenn der Befehl mit der Meldung Error: environment failed checks fehlschlägt, befolgen Sie die Anweisungen in der Ausgabe doctor, um das Problem zu beheben, und wiederholen Sie den Befehl, bis der Vorgang erfolgreich war.

  3. Ersetzen Sie die vorhandene kf-Befehlszeile in Ihrem System durch die kf-next-Befehlszeile.

    chmod +x kf-next
    mv kf-next $(which kf)
  4. Vergleichen Sie die Datei config-defaults-backup.yaml mit kubectl diff -f config-defaults-backup.yaml, damit Ihr Cluster noch ordnungsgemäß konfiguriert ist.

    Wenn Sie beispielsweise alle Änderungen aus der alten Kf-Version beibehalten und ein neues Build-Paket mit der nächsten Kf-Version verwenden konnten:

    $ kubectl diff -f config-defaults-backup.yaml
    diff -u -N /tmp/LIVE/v1.ConfigMap.kf.config-defaults /tmp/MERGED/v1.ConfigMap.kf.config-defaults
    --- /tmp/LIVE/v1.ConfigMap.kf.config-defaults
    +++ /tmp/MERGED/v1.ConfigMap.kf.config-defaults
    @@ -131,6 +131,8 @@
         enable_route_services: false
       spaceBuildpacksV2: |
    -    - name: new_buildpack
    -      url: https://github.com/cloudfoundry/new-buildpack
         - name: staticfile_buildpack
           url: https://github.com/cloudfoundry/staticfile-buildpack
         - name: java_buildpack
    exit status 1