アップグレード

Verrazzanoをアップグレードする方法

Verrazzanoのインストールは、cert-managerなどのコンポーネントのスタックで構成されます。各コンポーネントには特定のリリース・バージョンがあり、Verrazzano全体のバージョンとは異なる場合があります。Verrazzanoプラットフォーム・オペレータは、Verrazzanoバージョンに関連付けられた各コンポーネントのバージョンを認識しています。最初のVerrazzanoインストールを実行すると、プラットフォーム・オペレータによって各コンポーネントの適切なバージョンがインストールされます。インストール後、1つ以上のコンポーネント・イメージまたはHelmチャートを更新する必要がある場合があります。この更新は、プラットフォーム・オペレータによっても行われ、upgradeと呼ばれます。現在、Verrazzanoはパッチレベルのアップグレードのみを行います。ここでは、コンポーネントに対してhelm upgradeコマンドを発行できます。通常、パッチレベルのアップグレードでは、コンポーネント・イメージが新しいバージョンに置き換えられます。

アプリケーションおよびシステム・ポッドの再起動

Verrazzanoに新しいバージョンのIstioがある場合、Istioプロキシ・サイドカーを含むすべてのポッドを再起動する必要があります。こうすることで、プロキシ・サイドカーの新しいバージョンがポッドに注入されます。Istioプロキシ・サイドカーを含むすべての Verrazzanoポッドが再起動されます。これには、NGINX Ingress ControllerなどのVerrazzanoシステム・ポッドとVerrazzanoアプリケーションが含まれます。WebLogicワークロードの場合、Verrazzanoはすべてのドメインを停止し、アップグレードを実行してから、すべてのドメインを起動します。他のすべてのワークロードの場合、Verrazzanoはアップグレードの完了時にローリング再起動を実行します。これは、アプリケーションの再起動に関連するユーザーが関与することはなく、アップグレード時に自動的に行われます。

アップグレードのステップ

Verrazzanoプラットフォーム・オペレータの更新とVerrazzanoインストールのアップグレードを区別することが重要です。プラットフォーム・オペレータには、新しいコンポーネント・チャートおよびイメージ・バージョンが含まれるため、インストールをアップグレードする前に更新する必要があります。プラットフォーム・オペレータを更新しても、Verrazzanoインストールのアップグレードが開始されるまで、既存のインストールには影響しません。現在、プラットフォーム・オペレータの更新またはVerrazzanoのインストール・アップグレードをロールバックする方法はありません。

既存のVerrazzanoインストールのアップグレードは、次の2ステップのプロセスです:

Verrazzanoプラットフォーム・オペレータの更新

既存のVerrazzanoインストールをアップグレードするには、まずVerrazzanoプラットフォーム・オペレータを更新する必要があります。

  1. Verrazzanoプラットフォーム・オペレータを更新します。

    ノート: プライベート・コンテナ・レジストリを使用している場合は、プラットフォーム・オペレータを更新するには、プライベート・レジストリの使用の手順に従います。

    最新バージョンに更新するには:

    $ kubectl apply -f https://github.com/verrazzano/verrazzano/releases/download/v1.3.8/operator.yaml
    

    特定のバージョンに更新するには(<version>が目的のバージョンです):

    $ kubectl apply -f https://github.com/verrazzano/verrazzano/releases/download/<version>/operator.yaml
    
  2. デプロイが完了するまで待ちます。

    $ kubectl -n verrazzano-install rollout status deployment/verrazzano-platform-operator
    
    # Expected response
    deployment "verrazzano-platform-operator" successfully rolled out
    
  3. オペレータ・ポッドが正しく定義され、実行中であることを確認します。

    $ kubectl -n verrazzano-install get pods
    
    # Sample output
    NAME                                            READY   STATUS    RESTARTS   AGE
    verrazzano-platform-operator-59d5c585fd-lwhsx   1/1     Running   0          114s
    

Verrazzanoのアップグレード

Verrazzanoインストールをアップグレードするには、インストールされているVerrazzanoリソースのバージョンをVerrazzanoプラットフォーム・オペレータでサポートされているバージョンに変更する必要があります。

ノート: アップグレード時、バージョン・フィールドのみ変更できます。現時点では、他のフィールドやコンポーネント構成への変更はサポートされていません。

1つの簡単なステップで、次のコマンドを使用して、指定したバージョンのVerrazzanoにアップグレードできます:

$ kubectl patch vz example-verrazzano -p '{"spec":{"version":"v1.3.8"}}' --type=merge

