Soluciona problemas de configuración a nivel de la flota

En este documento, se proporcionan instrucciones para solucionar problemas para la configuración a nivel de la flota de GKE Identity Service.

Resuelve problemas de configuración a nivel de la flota

Para resolver problemas que puedan ocurrir cuando configuras tu flota, sigue estas instrucciones:

1. Valida si GKE Identity Service está habilitado

Para validar si GKE Identity Service está habilitado para tu proyecto, ejecuta el siguiente comando:

$ gcloud container fleet identity-service describe

Si no ves ningún error, GKE Identity Service está habilitado y puedes continuar con la siguiente instrucción.

Error: Identity Service Feature for project <your-project-id> is not enabled

Si ves este error, significa que GKE Identity Service no se habilitó de forma correcta para tu flota cuando configuraste la función.

Solución: Para asegurarte de que la función esté habilitada en tu proyecto, consulta las instrucciones en Configura clústeres para GKE Identity Service.

2. Visualiza el estado de GKE Identity Service

Para ver el estado actual de GKE Identity Service, ejecuta el siguiente comando:

$ gcloud container fleet identity-service describe

El resultado de este comando tiene las siguientes dos secciones:

  • membershipSpecs contiene la configuración del proveedor de identidad que especificaste para cada clúster registrado en la flota. GKE Identity Service se configura en cada clúster con estas opciones de configuración.

  • membershipStates muestra el estado actual de GKE Identity Service en cada clúster, incluida la configuración del proveedor de identidad relevante y cualquier error que pueda haber ocurrido durante la configuración.

Para solucionar problemas en un clúster, en membershipStates, busca el clúster y los siguientes campos:

  • campo state: membershipStates -> <cluster-identifier> -> identityservice -> state
  • campo failureReason: membershipStates -> <cluster-identifier> -> identityservice -> failureReason.

Ejemplo

Si tienes dos clústeres, helloworld y foobar, registrados en la flota, el resultado tiene la siguiente estructura:

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. Verifica el estado del clúster

Para verificar el estado de GKE Identity Service en un clúster, comprueba lo siguiente:

  • El valor state es OK: esto indica que no se produjo ningún error cuando se configuró GKE Identity Service en el clúster con la configuración especificada en membershipSpecs.

    Si la configuración del clúster que solucionas (por ejemplo, helloworld) es diferente en membershipSpecs y membershipStates, es probable que hayas actualizado la configuración del clúster. Espera unos minutos para que GKE Identity Service propague los cambios al clúster y vuelva a verificar el estado.

    Si la configuración del clúster que solucionas (por ejemplo, helloworld) es la misma en membershipSpecs y membershipStates, entonces GKE Identity Service se configuró de forma correcta.

  • El campo state es ERROR: esto indica que hubo errores cuando se configuró GKE Identity Service en el clúster con la configuración especificada en membershipSpecs.

    Para resolver el problema, consulta Soluciona los problemas habituales. Después de seguir los pasos necesarios para la solución de problemas, espera unos minutos y vuelve a verificar el estado.

Soluciona los problemas comunes.

La API de GKE Identity Service no está habilitada

Este problema se produce cuando la API de GKE Identity Service no está habilitada.

Mensaje de error

anthosidentityservice.googleapis.com is not enabled

Solución

Para habilitar la API, ejecuta el siguiente comando:

$ gcloud services enable anthosidentityservice.googleapis.com

Tipo de clúster no compatible

Este problema se produce cuando usas un tipo de clúster que no es compatible.

Mensaje de error

GKE Identity Service feature does not support this cluster type

Solución

Para obtener información sobre los tipos de clústeres compatibles, consulta Tipos de clústeres o comunícate con el equipo de Asistencia de Google Cloud para solicitudes nuevas de tipos de clústeres.

Protocolos no compatibles que se encontraron en la configuración

Este problema se produce cuando la configuración de identidad que aplicaste a tu clúster contiene protocolos que no son compatibles.

Mensaje de error

unsupported protocol found in configuration, aborting reconciliation.

Solución

La configuración a nivel de la flota para GKE Identity Service admite lo siguiente:

