フリートレベルの設定に関する問題のトラブルシューティング
このドキュメントでは、GKE Identity Service のフリートレベルの設定に関するトラブルシューティングの手順について説明します。
フリートレベルの設定に関する問題を解決する
フリートの設定中に発生する可能性のある問題を解決するには、次の操作を行ってください。
1. GKE Identity Service が有効になっているかどうかを検証する
プロジェクトで GKE Identity Service が有効になっているかどうかを確認するには、次のコマンドを実行します。
$ gcloud container fleet identity-service describe
エラーが表示されない場合は、GKE Identity Service が有効になっているので、次の手順に進みます。
エラー:
Identity Service Feature for project <your-project-id> is not enabled
このエラーが表示される場合、機能の設定時にフリートで GKE Identity Service が有効になっていなかったことを示します。
解決策: プロジェクトでこの機能が有効になっていることを確認するには、GKE Identity Service のクラスタを構成するの手順をご覧ください。
2. GKE Identity Service のステータスを確認する
GKE Identity Service の現在のステータスを表示するには、次のコマンドを実行します。
$ gcloud container fleet identity-service describe
このコマンドの出力には、次の 2 つのセクションがあります。
membershipSpecs
には、フリートに登録されている各クラスタに指定した ID プロバイダ構成が含まれます。GKE Identity Service は、これらの構成を使用して各クラスタに構成されます。membershipStates
には、関連する ID プロバイダの構成や設定中に発生したエラーなど、各クラスタの GKE Identity Service の現在の状態が表示されます。
クラスタの問題をトラブルシューティングするには、membershipStates
でクラスタを検索し、次のフィールドを確認します。
state
フィールド:membershipStates -> <cluster-identifier> -> identityservice -> state
failureReason
フィールド:membershipStates -> <cluster-identifier> -> identityservice -> failureReason
.
例
フリートに 2 つのクラスタ helloworld
と foobar
が登録されている場合、出力は次の構造になります。
Identity Service Feature:
createTime: '222-11-10T23:05:6.146566392Z'
membershipSpecs:
projects/<your-project-number>/locations/<location>/memberships/helloworld:
identityservice:
authMethods:
- name: oidc
oidcConfig:
clientId: id
issuerUri: https://accounts.google.com
... other fields
projects/<your-project-number>/locations/<location>/memberships/foobar:
identityservice:
authMethods:
- name: oidc
oidcConfig:
clientId: id
issuerUri: https://accounts.google.com
... other fields
membershipStates:
projects/<your-project-number>/location/<location>/memberships/helloworld:
identityservice:
failureReason: AIS feature does not support this cluster type
memberConfig:
authMethods:
- name: oidc
oidcConfig:
clientId: id
issuerUri: https://accounts.google.com
... other fields
state: ERROR
state:
code: OK
updateTime: '2022-11-11T20:39:59.556176650Z'
projects/<your-project-number>/location/<location>/memberships/foobar:
identityservice:
memberConfig:
authMethods:
- name: oidc
oidcConfig:
clientId: id
issuerUri: https://accounts.google.com
... other fields
state: OK
state:
code: OK
updateTime: '2022-11-11T20:39:59.556176650Z'
name: projects/<project-number>/locations/global/features/identityservice
updateTime: '2022-11-11T20:40:31.859321901Z'
3. クラスタの状態を確認する
クラスタ内の GKE Identity Service の状態を確認するには、次の点を確認します。
state
値がOK
: これは、membershipSpecs
で指定された構成を使用して、クラスタに GKE Identity Service を構成したときにエラーが発生しなかったことを示します。トラブルシューティングしているクラスタの構成(
helloworld
など)がmembershipSpecs
とmembershipStates
で異なる場合は、クラスタの構成を更新した可能性があります。GKE Identity Service が変更をクラスタに反映するまで数分待ってから、もう一度ステータスを確認します。トラブルシューティングしているクラスタの構成(
helloworld
など)がmembershipSpecs
とmembershipStates
で同じ場合、GKE Identity Service は正しく構成されています。state
フィールドがERROR
: これは、membershipSpecs
で指定された構成を使用して、クラスタに GKE Identity Service を構成したときにエラーが発生したことを示します。問題を解決するには、一般的な問題のトラブルシューティングをご覧ください。必要なトラブルシューティングの手順を完了したら、数分待ってから、もう一度ステータスを確認します。
一般的な問題のトラブルシューティング
GKE Identity Service API が有効になっていない
この問題は、GKE Identity Service API が有効になっていない場合に発生します。
エラー メッセージ
anthosidentityservice.googleapis.com is not enabled
解決策
API を有効にするには、次のコマンドを実行します。
$ gcloud services enable anthosidentityservice.googleapis.com
サポートされていないクラスタタイプ
この問題は、サポートされていないクラスタタイプを使用している場合に発生します。
エラー メッセージ
GKE Identity Service feature does not support this cluster type
解決策
サポートされているクラスタタイプについては、クラスタタイプをご覧ください。新しいクラスタタイプのリクエストについては、Google Cloud サポートにお問い合わせください。
サポートされていないプロトコルが構成にある
この問題は、クラスタに適用した ID 構成に、サポートされていないプロトコルが含まれている場合に発生します。
エラー メッセージ
unsupported protocol found in configuration, aborting reconciliation.
解決策
GKE Identity Service のフリートレベルの設定では、次のことが可能です。
クラスタの構成を更新して、上記のサポート対象のプロトコルのみを含めるようにします。構成を編集するには、次のコマンドを実行します。
kubectl --kubeconfig CLUSTER_KUBECONFIG -n kube-public edit clientconfig default
CLUSTER_KUBECONFIG
は、クラスタの kubeconfig ファイルへのパスに置き換えます。kubeconfig に複数のコンテキストがある場合は、現行のコンテキストが使用されます。コマンドを実行する前に、現在のコンテキストを正しいクラスタにリセットすることが必要になる場合があります。
クラスタに ID 構成がない
この問題は、クラスタに構成が適用されていない場合に発生します。
エラー メッセージ
Authentication configuration is not present for this membership
解決策
クラスタを構成するの手順に沿って、ID 構成をクラスタに適用します。
GKE Hub 管理者の IAM 権限がない
この問題は、使用しているプロジェクトに gkehub.admin
ロールがない場合に発生します。
エラー メッセージ
PERMISSION_DENIED: Permission 'gkehub.memberships.list' denied on '`projects//locations/ /memberships`'
PERMISSION_DENIED: Permission 'gkehub.features.get' denied on '`projects//locations/global/features/identityservice`'
PERMISSION_DENIED: Permission 'gkehub.features.delete' denied on '`projects//locations/global/features/identityservice`'
PERMISSION_DENIED: Permission 'gkehub.features.create' denied on '`projects//locations/global/features/identityservice`'
解決策
ID が project_id
のプロジェクトのオーナーは、次のコマンドを実行する必要があります。
gcloud projects add-iam-policy-binding project_id --member=user:USER_ID --role=roles/gkehub.admin
USER_ID
は、Google アカウントに置き換えます。
ID 構成に一意でない ID プロバイダが存在する
この問題は、クラスタの GKE Identity Service 構成で、複数の ID プロバイダに同じ name
値が設定されている場合に発生します。
エラー メッセージ
Configuration contains multiple identity providers with the same name
解決策
重複するエントリの名前を変更するか、構成から削除します。
ID 構成に複数の google
タイプのプロバイダが存在する
この問題は、ClientConfig が複数の google
タイプの構成で構成されている場合に発生します。
エラー メッセージ
configuration contains multiple identity providers of type 'google'
解決策
構成の spec/authentication
セクションには、google
タイプの構成を 1 つだけ含めることができます。
クラスタの構成を更新して、google
タイプの構成が複数存在しないようにします。構成を編集するには、次のコマンドを実行します。
kubectl --kubeconfig CLUSTER_KUBECONFIG -n kube-public edit clientconfig default
CLUSTER_KUBECONFIG
は、クラスタの kubeconfig ファイルへのパスに置き換えます。kubeconfig に複数のコンテキストがある場合は、現行のコンテキストが使用されます。コマンドを実行する前に、現在のコンテキストを正しいクラスタにリセットすることが必要になる場合があります。
ClientConfig のカスタム リソース定義の取得中にエラーが発生した
この問題は、クラスタから ClientConfig のカスタム リソース定義を取得する際にエラーが起きた場合に発生します。
エラー メッセージ
error fetching the ClientConfig's Custom Resource Definition: ERROR_REASON
解決策
ERROR_REASON
に表示される詳細情報を使用して、この問題を解決します。
GKE Identity Service ClientConfig の更新中にエラーが発生した
この問題は、クラスタ内の ClientConfig の更新中にエラーがある場合に発生します。
エラー メッセージ
Error updating AIS ClientConfig: ERROR_REASON
解決策
ERROR_REASON>
に表示される詳細情報を使用して、この問題を解決します。
クラスタに ClientConfig が存在しない
この問題は、GKE Identity Service のインストール時に作成されるはずの ClientConfig がクラスタに存在しない場合に発生します。ClientConfig がない場合は、GKE Identity Service がクラスタに正しくインストールされていないことを示します。
エラー メッセージ
ClientConfig CR not present, expected to be created when AIS was installed
解決策
クラスタの GKE Identity Service リソースが誤って削除された可能性があります。新しいクラスタの作成を試すことができます。新しいクラスタでも同じエラーが発生する場合は、クラスタ管理者または Google Cloud サポートにお問い合わせください。
GKE Identity Service Pod が起動していない
この問題は、GKE Identity Service Pod が pending
状態にある場合に発生します。
エラー メッセージ
GKE Identity Service pod is not running (pending)
解決策
この問題は数分以内に自動的に解決し、その後、GKE Identity Service Pod は running
状態に切り替わります。