注: 正規サービスは 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
クラスタ内正規サービス コントローラの有効化
正規サービス コントローラが有効になっていない場合は、次の手順で有効にできます。
コントローラを格納する
kpt
パッケージを現在の作業ディレクトリにダウンロードします。kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.12 asm
コントローラの構成を適用します。
kubectl apply -f asm/canonical-service/controller.yaml
クラスタ内正規サービス コントローラの無効化
正規サービス コントローラを無効にする場合は:
コントローラを格納する kpt パッケージを現在の作業ディレクトリにダウンロードします。
kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.12 asm
コントローラをクラスタから削除します。
kubectl delete -f asm/canonical-service/controller.yaml
マネージド正規サービス コントローラの有効化
クラスタ内コントローラをインストールしない場合は、代わりにマネージド正規サービス コントローラを有効にできます。そうすると、コントローラのインストールまたは管理をご自身で行わなくても、メッシュに登録されたすべてのクラスタに対して同じ機能が実行されます。
コントローラは、マネージド コントローラよりもクラスタ内コントローラのほうが優先されるように設計されています。クラスタ内コントローラから移行する場合は、マネージド コントローラに制御を引き継ぐために、実行している各クラスタからクラスタ内コントローラを削除する必要があります。詳しくは、クラスタ内正規サービス コントローラを無効にするをご覧ください。
マネージド コントローラを有効にするには:
Anthos 機能のページ
Google Cloud コンソールで、GKE Enterprise の [クラスタ] ページに移動します。
メッシュ内のすべてのクラスタを「登録」します。
Google Cloud コンソールで、GKE Enterprise の [機能] ページに移動します。
[サービス メッシュ] 機能の横にある [有効にする] をクリックします。
数分後、マネージド コントローラが有効になり、メッシュ内の登録済みクラスタで実行されているワークロード用の正規サービスが作成されます。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.12/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
マネージド コントロール プレーンのインストール
--managed
オプションを使用してマネージド 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.12/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
次のステップ
以下の内容について学習します。