アップグレード

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

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

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

Verrazzano 1.0.xを1.1.0にアップグレードすると、Istioが1.7.3から1.10.4にアップグレードされます。このため、新しいEnvoyプロキシ・サイドカーをポッドに注入できるように、Istioメッシュ内のすべてのポッドを再起動する必要があります。これには、Verrazzanoアプリケーションと、NGINX Ingress Controllerなどの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.1.2/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.1.2"}}' --type=merge

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

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

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

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

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

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

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

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

    次に、リソースをクラスタに適用します(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.1.2", then save.
    
  2. アップグレードが完了するまで待ちます:

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

エラーが発生した場合は、ログ出力を確認します:

$ kubectl logs -n verrazzano-install \
    -f $(kubectl get pod \
    -n verrazzano-install \
    -l app=verrazzano-platform-operator \
    -o jsonpath="{.items[0].metadata.name}") | grep '"operation":"install"'

アップグレードが失敗すると、次のように表示されます:

$ kubectl get vz

# Sample output
NAME                 STATUS          VERSION
example-verrazzano   UpgradeFailed   v1.1.1

注釈verrazzano.io/upgrade-retry-versionを一意の値に設定することで、アップグレードを再開できます。たとえば:

$ kubectl patch vz example-verrazzano -p '{"metadata":{"annotations": {"verrazzano.io/upgrade-retry-version":"v1.1.2-1"} }}' --type=merge

アップグレードの検証

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のアップグレード

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