正規サービス コントローラの有効化と無効化

注: 正規サービスは Anthos Service Mesh バージョン 1.6.8 以降で自動的にサポートされます。

asmcli を使用して Anthos Service Mesh をインストールまたはアップグレードすると、正規サービス コントローラがクラスタにデプロイされます。正規サービス コントローラは、同じ論理サービスに属するワークロードをグループ化します。このコントローラは、Google Cloud コンソールの [サービス] ダッシュボードが完全に機能するために必要です。コントローラをデプロイすると、クラスタの asm-system Namespace に canonical-service-controller-manager Deployment が作成されますが、サービスやワークロードには影響しません。

asmcli を使用せずに Anthos Service Mesh をインストールした場合は、正規サービス コントローラがクラスタで有効になっていない可能性があります。クラスタで正規サービス コントローラが有効になっているかどうかを確認するには:

kubectl get services -n asm-system

クラスタ内正規サービス コントローラの有効化

正規サービス コントローラが有効になっていない場合は、次の手順で有効にできます。

  1. コントローラを格納する kpt パッケージを現在の作業ディレクトリにダウンロードします。

    kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.14 asm
    
  2. コントローラの構成を適用します。

        kubectl apply -f asm/canonical-service/controller.yaml
    

クラスタ内正規サービス コントローラの無効化

正規サービス コントローラを無効にする場合は:

  1. コントローラを格納する kpt パッケージを現在の作業ディレクトリにダウンロードします。

    kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.14 asm
    
  2. コントローラをクラスタから削除します。

    kubectl delete -f asm/canonical-service/controller.yaml
    

マネージド正規サービス コントローラの有効化

クラスタ内コントローラをインストールしない場合は、代わりにマネージド正規サービス コントローラを有効にできます。そうすると、コントローラのインストールまたは管理をご自身で行わなくても、メッシュに登録されたすべてのクラスタに対して同じ機能が実行されます。

コントローラは、マネージド コントローラよりもクラスタ内コントローラのほうが優先されるように設計されています。クラスタ内コントローラから移行する場合は、マネージド コントローラに制御を引き継ぐために、実行している各クラスタからクラスタ内コントローラを削除する必要があります。詳しくは、クラスタ内正規サービス コントローラを無効にするをご覧ください。

マネージド コントローラを有効にするには:

Anthos 機能のページ

  1. Google Cloud コンソールで、GKE Enterprise の [クラスタ] ページに移動します。

    GKE Enterprise の [クラスタ] ページに移動

  2. メッシュ内のすべてのクラスタを「登録」します。

  3. Google Cloud コンソールで、GKE Enterprise の [機能] ページに移動します。

    GKE Enterprise の [機能] ページに移動

  4. [サービス メッシュ] 機能の横にある [有効にする] をクリックします。

数分後、マネージド コントローラが有効になり、メッシュ内の登録済みクラスタで実行されているワークロード用の正規サービスが作成されます。kubectl get canonicalservices --all-namespaces を実行して、メッシュのワークロードに対して正規サービスが作成されていることを確認します。

GKE クラスタの作成

新しい GKE クラスタを作成する際に [Anthos Service Mesh を有効にする] オプションを使用した場合、マネージド正規サービス コントローラがデフォルトでインストールされています。

次のコマンドを実行して、マネージド正規サービス コントローラが動作していることを確認します。

gcloud beta container hub mesh describe --project=PROJECT_ID

説明フィールドに、「正規サービスが正常に調整された」というメッセージが表示されます。

  projects/<your project number>/locations/global/memberships/<your cluster name>:
    code: OK
    description: |-
      Revision(s) ready for use: asm-managed.
      All Canonical Services have been reconciled successfully.
    servicemeshFeatureState: {}
    updateTime: '2021-11-16T21:10:36.289467777Z'

正規サービスが正常に調整されていない場合は、エラー メッセージまたは次のようなメッセージが出力されます。

  projects/<your project number>/locations/global/memberships/<your cluster name>:
    code: OK
    description: |-
      Revision(s) ready for use: istiod-asm-173-6.
      The Managed Canonical Service Controller is yielding to the in-cluster controller.  See https://cloud.google.com/service-mesh/v1.14/docs/canonical-service-controller-enable-and-disable#disable-in-cluster-service-controller for instructions on removing the in-cluster controller.
    servicemeshFeatureState: {}
    updateTime: '2021-11-16T21:05:43.286828851Z'
  lifecycleState: ENABLED

マネージド コントロール プレーンのインストール

マネージド Anthos Service Mesh を(Fleet API または [asmcli(/service-mesh/docs/managed/provision-managed-anthos-service-mesh-asmcli)] を使用して)インストールした場合、マネージド正規サービス コントローラがデフォルトでインストールされています。

次のコマンドを実行して、マネージド正規サービス コントローラが動作していることを確認します。

gcloud beta container hub mesh describe --project=PROJECT_ID

説明フィールドに、「正規サービスが正常に調整された」というメッセージが表示されます。

  projects/<your project number>/locations/global/memberships/<your cluster name>:
    code: OK
    description: |-
      Revision(s) ready for use: asm-managed.
      All Canonical Services have been reconciled successfully.
    servicemeshFeatureState: {}
    updateTime: '2021-11-16T21:10:36.289467777Z'

正規サービスが正常に調整されていない場合は、エラー メッセージまたは次のようなメッセージが出力されます。

  projects/<your project number>/locations/global/memberships/<your cluster name>:
    code: OK
    description: |-
      Revision(s) ready for use: istiod-asm-173-6.
      The Managed Canonical Service Controller is yielding to the in-cluster controller.  See https://cloud.google.com/service-mesh/v1.14/docs/canonical-service-controller-enable-and-disable#disable-in-cluster-service-controller for instructions on removing the in-cluster controller.
    servicemeshFeatureState: {}
    updateTime: '2021-11-16T21:05:43.286828851Z'
  lifecycleState: ENABLED

次のステップ

以下の内容について学習します。