業務継続性を確保し、期限切れインスタンスによるセキュリティおよび安定性のリスクを防ぐため、Service Mesh (ASM) は、コントロールプレーンとデータプレーンをアップグレードするためのインプレースアップグレードとカナリアリリースをサポートしています。このトピックでは、ASM インスタンスのアップグレードに関する注意事項、説明、アップグレードパス、メソッド、および手順について説明します。
前提条件
用語
アップグレードが必要な理由
ASM は通常、サポートされている Istio のメジャーバージョンのリストを 3 か月ごとに更新します。メジャーバージョンがリリースされた後、ASM は時々、1.19.x.y のようなパッチバージョンをリリースして、新機能の提供や脆弱性の修正を行います。期限切れの ASM インスタンスは、セキュリティと安定性のリスクをもたらします。ASM インスタンスをタイムリーにアップグレードすることを推奨します。ASM がサポートするバージョンの詳細については、「バージョニングメカニズム」をご参照ください。
ASM インスタンスを積極的にアップグレードすることには、次の利点があります:
セキュリティと安定性のリスクの低減:ASM バージョンのイテレーションに伴い、セキュリティと安定性の脆弱性は継続的に修正されます。期限切れの ASM インスタンスを長期間使用すると、ビジネスにセキュリティと安定性のリスクをもたらす可能性があります。
メンテナンスサポートの向上:期限切れのインスタンスバージョンに対して、ASM はもはやセキュリティパッチやバグ修正を提供せず、技術サポートの品質を保証できません。新しい ASM バージョンを使用することで、より良い技術サポートとカスタマーサービスを受けることができます。
新機能へのアクセス:オープンソースの Istio が進化するにつれて、新しいバージョンは新機能と改善を提供します。ASM はこれらの新しいバージョンに適応し、開発者および運用保守 (O&M) のためのより良い体験を提供します。
アップグレードの注意事項と説明
注意事項
メッシュをアップグレードするには、データプレーン上の Pod を手動で再起動して、新しいバージョンのサイドカーを再インジェクションする必要があります。オフピーク時にアップグレードを実行することを推奨します。
ASM ゲートウェイを手動でアップグレードすると、ローリングリスタートがトリガーされます。
アップグレード中は、段階的リリースやトラフィックルールの構成などの操作を行わないでください。
ASM インスタンスのインプレースアップグレードを実行すると、ASM はインスタンスに対してアップグレード前チェックを実行します。ただし、このチェックでは、互換性のないすべての機能構成と API 操作が検出されるとは限りません。ヘルプドキュメント、コンソール情報、および内部メッセージを使用して、バージョンリリース情報について常に把握することができます。インスタンスをアップグレードする前に、対応するバージョンのアップグレードに関する注意事項を確認することを推奨します。
セキュリティ上の理由から、ASM は次のメカニズムを提供します:
ASM は、インスタンスのバージョンが期限切れになった後、指定された時間に、期限切れのインスタンスをサポートされている最も古いバージョンに強制的にアップグレードする権利を留保します。このトピックで説明されているように、事前にインスタンスをアップグレードすることを推奨します。
v1.18.0.123 から v1.18.0.146 へのようなパッチバージョンのアップグレードについては、システムは通知なしに定期的に自動ホットアップデートを実行します。自動ホットアップデート中、データプレーンゲートウェイとサイドカープロキシのバージョンは変更されません。
インプレースアップグレードに関する説明
インプレースアップグレードを実行する場合、ASM インスタンスは隣接するバージョンにのみアップグレードできます。クロスバージョンのアップグレードとロールバックはサポートされていません。
カナリアリリースに関する説明
インプレースアップグレードと比較して、カナリアリリースでは、新しいバージョンに切り替える前に検証することができます。これにより、ビジネスにとってより安全なアップグレード方法が提供されます。カナリアリリースは、最大で 1 つのマイナーバージョンをまたいだアップグレードをサポートし、アップグレードプロセス中のロールバックをサポートします。
タイプ | 説明 |
適用バージョン | バージョン 1.16.4.91 以降の Enterprise Edition または Ultimate Edition インスタンス。 |
シナリオ |
説明 asm-patch バージョンのみが変更される場合は、インプレースアップグレードを実行することを推奨します。 |
バージョンフォーマット | ASM インスタンスのバージョンは、<major>.<minor>.<patch>.<asm-patch>[-<sequence>-aliyun] というフォーマットです。例:v1.18.0.158-gc6cf0b9c-aliyun (Enterprise Edition)。フォーマットの各フィールドの説明は次のとおりです:
|
Sidecar インジェクションラベルに関する説明
ASM インスタンスでカナリアリリース機能を有効にすると、コントロールプレーン上に 2 つのバージョンのインスタンスが同時に存在します。たとえば、カナリアリリースを使用して ASM インスタンスを 1.17.2.42 から特定の 1.18.0 バージョンにアップグレードする場合、コントロールプレーン上ではバージョン 1.17.2 と 1.18.0 の両方が同時に利用可能になります。
カナリアリリース中、Kubernetes クラスターの名前空間にインジェクションラベルを追加して、その名前空間内のワークロードにインジェクションするサイドカーのバージョンを指定できます。デフォルトのラベルは istio-injection=enabled で、現在のバージョンをインジェクションします。
以下に、2 つのバージョンが同時に存在する場合の、インジェクションされるサイドカーバージョンと名前空間ラベルのマッピングについて説明します:
現在のバージョン
istio-injection=enabledラベルによってインジェクションされるサイドカーは、ASM の現在のバージョンに対応し、現在のバージョンのコントロールプレーンに接続します。名前空間に
istio.io/rev=$revisionラベルを追加して、インジェクションするサイドカーのバージョンを指定します。revision変数のフォーマットはx-y-zで、たとえば1-17-2のようになります。名前空間に
istio.io/rev=stableラベルを追加して、インジェクションするサイドカーのバージョンが ASM の現在のバージョンであることを指定します。
重要名前空間に
istio-injectionラベルとistio.io/revラベルの両方を同時追加することはできません。
カナリアバージョン
ビジネスサービスにカナリアバージョンに対応するサイドカーをインジェクションする必要がある場合は、名前空間に
istio.io/rev=$revisionまたはistio.io/rev=canaryラベルを追加できます。$revisionのフォーマットはx-y-zで、たとえば1-18-0のようになります。istio.io/rev=$revisionラベルを使用することを推奨します。カナリアリリースの実行方法の詳細については、「カナリアリリースを使用してアップグレードの安定性を向上させる」をご参照ください。
アップグレードパス、メソッド、およびプロセス
アップグレードパス
このセクションの例では、v1.16 から v1.18 へのアップグレードを例に、アップグレードパスを説明します。この例は参考用です。実際の環境に基づいてアップグレードパスを選択できます。
初期バージョン | ターゲットバージョン | アップグレードメソッド |
1.16.4.93 | 1.17.2.42 | インプレースアップグレードまたはカナリアリリース |
1.17.2.42 | 1.18.0.158 | インプレースアップグレードまたはカナリアリリース |
1.16.4.93 | 1.18.0.158 | カナリアリリース |
アップグレードメソッド
ASM コンソール:インプレースアップグレードとカナリアリリースをサポートしています。詳細については、「操作手順」をご参照ください。
API:インプレースアップグレードをサポートしています。詳細については、「UpgradeMeshVersion」、「DescribeUpgradeVersion」、および「DescribeServiceMeshUpgradeStatus」をご参照ください。
アップグレードプロセス
ターゲットバージョンとアップグレードメソッドを確認します。続行する前に、アップグレードの注意事項と説明をよくお読みください。
操作手順
インプレースアップグレード
ASM コンソールにログインします。左側のナビゲーションウィンドウで、を選択します。
[メッシュ管理] ページで、対象の ASM インスタンス名をクリックします。左側のナビゲーションウィンドウで、を選択します。
[アップグレード管理] ページで、[インプレースアップグレード] タブをクリックし、[アップグレード事前チェックの実行] をクリックします。表示される [重要] ダイアログボックスで、[OK] をクリックします。
アップグレード事前チェックに合格したら、[アップグレードの開始] をクリックします。[重要] ダイアログボックスで、[OK] をクリックします。
[データプレーン] セクションで、[アップグレード] 列を見つけ、ターゲットゲートウェイを選択し、[ゲートウェイのアップグレード] をクリックします。[重要] ダイアログボックスで、[OK] をクリックします。
必要に応じてワークロードを再起動します。詳細については、「ワークロードの再デプロイ」をご参照ください。
カナリアリリース
詳細については、「カナリアリリースを使用してアップグレードの安定性を向上させる」をご参照ください。
アップグレードに関するよくある質問
カナリアバージョンが公式バージョンに切り替わったとき、以前にデプロイされたサービスにインジェクションされたサイドカーは古いバージョンです。サイドカーを新しいバージョンにアップグレードするにはどうすればよいですか?
[アップグレード管理] ページで、[カナリアアップグレード] タブをクリックし、[データプレーン] タブをクリックします。[アップグレード対象のワークロード] セクションで、ターゲットワークロードの右側にある [ローリングアップグレード] をクリックして、サービスのデプロイメントのローリングアップデートをトリガーします。
インプレースアップグレードは既存のサービスのトラフィックに影響しますか?
インプレースアップグレードはコントロールプレーンにのみ影響し、データプレーンのトラフィックには影響しません。
ASM インスタンスがターゲットバージョンに到達するまでに何回のアップグレードが必要ですか?
インプレースアップグレードは、隣接するメジャーバージョン間のアップグレードのみをサポートします。カナリアリリースは、最大で 1 つのマイナーバージョンをまたいだアップグレードをサポートします。必要に応じて、必要なアップグレード回数を計算できます。
ASM インスタンスの各バージョンで、任意のアップグレードメソッドを選択できますか?
1.16.4.91 より前のバージョンの ASM インスタンスでは、インプレースアップグレードのみがサポートされています。バージョン 1.16.4.91 以降の ASM インスタンスでは、インプレースアップグレードとカナリアリリースの両方がサポートされています。
ASM インスタンスをアップグレードした後、対応する ACK クラスターはどのバージョンにアップグレードする必要がありますか?
「ASM と ACK のバージョンの互換性」を参照し、必要に応じてクラスターをアップグレードできます。ACK クラスターのアップグレード方法の詳細については、「クラスターの手動アップグレード」をご参照ください。
関連ドキュメント
メッシュの潜在的な問題をタイムリーに診断できます。チェック項目には、データプレーンコンポーネントのバージョン、サービスポート、関連サービス、アプリケーションとバージョンのラベル、宛先アドレス、および仮想サービスの競合が含まれます。詳細については、「ASM メッシュ診断の使用」をご参照ください。
コンテナー向け IT 運用人工知能 (AIOps) プラットフォームは、ワンクリックのエラー診断機能を提供します。これらの機能には、ノード、Pod、Service、Ingress、メモリ、およびネットワーク診断が含まれ、クラスター内の問題の特定に役立ちます。詳細については、「クラスター診断の使用」をご参照ください。
ASM の機能に関する最新情報については、「リリースノート」をご参照ください。