Helm を使用したアップグレード

このガイドに従って、Helm を使用したアンビエントモードインストールのアップグレードと構成を実行します。このガイドでは、以前のバージョンの Istio でHelm を使用したアンビエントモードインストール を既に実行済みであることを前提としています。

アンビエントモードアップグレードの理解

すべての Istio アップグレードには、コントロールプレーン、データプレーン、および Istio CRD のアップグレードが含まれます。アンビエントデータプレーンは2つのコンポーネント、ztunnel とゲートウェイ(ウェイポイントを含む)に分割されているため、アップグレードにはこれらのコンポーネントに対する個別のステップが含まれます。コントロールプレーンと CRD のアップグレードについては、ここでは簡単に説明しますが、サイドカーモードでのこれらのコンポーネントのアップグレードプロセス とほぼ同じです。

サイドカーモードと同様に、ゲートウェイはリビジョンタグを利用して、ウェイポイントを含む(ゲートウェイ)のアップグレードをきめ細かく制御できます。任意の時点で以前のバージョンのIstioコントロールプレーンにロールバックするための簡単な制御も含まれます。ただし、サイドカーモードとは異なり、ztunnelはDaemonSet(ノードごとのプロキシ)として実行されるため、ztunnelのアップグレードは、最低でも一度にノード全体に影響を与えます。多くの場合、これは許容できるかもしれませんが、長期間存続するTCP接続を持つアプリケーションは中断される可能性があります。このような場合は、特定のノードのztunnelをアップグレードする前に、ノードのコーディングとドレインを使用することをお勧めします。簡潔にするために、このドキュメントでは、短時間のダウンタイムを伴う可能性のあるztunnelのインプレースアップグレードを示します。

前提条件

アップグレードの準備

Istioをアップグレードする前に、新しいバージョンのistioctlをダウンロードし、istioctl x precheckを実行して、アップグレードが環境と互換性があることを確認することをお勧めします。出力は次のようになります。

$ istioctl x precheck
✔ No issues found when checking the cluster. Istio is safe to install or upgrade!
  To get started, check out <https://istio.dokyumento.jp/latest/docs/setup/getting-started/>

次に、Helmリポジトリを更新します。

$ helm repo update istio
インプレースアップグレードには追加の準備は必要ありません。次の手順に進みます。

コントロールプレーンのアップグレード

基本コンポーネント

クラスタ全体のCustom Resource Definitions(CRD)は、新しいバージョンコントロールプレーンのデプロイの前にアップグレードする必要があります。

$ helm upgrade istio-base istio/base -n istio-system

istiod コントロールプレーン

Istiodコントロールプレーンは、メッシュ内のトラフィックをルーティングするプロキシを管理および構成します。次のコマンドは、現在のものと並行してコントロールプレーンの新しいインスタンスをインストールしますが、新しいゲートウェイプロキシやウェイポイントを導入したり、既存のもののコントロールを引き継いだりすることはありません。

istiodのインストールをカスタマイズした場合は、以前のアップグレードまたはインストールからのvalues.yamlファイルを使用して、コントロールプレーンの一貫性を維持できます。

$ helm upgrade istiod istio/istiod -n istio-system --wait

CNI ノードエージェント

Istio CNIノードエージェントは、アンビエントメッシュに追加されたポッドを検出し、追加されたポッド内にプロキシポートを確立する必要があることをztunnelに通知し、ポッドネットワーク名前空間内のトラフィックリダイレクトを構成する役割を担っています。データプレーンまたはコントロールプレーンの一部ではありません。

バージョン1.xのCNIは、バージョン1.x+1および1.xのコントロールプレーンと互換性があります。これは、バージョン間の違いがマイナーバージョン1つ以内であれば、コントロールプレーンをIstio CNIよりも先にアップグレードする必要があることを意味します。

$ helm upgrade istio-cni istio/cni -n istio-system

データプレーンのアップグレード

ztunnel DaemonSet

ztunnel DaemonSetはノードプロキシコンポーネントです。バージョン1.xのztunnelは、バージョン1.x+1および1.xのコントロールプレーンと互換性があります。これは、バージョン間の違いがマイナーバージョン1つ以内であれば、コントロールプレーンをztunnelよりも先にアップグレードする必要があることを意味します。以前にztunnelのインストールをカスタマイズした場合は、以前のアップグレードまたはインストールからのvalues.yamlファイルを使用して、データプレーンの一貫性を維持できます。

$ helm upgrade ztunnel istio/ztunnel -n istio-system --wait

手動でデプロイされたゲートウェイチャートのアップグレード(オプション)

手動でデプロイされたGatewayは、Helmを使用して個別にアップグレードする必要があります。

$ helm upgrade istio-ingress istio/gateway -n istio-ingress
この情報は役に立ちましたか?
改善のための提案はありますか?

フィードバックありがとうございます!