バージョン 1.8

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

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

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

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

要件

開始する前に、このガイドは、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-182-2 | \
    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}"
    

次のステップ