GKE への単一プロジェクトのインストール

このガイドでは、同じプロジェクトにある 1 つ以上の GKE クラスタを含むメッシュ用に Anthos Service Mesh バージョン 1.11.8 をインストールする方法、同バージョンへの移行やアップグレードを行う方法について説明します。Google が提供するスクリプトである install_asm を使用してプロジェクトとクラスタを構成し、istioctl install を使用して Anthos Service Mesh をインストールします。

このガイドと、オンボーディング ユースケース用のスクリプトを使用できます。

  • Anthos Service Mesh 1.11.8 の新規インストール

  • 任意のバージョンとパッチリリース 1.7 以降からの Anthos Service Mesh 1.11.8 へのアップグレード。これより前のバージョンからのアップグレードはサポートされていません。

  • オープンソースの Istio から Anthos Service Mesh への移行。Istio 1.6 以前を使用している場合は、Anthos Service Mesh に移行する前に、先にアップグレードする必要があります。Istio 1.7 以降を使用している場合は、Istio 1.7 以降から Anthos Service Mesh と Mesh CA への移行を使用できる場合があります。アップグレードする必要がある場合は、該当する Istio のバージョンの Istio のアップグレード ページに移動します。1 つの手順で複数のマイナー バージョンをまたいで Istio をアップグレードすること(例: 1.6.x から 1.8.x)は、正式にテストまたは推奨されていないことに注意してください。移行を計画する際は、Istio からの移行の準備を必ず確認してください。

前提条件

このガイドは、以下のものがあることを前提としています。

Anthos と Anthos Service Mesh の違い

Anthos Service Mesh は、GKE Enterprise で、もしくはスタンドアロン サービスとして利用できます。Google API は、請求方法を決定するために使用されます。Anthos Service Mesh をスタンドアロン サービスとして使用する場合、プロジェクトで Anthos API を有効にしないでください。 このスクリプトにより、他のすべての必要な Google API が有効になります。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 の違いをご覧ください。

  • GKE Enterprise API を有効にしていて、Anthos Service Mesh をスタンドアロン サービスとして使用する場合は、GKE Enterprise API を無効にします

要件

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

    • Autopilot クラスタには istio-sidecar-injectorMutatingWebhookConfiguration を許可しない Webhook の制限があるため、GKE クラスタは Standard でなければなりません。

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

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

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

      新しいインストールを実施し、Anthos Service Mesh 認証局(Mesh CA)を使用する予定の場合は、GKE Workload Identity の代わりとしてフリートの Workload Identity プールを使用できます。フリートの Workload Identity プール(プレビュー)で Mesh CA を使用するには、クラスタが所属するプロジェクトにクラスタを登録するスクリプトを実行する前に、クラスタの登録の手順を行うか、--enable_registration フラグを指定する必要があります。スクリプトの実行例については、フリートの Workload Identity プールでメッシュ CA を有効にするをご覧ください。

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

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

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

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

  • 移行の場合、istiodistio-system 名前空間にインストールする必要があります。

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

  • istio-proxy サイドカー コンテナのデフォルトのリソース制限を変更する場合は、メモリ不足(OOM)イベントを回避するために、新しい値はデフォルト値より大きい値にする必要があります。

  • Windows Server ワークロードの場合、Istio はサポートされません。クラスタに Linux と Windows Server の両方のノードプールがある場合でも、Anthos Service Mesh をインストールして Linux ワークロードで使用できます。

コントロール プレーンのカスタマイズ

Anthos Service Mesh がサポートする機能はプラットフォームによって異なります。サポートされている機能を確認して、Google Cloud の GKE でサポートされている機能を把握することをおすすめします。一部の機能はデフォルトで有効になっており、それ以外は IstioOperator オーバーレイ ファイルを作成することで、必要に応じて有効にすることもできます。install_asm スクリプトを実行するときに、オーバーレイ ファイルで --custom_overlay オプションを指定できます。

認証局の選択

新規インストールと Istio からの移行の両方で、Anthos Service Mesh 認証局(Mesh CA)または Istio の Citadelを認証局(CA)として使用して、相互 TLS(mTLS)証明書を発行できます。

カスタム CA(HashiCorp Vault など)が必要な場合を除き、次の理由から Mesh CA を使用することをおすすめします。

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

