バージョン 1.9

GKE のインストール、移行、アップグレード

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

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

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

  • Anthos Service Mesh 1.8 or a 1.9 patch release からのアップグレード。これより前のバージョンからのアップグレードはサポートされていません。

  • オープンソースの Istio 1.8 or 1.9 から Anthos Service Mesh への移行。これより前のバージョンの Istio からの移行はサポートされていません。移行を計画する際は、Istio からの移行の準備を必ず確認してください。

要件

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

Anthos と Anthos Service Mesh の違い

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

  • Anthos サブスクライバーの場合は、Anthos API を必ず有効にしてください。

    API の有効化

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

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

要件

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

    • 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 の代わりとして環境ワークロード ID プールを使用できます。Environ(プレビュー)で Mesh CA を使用するには、クラスタが所属するプロジェクトにクラスタを登録するようにスクリプトを実行する前に、クラスタの登録の手順を行うか、--enable-registration フラグを指定する必要があります。Environ Workload Identity プールを使用するスクリプトの実行例については、Environ での Mesh CA の有効化をご覧ください。

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

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

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

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

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

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

認証局の選択

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

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

  • Mesh CA は、信頼性とスケーラビリティに優れたサービスで、Google Cloud 上で動的にスケーリングされるワークロード用に最適化されています。
  • Mesh CA を使用する場合、Google は CA バックエンドのセキュリティと可用性を管理します。
  • Mesh CA を使用すると、クラスタ間で単一のルート オブ トラストを使用できます。
Anthos Service Mesh の新規インストールでは、Mesh CA はデフォルトでスクリプトによって有効化されます。

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

  • カスタム CA を使用する場合。
  • Istio からの移行元である場合。

    Citadel を選択すると、移行中に mTLS トラフィックは中断されないため、ダウンタイムはほとんどありません。メッシュ CA を選択する場合は、信頼のルートが Citadel から Mesh CA に変更されるため、移行時のダウンタイムをスケジューリングする必要があります。Mesh CA ルートオブ トラストへの移行を完了するには、すべての名前空間内のすべての Pod を再起動する必要があります。このプロセスにおいて、古い Pod は新しい Pod との mTLS 接続を確立できません。

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

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

クラスタの登録

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

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

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

スクリプトは、Cloud Shell 上、または Linux を実行するローカルマシン上で実行できます。Cloud Shell で必要なすべてのツールがプリインストールされます。 macOS には bash の古いバージョンが付属しているため、サポートされませんので注意してください。

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. Cloud Console に移動します。
  2. Cloud プロジェクトを選択します。
  3. Cloud Console ウィンドウの上部にある [Cloud Shell をアクティブにする] ボタンをクリックします。

    Google Cloud Platform Console

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

    Cloud Shell セッション

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

    gcloud components update
    

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

    ERROR: (gcloud.components.update)
    You cannot perform this action because the Cloud SDK 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. 次のツールがインストールされていることを確認してください。

    • Cloud SDKgcloud コマンドライン ツール)
    • 標準のコマンドライン ツール: awkcurlgrepsedsha256sumtr
    • git
    • kpt
    • kubectl
    • jq
  2. Cloud SDK で認証します。

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

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

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

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

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

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.9 > install_asm
    
  2. 現在の作業ディレクトリにファイルの SHA-256 をダウンロードします。

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.9.sha256 > install_asm.sha256
    
  3. 両方のファイルを同じディレクトリに置いて、ダウンロードを検証します。

    sha256sum -c --ignore-missing install_asm.sha256
    

    検証に成功すると、コマンドの出力は install_asm: OK になります。互換性を維持するために、上記のコマンドで --ignore-missing フラグを使用して、スクリプトの任意のバージョンを install_asm に変更できます。

  4. スクリプトを実行可能にします。

    chmod +x install_asm
    

次のステップ