Actualiza la configuración en el clúster para que solo contenga los protocolos compatibles que se mencionaron antes. Para editar la configuración, ejecuta el siguiente comando:

kubectl --kubeconfig CLUSTER_KUBECONFIG -n kube-public edit clientconfig default

Reemplaza CLUSTER_KUBECONFIG por la ruta de acceso al archivo kubeconfig del clúster. Si hay varios contextos en kubeconfig, se usa el contexto actual. Es posible que debas restablecer el contexto actual en el clúster correcto antes de ejecutar el comando.

El clúster no tiene una configuración de identidad

Este problema se produce cuando no se aplica ninguna configuración a tu clúster.

Mensaje de error

Authentication configuration is not present for this membership

Solución

Para aplicar una configuración de identidad al clúster, sigue las instrucciones en Configura clústeres.

Falta el permiso de IAM de administrador de GKE Hub

Este problema se produce cuando no tienes el rol gkehub.admin en el proyecto que estás usando.

Mensajes de error

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`'

Solución

Un propietario del proyecto con el ID project_id debe ejecutar el siguiente comando:

gcloud projects add-iam-policy-binding project_id --member=user:USER_ID --role=roles/gkehub.admin

Reemplaza USER_ID con tu Cuenta de Google.

Proveedores de identidad no únicos presentes en una configuración de identidad

Este problema se produce cuando la configuración de GKE Identity Service de un clúster tiene el mismo valor name para varios proveedores de identidad.

Mensaje de error

Configuration contains multiple identity providers with the same name

Solución

Cambia el nombre de las entradas duplicadas o quítalas de tu configuración.

Varios proveedores de tipo google presentes en una configuración de identidad

Este problema se produce cuando ClientConfig está configurado con varias opciones de configuración del tipo google.

Mensaje de error

configuration contains multiple identity providers of type 'google'

Solución

La sección spec/authentication de la configuración puede contener como máximo una configuración de tipo google.

Actualiza la configuración del clúster para que no tenga más de una configuración de tipo google. Para editar la configuración, ejecuta el siguiente comando:

kubectl --kubeconfig CLUSTER_KUBECONFIG -n kube-public edit clientconfig default

Reemplaza CLUSTER_KUBECONFIG por la ruta de acceso al archivo kubeconfig del clúster. Si hay varios contextos en kubeconfig, se usa el contexto actual. Es posible que debas restablecer el contexto actual en el clúster correcto antes de ejecutar el comando.

Se produjo un error cuando se recuperaba la definición de recurso personalizado de ClientConfig

Este problema ocurre cuando se produce un error cuando se recupera la definición de recursos personalizados de ClientConfig desde el clúster.

Mensaje de error

error fetching the ClientConfig's Custom Resource Definition: ERROR_REASON

Solución

Usa los detalles que se muestran en ERROR_REASON para resolver este problema.

Se produjo un error cuando se actualizaba el ClientConfig de GKE Identity Service

Este problema ocurre cuando se produce un error en la actualización del ClientConfig en el clúster.

Mensaje de error

Error updating AIS ClientConfig: ERROR_REASON

Solución

Usa los detalles que se muestran en ERROR_REASON> para resolver este problema.

ClientConfig no está presente en el clúster

Este problema se produce cuando el ClientConfig, que debe crearse cuando se instala GKE Identity Service, no está presente en el clúster. Un ClientConfig faltante indica que GKE Identity Service no se instaló correctamente en el clúster.

Mensaje de error

ClientConfig CR not present, expected to be created when AIS was installed

Solución

Es posible que los recursos de GKE Identity Service en el clúster se hayan borrado por accidente. Puedes intentar crear un clúster nuevo. Si ves el mismo error en el clúster nuevo, comunícate con el administrador de tu clúster o con el equipo de Asistencia de Google Cloud.

No se inició el Pod de GKE Identity Service

Este problema se produce cuando el Pod de GKE Identity Service está en estado pending.

Mensaje de error

GKE Identity Service pod is not running (pending)

Solución

Este problema debería resolverse de forma automática en unos minutos, después de lo cual el Pod de GKE Identity Service cambia al estado running.