Anthos Service Mesh オンプレミスにクラスタを追加する

このガイドでは、複数の GKE on VMware で Anthos Service Mesh を設定する方法について説明します。このプロセスを拡張することで、任意の数のクラスタをメッシュに組み込むことができます。

マルチクラスタの Anthos Service Mesh 構成を使用すると、大規模な組織で重要な課題(スケール、ロケーション、分離など)を解決できます。詳細については、マルチクラスタのユースケースをご覧ください。また、サービス メッシュを最大限活用するため、アプリケーションを最適化する必要があります。詳細については、Anthos Service Mesh 用のアプリケーションの準備をご覧ください。

以前のバージョンの Anthos Service Mesh がインストールされている場合は、GKE on VMware での Anthos Service Mesh のアップグレードをご覧ください。このインストールにより、クラスタでサポートされる機能が有効になります。

要件

このガイドは、Anthos Service Mesh オンプレミスのインストールで示される手順を使用して作成された、新規または既存のクラスタを使用していることを前提としています。

  • Anthos Service Mesh オンプレミスのインストールにある要件の他に、このガイドの要件を満たす必要があります。

  • Anthos Service Mesh バージョン 1.8 以降がクラスタにインストールされている。クラスタを必要なバージョンにインストールまたはアップグレードするには、Anthos Service Mesh オンプレミスのインストールをご覧ください。

    gkectl version

    gkectl がインストールされていない場合は、GKE On-Prem のダウンロードをご覧ください。

  • すべてのクラスタは vSphere 上の GKE On-Prem で実行されます。

  • クラスタに Anthos Service Mesh をインストールする際に使用した構成パッケージが必要です。別のコピーが必要な場合は、次のコマンドを使用してダウンロードできます。

    kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.8-asm .

    構成パッケージで値を設定する必要はありません。

east-west ゲートウェイのインストール

  1. east-west トラフィック専用のゲートウェイを cluster1 にインストールします。デフォルトでは、このゲートウェイはインターネット上で公開されます。本番環境のシステムでは、外部からの攻撃を防ぐため、追加のアクセス制限(ファイアウォール ルールなど)が必要になる場合があります。

    asm/istio/expansion/gen-eastwest-gateway.sh \
    --mesh mesh1 --cluster cluster1 --network network1 --revision asm-186-8 | \
    istioctl --context="${CTX_CLUSTER1}" install -y -f -
    
  2. cluster1 用の east-west トラフィック専用のゲートウェイを cluster2 にインストールします。

    /asm/istio/expansion/gen-eastwest-gateway.sh \
    --mesh mesh1 --cluster cluster2 --network network2 | \
    istioctl --context="${CTX_CLUSTER2}" install -y -f -
    

サービスの公開

クラスタは別々のネットワーク上にあるため、すべてのサービス(*.local)を両方のクラスタの east-west ゲートウェイ上で公開する必要があります。このゲートウェイはインターネットで一般公開されますが、その背後にあるサービスは、信頼できる mTLS 証明書とワークロード ID を持つサービスのみが、両者が同じネットワーク上にあるかのように、アクセスできます。

  1. cluster1 用の east-west ゲートウェイ経由でサービスを公開します。

    kubectl --context="${CTX_CLUSTER1}" apply -n istio-system -f \
    asm/istio/expansion/expose-services.yaml
    
  2. cluster2 用の east-west ゲートウェイ経由でサービスを公開します。

    kubectl --context="${CTX_CLUSTER2}" apply -n istio-system -f \
    asm/istio/expansion/expose-services.yaml
    

エンドポイント検出の有効化

  1. cluster1 の API サーバーへのアクセスを提供するリモート シークレットを cluster2 にインストールします。

    istioctl x create-remote-secret \
    --context="${CTX_CLUSTER1}" \
    --name=cluster1 | \
    kubectl apply -f - --context="${CTX_CLUSTER2}"
    
  2. cluster2 の API サーバーへのアクセスを提供するリモート シークレットを cluster1 にインストールします。

    istioctl x create-remote-secret \
    --context="${CTX_CLUSTER2}" \
    --name=cluster2 | \
    kubectl apply -f - --context="${CTX_CLUSTER1}"
    

次のステップ