Anthos Service Mesh の新規インストールでは、Mesh CA はデフォルトでスクリプトによって有効化されます。

Istio から移行する場合は、Mesh CA に移行するか、Istio CA を引き続き使用するかを選択できます。Istio CA から Mesh CA への移行には、ルート オブ トラストを移行する必要があります。Mesh CA に移行する場合、次のオプションがあります。

  • 移行のダウンタイムをスケジュールします。運用上、これが最も簡単なオプションですが、移行中に mTLS トラフィックが中断されるため、ダウンタイムをスケジュールする必要があります。この場合のスクリプトの使用例については、ダウンタイムを伴う Mesh CA への移行をご覧ください。

  • 新しいルート オブ トラストを配布し、Mesh CA に移行します。このアプローチでは、mTLS トラフィックが中断されないため、ダウンタイムをスケジューリングする必要はありませんが、移行プロセスにはより多くのステップが伴います。詳細については、メッシュ CA への移行をご覧ください。

Anthos Service Mesh への移行時に Istio CA を引き続き使用する場合、ルート CA は変更されないため、mTLS トラフィックは中断されません。この移行パスは既存のワークロードに影響を及ぼすことはありませんが、クラスタ内コントロール プレーンの使用が制限されます。Google が管理するコントロール プレーンには Mesh CA が必要です。

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

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

クラスタの登録

Google Cloud コンソールの統合ユーザー インターフェースにアクセスするには、クラスタをフリートで登録する必要があります。フリートは、Google Cloud 外のクラスタを含むクラスタとそのワークロードを表示して管理するために統合された方法を提供します。

クラスタが所属するプロジェクトに、クラスタを登録するようにスクリプトを実行する際、クラスタの登録の手順を行うか、--enable_registration フラグを指定します。

必要なツールのインストール

スクリプトは、Cloud Shell 上、または Linux を実行するローカルマシン上で実行できます。Cloud Shell で必要なすべてのツールがプリインストールされます。

Cloud Shell

Cloud Shell は、Debian ベースの Linux オペレーティング システムを実行している g1-small Compute Engine 仮想マシン(VM)をプロビジョニングします。Cloud Shell を使用する利点は次のとおりです。

  • Cloud Shell には、gcloudkubectlkpt、必要な他のコマンドライン ツールが含まれています。

  • Cloud Shell の $HOME ディレクトリには 5 GB の永続ストレージ スペースがあります。

  • テキスト エディタを選択できます。

    • コードエディタ。Cloud Shell ウィンドウの上部にある をクリックしてアクセスします。

    • Emacs、Vim、Nano。Cloud Shell のコマンドラインからアクセスします。

Cloud Shell を使用するには:

  1. Google Cloud コンソールに移動します。
  2. Google Cloud プロジェクトを選択します。
  3. Google Cloud コンソール ウィンドウの上部にある [Cloud Shell をアクティブにする] ボタンをクリックします。

    Google Cloud Platform コンソール

    Google Cloud コンソールの一番下にある新しいフレームの中で Cloud Shell セッションが開き、コマンドライン プロンプトが表示されます。

    Cloud Shell セッション

  4. コンポーネントを更新します。

    gcloud components update
    

    次のような出力が返されます。

    ERROR: (gcloud.components.update)
    You cannot perform this action because the gcloud CLI component manager
    is disabled for this installation. You can run the following command
    to achieve the same result for this installation:
    
    sudo apt-get update && sudo apt-get --only-upgrade install ...
  5. long コマンドをコピーし、貼り付けてコンポーネントを更新します。

ローカル Linux コンピュータ

  1. 次のツールがインストールされていることを確認してください。

  2. gcloud CLI を使用して認証します。

    gcloud auth login
    
  3. コンポーネントを更新します。

    gcloud components update
    
  4. kpt から検出できるように、パスに git を設定します。

スクリプトのダウンロード

このセクションでは、スクリプトのダウンロード、必須パラメータとオプション パラメータの設定方法、スクリプトの実行方法について説明します。スクリプトの機能の詳細については、スクリプトについてをご覧ください。

  1. Anthos Service Mesh 1.11.8 をインストールするスクリプトのバージョンを、現在の作業ディレクトリにダウンロードします。

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.11 > install_asm
    
  2. スクリプトを実行可能にします。

    chmod +x install_asm
    

次のステップ