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
esOK
: esto indica que no se produjo ningún error cuando se configuró GKE Identity Service en el clúster con la configuración especificada enmembershipSpecs
.Si la configuración del clúster que solucionas (por ejemplo,
helloworld
) es diferente enmembershipSpecs
ymembershipStates
, 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 enmembershipSpecs
ymembershipStates
, entonces GKE Identity Service se configuró de forma correcta.El campo
state
esERROR
: esto indica que hubo errores cuando se configuró GKE Identity Service en el clúster con la configuración especificada enmembershipSpecs
.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
.