マネージド Cloud Service Mesh のリリース チャンネル

Cloud Service Mesh は、アップデートを頻繁にリリースして、セキュリティ アップデートの提供、既知の問題の修正、新機能の導入を行っています。リリース チャンネルを活用すると、Cloud Service Mesh バージョンの安定性と機能セットのバランスを取ることができます。Cloud Service Mesh リリース チャンネルは、Google Kubernetes Engine(GKE)リリース チャンネルに関連付けられています。各リリース チャンネルのバージョンとアップグレードの頻度は、Google によって自動的に管理されます。

このドキュメントでは、リリース チャンネルの比較、非マネージド プロキシの更新方法について説明します。

利用可能なリリース チャンネル

以下のリリース チャンネルが利用可能です。各チャンネルには、利用できる機能と更新チャーンの間にトレードオフ関係があります。各チャンネルの機能の成熟度はそれぞれ異なります。 重要なセキュリティ パッチは、クラスタと Google のインフラストラクチャを保護するため、すべてのリリース チャンネルに配信されます。

チャネル 新しいマネージド Cloud Service Mesh の可用性 プロパティ
Rapid Cloud Service Mesh の各リリース後 Cloud Service Mesh の最新リリースをできるだけ早く入手して、リリースに含まれる時点で新機能を使用できるようにしてください。コントロール プレーンは、パッチ バージョンが常に最新に保たれるように頻繁に更新され、新しい機能を提供します。Rapid チャンネルは、本番前環境で新しい Cloud Service Mesh バージョンと API をテストするのに最適です。
標準 Rapid は Regular に昇格* Cloud Service Mesh と Istio の機能は、リリース後すぐに、長期間にわたって認定されてきたバージョンでアクセスできます。機能の可用性とリリースの安定性のバランスが取れているため、ほとんどのユーザーにおすすめです。
Stable Regular は Stable に昇格* 新機能よりも安定性を優先します。このチャンネルの変更点と新バージョンは、Rapid チャンネルと Regular チャンネルで検証されてから、最後に公開されます。これによって、さらに時間をかけて検証できます。
*次のチャンネルのプロモーション スケジュールは、オープンソースの Istio リリース、Anthos リリース、パッチ適用スケジュールなど、複数の要因によって異なるため、変更される可能性があります。最新情報を入手するには、Cloud Service Mesh リリースノートの URL をフィード リーダーに追加するか、次のフィード URL を直接追加します。https://cloud.google.com/feeds/servicemesh-release-notes.xml

マネージド Cloud Service Mesh のマイナー バージョンが十分に使用され、Rapid チャンネルで安定性が確認されると、Regular チャンネルに昇格します。最終的に、マイナー バージョンは高優先度のアップデートとセキュリティ パッチのみが提供される Stable チャンネルに昇格します。昇格はそれぞれ、そのバージョンを実行しているコントロール プレーンの観測されたパフォーマンスに基づいて、段階的な安定性レベルと本番環境の対応状況を表します。

すべてのチャンネルは一般提供(GA)リリースに基づいています(ただし、個々の機能は必ずしも一般提供とは限りません)。新しい Cloud Service Mesh バージョンは、まず Rapid チャンネルにリリースされ、その後 Regular、Stable チャンネルに昇格します。これにより、ビジネス、安定性、機能のニーズを満たすチャンネルを選択できます。

クラスタの Cloud Service Mesh チャンネルは、GKE クラスタ チャンネルによって決まります。

GKE チャンネル Cloud Service Mesh チャンネル
Rapid Rapid
標準 標準
Stable Stable
(チャンネルなし) 標準

各チャンネルの Cloud Service Mesh のバージョン

Cloud Service Mesh チャンネルは、マネージド Cloud Service Mesh をプロビジョニングするときに、GKE クラスタ チャンネルによって決定されます。後で GKE クラスタ チャンネルを変更しても、元の Cloud Service Mesh チャンネルは保持されます。

次の表は、現在の Cloud Service Mesh バージョンのマッピングへのチャンネルを示します。

チャネル Cloud Service Mesh のバージョン
Rapid 1.19
標準 1.19
Stable 1.18

デフォルトのチャンネル

新しくインストールされた Cloud Service Mesh のクラスタにマネージド チャンネルが 1 つインストールされている場合は、そのチャンネルがクラスタのデフォルト チャンネルになります。

既存の Istio または Cloud Service Mesh がインストールされているクラスタにデフォルトタグが構成されている場合は、マネージド リビジョンを参照する必要があります。そうでない場合は、何もする必要はありません。

istio-injection=enabled ラベルは、デフォルトのリビジョンなど、チャンネルに使用する他のラベルへの挿入を指すエイリアスとして使用できます。Google のドキュメントで、インジェクションに istio.io/rev 名前空間ラベルの使用が示されている場合は、代わりに istio-injection=enabled ラベルを使用できます。

インジェクション ラベル

Cloud Service Mesh で特定の名前空間のワークロードを管理できるようにするには、インストール済みのチャンネルに対応するラベルを名前空間に付ける必要があります。マネージド Cloud Service Mesh は、次の 2 種類のラベルをサポートしています。

  • 標準のリビジョン ラベル、つまりチャンネル stableregularrapid に対応する asm-managed-stableasm-managedasm-managed-rapid
  • デフォルトのインジェクション ラベル。そのクラスタのデフォルト チャンネルに対応するラベルです(例: istio-injection=enabled)。デフォルトのインジェクション ラベルを使用すると、リビジョン間の移行が簡単になります。たとえば、Istio OSS または非マネージド Cloud Service Mesh からマネージド Cloud Service Mesh に移行する場合、各名前空間に個別にラベルを付ける必要はありません。Cloud Service Mesh のドキュメントで、インジェクションに istio.io/rev 名前空間ラベルの使用が示されている場合は、代わりに istio-injection=enabled ラベルを使用できます。

インジェクション ラベルは、sidecar.istio.io/inject(通常ゲートウェイに使用)と istio.io/rev(名前空間とワークロードの両方で機能)によるワークロードのラベル付けでも使用されます。

デフォルトのインジェクション ラベル

デフォルトのインジェクション ラベルを名前空間に適用するには:

kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev- --overwrite

リビジョン ラベル

他の Kubernetes ラベルと同様に、リビジョン ラベルは Key-Value ペアです。リビジョン ラベルのキーは常に istio.io/rev ですが、値は異なります。リリース チャンネルを選択するには、名前空間に次のリビジョン名のいずれかを適用します。

リビジョン名 チャンネル
asm-managed 標準
asm-managed-rapid Rapid
asm-managed-stable Stable

たとえば、Regular リリース チャンネルを名前空間に適用するには、次のようにします。

kubectl label namespace NAMESPACE istio.io/rev=asm-managed --overwrite

クラスタのリリース チャンネルと同じものを使用することをおすすめします。

名前空間で使用されているリリース チャンネルを確認するには:

kubectl get namespace NAMESPACE -o jsonpath='{.metadata.labels.istio\.io/rev}{"\n"}'

非マネージド プロキシの更新

Cloud Service Mesh がリリースされるたびに、サービスとゲートウェイの非マネージド プロキシを再起動します。コントロール プレーンとプロキシのバージョンが異なる場合は、サービス メッシュに問題はありませんが、新しい Cloud Service Mesh バージョンを使用して構成されるようにプロキシを更新することをおすすめします。

  1. コントロール プレーンとプロキシのバージョンを確認します。

  2. コントロール プレーン バージョンがプロキシ バージョンより新しい場合は、サービスとゲートウェイ用の管理対象外のプロキシを再起動します。

    kubectl rollout restart deployment -n NAMESPACE