インストールと移行の概要

このガイドでは、Google Cloud プロジェクトの準備、既存の GKE クラスタの設定、Anthos Service Mesh バージョン 1.6.14 のインストールの方法について説明します。このガイドは、次のユースケースに使用できます。

  • Anthos Service Mesh の新規インストール。以前のバージョンの Anthos Service Mesh がインストールされている場合は、GKE での Anthos Service Mesh のアップグレードをご覧ください。

  • オープンソースの Istio 1.6 から Anthos Service Mesh への移行。

  • Istio on GKE アドオンの 1.6 バージョンから Anthos Service Mesh への移行。Anthos Service Mesh に移行する前に、Operator で Istio 1.6 にアップグレードしておく必要があります。

新規インストールまたは移行で、構成するすべてのクラスタが同じ Google Cloud プロジェクトにある場合は、GKE でのインストールと移行を使用することをおすすめします。この方法では、スクリプトを使用してインストールと移行を簡単に行うことができます。

始める前に

このガイドでは、次のものが用意されていることを前提としています。

Anthos と Anthos Service Mesh の違い

  • GKE Enterprise サブスクライバーである場合は、GKE Enterprise API を必ず有効にしてください。

    API の有効化

  • GKE Enterprise のサブスクライバーでない場合でも Anthos Service Mesh をインストールできますが、Google Cloud コンソールの一部の UI 要素と機能は GKE Enterprise のサブスクライバーのみが使用できます。サブスクライバーと非サブスクライバーが使用できる機能については、GKE Enterprise と Anthos Service Mesh の UI の違いをご覧ください。非サブスクライバーに関する Anthos Service Mesh の料金については、料金をご覧ください。

要件

  • GKE クラスタは次の要件を満たす必要があります。

    • 4 つ以上の vCPU を備えたマシンタイプ(e2-standard-4 など)。クラスタのマシンタイプに 4 つ以上の vCPU がない場合は、異なるマシンタイプへのワークロードの移行の説明に従ってマシンタイプを変更します。

    • ノードの最小数は、マシンタイプによって異なります。Anthos Service Mesh には、8 つ以上の vCPU が必要です。4 つの vCPU を持つマシンタイプの場合、クラスタには少なくとも 2 つのノードが必要です。8 つの vCPU を持つマシンタイプの場合、クラスタに必要なノードは 1 つだけです。ノードを追加する必要がある場合は、クラスタのサイズ変更をご覧ください。

    • 別の Google Cloud プロジェクトのクラスタを Anthos Service Mesh に追加するには、そのクラスタが Shared Virtual Private Cloud(VPC)内に存在している必要があります。クラスタの構成については、共有 VPC を使用したクラスタの設定をご覧ください。

    • Anthos Service Mesh をインストールする前にクラスタを作成するには、Workload Identity を有効にします。Workload Identity は、Google API を呼び出すためのおすすめの方法です。Workload Identity を有効にすると、Workload Identity の制限事項で説明されているように、ワークロードから Google API への呼び出し方法が変わります。

    • クラスタをリリース チャンネルに登録します。この操作は省略できますが、行うことをおすすめします。Regular リリース チャンネルに登録することをおすすめします。他のチャネルは Anthos Service Mesh 1.6.14 でサポートされていない GKE バージョンをベースにしていることがあります。詳細については、サポートされている環境をご覧ください。静的 GKE バージョンがある場合は、既存のクラスタをリリース チャンネルに登録するの手順を行ってください。

  • サービス メッシュに含めるには、サービスポートに名前を付ける必要があります。名前には、name: protocol[-suffix] の構文でポートのプロトコルを含める必要があります。角かっこは、ダッシュで始まるオプションの接尾辞です。詳細については、サービスポートの命名をご覧ください。

  • 限定公開クラスタに Anthos Service Mesh をインストールする場合は、ファイアウォールでポート 15017 を開き、自動サイドカー インジェクションで使用される Webhook が適切に機能する必要があります。詳細については、限定公開クラスタのポートを開くをご覧ください。

  • 組織にサービス境界を作成した場合は、Mesh CA サービスを境界に追加する必要があります。詳細については、サービス境界へのメッシュ CA の追加をご覧ください。

制限事項

1 つの Google Cloud プロジェクトに関連付けることができるメッシュは 1 つのみです。

構成プロファイルの選択

Anthos Service Mesh をインストールするときに、次のいずれかの構成プロファイルを選択する必要があります。

  • asm-gcp: すべての GKE クラスタが同じプロジェクトにある場合は、このプロファイルを使用します。このプロファイルを使用して Anthos Service Mesh をインストールすると、次の機能が有効になります。

  • asm-gcp-multiprojectベータ版): このプロファイルは、クラスタが共有 Virtual Private Cloud にあり、別のプロジェクトのクラスタを Anthos Service Mesh に追加する場合に使用します。asm-gcp-multiproject プロファイルを使用して Anthos Service Mesh をインストールする場合:

    • Google Cloud コンソールの Anthos Service Mesh ダッシュボードは現在利用できません。ただし、プロジェクトごとに Cloud Logging でログを表示し、Cloud Monitoring で指標を表示できます。

    • asm-gcp-multiproject 構成プロファイルの [サポートされている機能] ページにある、他のサポートされるデフォルト機能が有効になります。

認証局の選択

新規にインストールする場合でも移行する場合でも、相互 TLS(mTLS)証明書を発行する認証局(CA)として、Anthos Service Mesh 認証局(Mesh CA)または Citadel(現在は istiod に組み込まれています)を使用できます。

次の理由から、Mesh CA を使用することをおすすめします。

  • Mesh CA は、信頼性の高いスケーラブルなサービスで、Google Cloud 上で動的にスケーリングされるワークロード用に最適化されています。
  • Mesh CA を使用する場合、Google は CA バックエンドのセキュリティと可用性を管理します。
  • Mesh CA を使用すると、クラスタ間で単一のルート オブ トラストを使用できます。

ただし、次のような場合、Citadel の使用を検討できます。

  • カスタム CA を使用する場合。
  • Istio または Istio on GKE アドオンから移行する場合。

    Citadel を選択すると、移行中に mTLS トラフィックは中断されないため、ダウンタイムは発生しません。Mesh CA を選択すると、すべての名前空間ですべての Pod を再起動するまで mTLS トラフィックがエラーとなるため、移行時のダウンタイムをスケジューリングする必要があります。

Mesh CA からの証明書には、アプリケーションのサービスに関する次のデータが含まれます。

  • Google Cloud プロジェクト ID。
  • GKE 名前空間
  • GKE サービス アカウント名

マルチクラスタのサポート

現時点では必須ではありませんが、プロジェクトのフリート(以前の environ)にクラスタを登録することをおすすめします。フリートを使用してクラスタを整理すると、複数のクラスタを簡単に管理できます。フリートにクラスタを登録することで、必要に応じてサービスやその他のインフラストラクチャをグループ化し、一貫したポリシーを適用できます。複数のプロジェクトにクラスタがある場合は、クラスタが属しているプロジェクトではなく、フリートのホスト プロジェクトにクラスタを登録する必要があります。詳しくは、フリートにクラスタを登録するをご覧ください。

フリートのホスト プロジェクトのコンセプトは、クラスタを設定して Anthos Service Mesh で必要なオプションを有効にする場合に重要です。クラスタのサービス メッシュは、プロジェクト番号に基づく値で識別されます。別のプロジェクトのクラスタを設定する場合は、フリートのホスト プロジェクトのプロジェクト番号を使用する必要があります。