Solucionar problemas de configuración a nivel de flota

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

Resolver problemas de configuración a nivel de flota

Para solucionar los problemas que puedan surgir al configurar tu flota, sigue estas instrucciones:

1. Validar si Identity Service de GKE está habilitado

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

$ gcloud container fleet identity-service describe

Si no ves ningún error, significa que 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ó correctamente en tu flota al configurar la función.

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

2. Ver 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 dos secciones siguientes:

  • membershipSpecs contiene la configuración del proveedor de identidades que ha especificado para cada clúster registrado en la flota. GKE Identity Service se configura en cada clúster mediante estas configuraciones.

  • membershipStates muestra el estado actual de GKE Identity Service en cada clúster, incluida la configuración del proveedor de identidades pertinente y los errores que se hayan podido producir durante la configuración.

Para solucionar problemas en un clúster, vaya a membershipStates, busque el clúster y consulte los siguientes campos:

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

Ejemplo

Si tienes dos clústeres, helloworld y foobar, registrados en la flota, la salida tendrá 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. Verificar el estado del clúster

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

  • El valor de state es OK: indica que no se ha producido ningún error al configurar el servicio de identidad de GKE en el clúster con la configuración especificada en membershipSpecs.

    Si la configuración del clúster con el que estás teniendo problemas (por ejemplo, helloworld) es diferente en membershipSpecs y membershipStates, es probable que hayas actualizado la configuración del clúster. Espera unos minutos a que Identity Service for GKE propague los cambios al clúster y vuelve a comprobar el estado.

    Si la configuración del clúster en el que estás solucionando problemas (por ejemplo, helloworld) es la misma en membershipSpecs y membershipStates, significa que GKE Identity Service se ha configurado correctamente.

  • El campo state es ERROR: indica que se han producido errores al configurar GKE Identity Service en el clúster con la configuración especificada en membershipSpecs.

    Para solucionar el problema, consulta Solucionar problemas habituales. Después de seguir los pasos de solución de problemas necesarios, espera unos minutos y vuelve a comprobar el estado.

Solucionar problemas frecuentes

La API de GKE Identity Service no está habilitada

Este problema se produce cuando la API de servicio de identidad de GKE 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 admitido

Este problema se produce cuando se usa un tipo de clúster no admitido.

Mensaje de error

GKE Identity Service feature does not support this cluster type

Solución

Para obtener información sobre los tipos de clúster admitidos, consulta Tipos de clúster o ponte en contacto con el equipo de Asistencia de Google Cloud si quieres solicitar un nuevo tipo de clúster .

Se han encontrado protocolos no admitidos en la configuración

Este problema se produce cuando la configuración de identidad que ha aplicado a su clúster contiene protocolos no admitidos.

Mensaje de error

unsupported protocol found in configuration, aborting reconciliation.

Solución

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

Actualiza la configuración del clúster para que solo contenga los protocolos admitidos mencionados anteriormente. Para editar la configuración, ejecuta el siguiente comando:

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

Sustituye CLUSTER_KUBECONFIG por la ruta al archivo kubeconfig del clúster. Si hay varios contextos en el archivo kubeconfig, se usa el contexto actual. Es posible que tengas que restablecer el contexto actual al 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 su clúster.

Mensaje de error

Authentication configuration is not present for this membership

Solución

Aplica una configuración de identidad al clúster siguiendo las instrucciones de Configurar clústeres.

Falta el permiso de gestión de identidades y accesos 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

Sustituye USER_ID por tu cuenta de Google.

Proveedores de identidades 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 de name para varios proveedores de identidades.

Mensaje de error

Configuration contains multiple identity providers with the same name

Solución

Cambia el nombre o elimina las entradas duplicadas de tu configuración.

Hay varios proveedores de tipo google en una configuración de identidad

Este problema se produce cuando ClientConfig se configura con varias configuraciones de 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

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

Error al obtener la definición de recurso personalizado de ClientConfig

Este problema se produce cuando se produce un error al obtener la definición de recurso personalizado de ClientConfig del clúster.

Mensaje de error

error fetching the ClientConfig's Custom Resource Definition: ERROR_REASON

Solución

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

Error al actualizar el ClientConfig de GKE Identity Service

Este problema se produce cuando hay un error al actualizar ClientConfig en el clúster.

Mensaje de error

Error updating AIS ClientConfig: ERROR_REASON

Solución

Utiliza 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 ClientConfig, que se debe crear al instalar GKE Identity Service, no está presente en el clúster. Si falta un ClientConfig, significa que GKE Identity Service no se ha instalado 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 del clúster se hayan eliminado por error. Puedes intentar crear otro clúster. Si aparece el mismo error en el nuevo clúster, ponte en contacto con el administrador del clúster o con el equipo de Asistencia de Google Cloud.

El pod del servicio de identidad de GKE no se ha iniciado

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

Mensaje de error

GKE Identity Service pod is not running (pending)

Solución

Este problema debería resolverse automáticamente en unos minutos. Después, el pod de Identity Service para GKE cambiará al estado running.