または、次のステップを使用して、Verrazzanoインストールをアップグレードできます:

  1. Verrazzanoリソースを希望するバージョンに更新します。

    Verrazzanoコンポーネントをアップグレードするには、Verrazzanoリソース仕様のversionフィールドを、アップグレードしたプラットフォーム・オペレータがサポートしているバージョンと一致するように更新し、クラスタに適用する必要があります。

    リソース仕様のversionフィールドの値は、有効なVerrazzanoリリース・バージョンに対応するセマンティック・バージョニング値である必要があります。

    次のいずれかの方法でリソースを更新できます:

    a.Verrazzanoのインストールに使用したYAMLファイルを編集し、バージョン・フィールドを最新バージョンに設定します。

    たとえば、v1.3.8にアップグレードするには、YAMLファイルを編集してバージョン・フィールドを追加または更新する必要があります:

    apiVersion: install.verrazzano.io/v1alpha1
    kind: Verrazzano
    metadata:
      name: example-verrazzano
    spec:
      profile: dev
      version: v1.3.8
    

    次に、リソースをクラスタに適用します(kubectl editを使用してリソースをインプレースで編集していない場合):

    $ kubectl apply -f example-verrazzano.yaml
    

    b.kubectlを使用してVerrazzanoリソースを直接編集し、バージョン・フィールドを直接設定します。たとえば:

    $ kubectl edit verrazzano example-verrazzano
    # In the resource editor, add or update the version field to "version: v1.3.8", then save.
    
  2. アップグレードが完了するまで待ちます:

    $ kubectl wait \
        --timeout=10m \
        --for=condition=UpgradeComplete verrazzano/example-verrazzano
    

アップグレードの検証

verrazzano-systemネームスペースのすべてのポッドがRunning状態であることを確認します。アップグレードの進行中は、新しいバージョンのコンポーネントが適用されるため、いくつかのポッドが終了し、再起動する場合があります。次に例を示します:

$ kubectl get pods -n verrazzano-system

# Sample output
coherence-operator-866798c99d-r69xt                1/1     Running   1          43m
fluentd-f9fbv                                      2/2     Running   0          38m
fluentd-n79c4                                      2/2     Running   0          38m
fluentd-xslzw                                      2/2     Running   0          38m
oam-kubernetes-runtime-56cdb56c98-wn2mb            1/1     Running   0          43m
verrazzano-application-operator-7c95ddd5b5-7xzmn   1/1     Running   0          42m
verrazzano-authproxy-594d8c8dcd-llmlr              2/2     Running   0          38m
verrazzano-console-74dbf97fdf-zxvvn                2/2     Running   0          38m
verrazzano-monitoring-operator-6fcf8484fd-gfkhs    1/1     Running   0          38m
verrazzano-operator-66c8566f95-8lbs6               1/1     Running   0          38m
vmi-system-es-master-0                             2/2     Running   0          38m
vmi-system-grafana-799d79648d-wsdp4                2/2     Running   0          38m
vmi-system-kiali-574c6dd94d-f49jv                  2/2     Running   0          41m
vmi-system-kibana-77f8d998f4-zzvqr                 2/2     Running   0          38m
vmi-system-prometheus-0-7f89d54fbf-brg6x           3/3     Running   0          36m
weblogic-operator-7b447fdb47-wlw64                 2/2     Running   0          42m

アプリケーション・ネームスペースのポッドの準備ができていることを確認します。次に例を示します:

$ kubectl get pods -n todo-list

# Sample output
NAME                     READY   STATUS    RESTARTS   AGE
mysql-67575d8954-d4vkm   2/2     Running   0          39h
tododomain-adminserver   4/4     Running   0          39h

アップグレード失敗

Verrazzano 1.3以降では、アップグレードは、成功するまで、あるいはVerrazzano CRを削除するまで実行し続けます。以前のバージョンでは、アップグレードが失敗して、UpgradeFailed状態に移行する可能性があります。これが発生したとき、Verrazzanoプラットフォーム・オペレータを1.3+に更新していた場合には、Verrazzano CRがUpgradePausedに変わります。アップグレードを続行するには、CRバージョンをVerrazzanoプラットフォーム・オペレータの現在のバージョンに変更する必要があります。次のステップでこのシナリオについて説明します:

  1. Verrazzano 1.1.2をインストールします。
  2. Verrazzano CRバージョン・フィールドをv1.2.0に変更して、1.2.0にアップグレードします。
    • なんらかの理由でアップグレードが失敗し、Verrazzano CR状態がUpgradeFailedに変わります。
  3. Verrazzanoプラットフォーム・オペレータを1.3.0に更新します。
    • Verrazzano CR状態がUpgradePausedに変わります。
  4. Verrazzano CRバージョン・フィールドをv1.3.0に変更します。
    • Verrazzano CR状態がUpgradingに変わり、完了するまではその状態ですが、その後UpgradeCompleteに変わります。

アップグレードの詳しい進行状況を確認するには、次のコマンドでログを表示します:

$ kubectl logs -n verrazzano-install \
    -f $(kubectl get pod \
    -n verrazzano-install \
    -l app=verrazzano-platform-operator \
    -o jsonpath="{.items[0].metadata.name}") | grep '^{.*}$' \
    | jq -r '."@timestamp" as $timestamp | "\($timestamp) \(.level) \(.message)"'

マルチクラスタVerrazzanoのアップグレード

マルチクラスタVerrazzano環境をアップグレードする方法