La herramienta gkectl
tiene dos comandos para solucionar problemas con los clústeres:
gkectl diagnose cluster
y gkectl diagnose snapshot
. Los comandos funcionan
tanto con clústeres de administrador como de usuario. En este documento se muestra cómo usar el comando gkectl diagnose
para diagnosticar problemas en los clústeres.
Ten en cuenta la siguiente limitación de los clústeres avanzados:
- Versión 1.31: los comandos
gkectl diagnose
no se admiten en clústeres avanzados. - Versión 1.32 y posteriores: los comandos
gkectl diagnose
se admiten en clústeres avanzados.
Para obtener más información sobre cómo usar el comando gkectl diagnose snapshot
para crear instantáneas que ayuden al equipo de Asistencia de Cloud a diagnosticar problemas, consulta el artículo Crear instantáneas para diagnosticar clústeres.
gkectl diagnose cluster
Este comando realiza comprobaciones del estado de tu clúster e informa de los errores. El comando ejecuta comprobaciones del estado de los siguientes componentes:
- vCenter
- Credencial
- DRS
- Grupos de antiafinidad
- Red
- Versión
- centro de datos normal
- Datastore
- ResourcePool
- Carpeta
- Red
- Balanceador de carga (F5, Seesaw o manual)
- Clústeres de usuarios y grupos de nodos
- Agrupar objetos
- Disponibilidad del servidor Konnectivity del clúster de usuarios
- Objetos de máquina y los nodos de clúster correspondientes
- Pods en los espacios de nombres
kube-system
ygke-system
- Plano de control
- Volúmenes persistentes de vSphere en el clúster
- Señales de contención de vCPU (CPU virtual) y memoria de clústeres de usuario y de administrador
- Alarmas Uso de CPU del host y Uso de memoria preconfiguradas de ESXi de clústeres de usuarios y de administradores.
- Hora del día
- Política de red de nodos de un clúster con Dataplane V2 habilitado
- Estado general del agente de nodo de Dataplane V2
Diagnosticar un clúster de administradores
Para diagnosticar un clúster de administrador, especifica la ruta de acceso a él:
gkectl diagnose cluster --kubeconfig=ADMIN_CLUSTER_KUBECONFIG
Sustituye ADMIN_CLUSTER_KUBECONFIG
por la ruta del archivo kubeconfig de tu clúster de administrador.
El siguiente ejemplo de resultado se devuelve del comando gkectl diagnose cluster
:
Preparing for the diagnose tool...
Diagnosing the cluster......DONE
- Validation Category: Admin Cluster Connectivity
Checking VMs TOD (availability)...SUCCESS
Checking Konnectivity Server (readiness)...SUCCESS
- Validation Category: Admin Cluster F5 BIG-IP
Checking f5 (credentials, partition)...SUCCESS
- Validation Category: Admin Cluster VCenter
Checking Credentials...SUCCESS
Checking DRS enabled...SUCCESS
Checking Hosts for AntiAffinityGroups...SUCCESS
Checking Version...SUCCESS
Checking Datacenter...SUCCESS
Checking Datastore...SUCCESS
Checking Resource pool...SUCCESS
Checking Folder...SUCCESS
Checking Network...SUCCESS
- Validation Category: Admin Cluster
Checking cluster object...SUCCESS
Checking machine deployment...SUCCESS
Checking machineset...SUCCESS
Checking machine objects...SUCCESS
Checking kube-system pods...SUCCESS
Checking anthos-identity-service pods...SUCCESS
Checking storage...SUCCESS
Checking resource...SUCCESS
Checking virtual machine resource contention...SUCCESS
Checking host resource contention...SUCCESS
All validation results were SUCCESS.
Cluster is healthy!
Si hay un problema con una dirección IP virtual (VIP) en el clúster de destino, usa la marca --config
para proporcionar el archivo de configuración del clúster de administrador y obtener más información de depuración.
gkectl diagnose cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config CLUSTER_CONFIG
Sustituye CLUSTER_CONFIG
por la ruta del archivo de configuración del clúster de administrador o de usuario.
La siguiente salida de ejemplo muestra que el comando gkectl diagnose cluster
ahora puede conectarse correctamente al clúster y comprobar si hay problemas:
Failed to access the api server via LB VIP "...": ...
Try to use the admin master IP instead of problematic VIP...
Reading config with version "[CONFIG_VERSION]"
Finding the admin master VM...
Fetching the VMs in the resource pool "[RESOURCE_POOL_NAME]"...
Found the "[ADMIN_MASTER_VM_NAME]" is the admin master VM.
Diagnosing admin|user cluster "[TARGET_CLUSTER_NAME]"...
...
Diagnosticar un clúster de usuarios
Para diagnosticar un clúster de usuarios, debes especificar su nombre. Si necesitas obtener el nombre de un clúster de usuario, ejecuta el siguiente comando:
kubectl get cluster --kubeconfig=USER_CLUSTER_KUBECONFIG
Sustituye USER_CLUSTER_KUBECONFIG
por la ruta del archivo kubeconfig del clúster de usuario.
Especifica el nombre del clúster de usuarios junto con el archivo de configuración de la siguiente manera:
gkectl diagnose cluster --kubeconfig=ADMIN_CLUSTER_KUBECONFIG \ --cluster-name=USER_CLUSTER_NAME
Sustituye USER_CLUSTER_NAME
por el nombre del clúster de usuarios.
El siguiente ejemplo de resultado se devuelve del comando gkectl diagnose cluster
:
Preparing for the diagnose tool...
Diagnosing the cluster......DONE
Diagnose result is saved successfully in <DIAGNOSE_REPORT_JSON_FILE>
- Validation Category: User Cluster Connectivity
Checking Node Network Policy...SUCCESS
Checking VMs TOD (availability)...SUCCESS
Checking Dataplane-V2...Success
- Validation Category: User Cluster F5 BIG-IP
Checking f5 (credentials, partition)...SUCCESS
- Validation Category: User Cluster VCenter
Checking Credentials...SUCCESS
Checking DRS enabled...SUCCESS
Checking Hosts for AntiAffinityGroups...SUCCESS
Checking VSphere CSI Driver...SUCCESS
Checking Version...SUCCESS
Checking Datacenter...SUCCESS
Checking Datastore...SUCCESS
Checking Resource pool...SUCCESS
Checking Folder...SUCCESS
Checking Network...SUCCESS
- Validation Category: User Cluster
Checking user cluster and node pools...SUCCESS
Checking cluster object...SUCCESS
Checking machine deployment...SUCCESS
Checking machineset...SUCCESS
Checking machine objects...SUCCESS
Checking control plane pods...SUCCESS
Checking kube-system pods...SUCCESS
Checking gke-system pods...SUCCESS
Checking gke-connect pods...SUCCESS
Checeking anthos-identity-service pods...SUCCESS
Checking storage...SUCCESS
Checking resource...SUCCESS
Checking virtual machine resource contention...SUCCESS
Checking host resource contention...SUCCESS
All validation results were SUCCESS.
Cluster is healthy!
Diagnosticar el estado de una máquina virtual
Si surge algún problema al crear la máquina virtual, ejecuta gkectl diagnose cluster
para obtener un diagnóstico del estado de la máquina virtual.
El resultado debería ser similar al siguiente:
- Validation Category: Cluster Healthiness
Checking cluster object...SUCCESS
Checking machine deployment...SUCCESS
Checking machineset...SUCCESS
Checking machine objects...SUCCESS
Checking machine VMs...FAILURE
Reason: 1 machine VMs error(s).
Unhealthy Resources:
Machine [NODE_NAME]: The VM's UUID "420fbe5c-4c8b-705a-8a05-ec636406f60" does not match the machine object's providerID "420fbe5c-4c8b-705a-8a05-ec636406f60e".
Debug Information:
null
...
Exit with error:
Cluster is unhealthy!
Run gkectl diagnose cluster automatically in gkectl diagnose snapshot
Public page https://cloud.google.com/anthos/clusters/docs/on-prem/latest/diagnose#overview_diagnose_snapshot
Solucionar problemas
En la siguiente tabla se indican algunas posibles soluciones a los problemas que pueden surgir al ejecutar el comando gkectl diagnose cluster
:
Problema | Posibles motivos | Resolución |
---|---|---|
No se puede acceder al servidor de la API de Kubernetes, ya sea para el clúster de administrador o para los clústeres de usuario. | Consulta los gráficos de latencia de memoria de la máquina virtual OOB (configuración predeterminada), que deberían tener una latencia de memoria cercana a cero. La contención de memoria también puede aumentar la contención de CPU, y los gráficos de disponibilidad de CPU pueden tener un pico, ya que habrá intercambio. | Aumenta la memoria física. Para ver otras opciones, consulta las sugerencias para solucionar problemas de VMware. |
Se agota el tiempo de espera de la creación del grupo de nodos. | Latencia de lectura/escritura alta de VMDK. Comprueba el estado de la VM fuera de banda para la latencia de lectura y escritura del disco virtual. Según VMware, una latencia total superior a 20 ms indica que hay un problema. | Consulta las soluciones de VMware para problemas de rendimiento de disco. |
Error BundleUnexpectedDiff
El recurso de la API de clúster de Kubernetes gestionado por un paquete de Google Distributed Cloud puede modificarse accidentalmente, lo que puede provocar un fallo en los componentes del sistema o un fallo en la actualización del clúster.
En la versión 1.13 y posteriores de Google Distributed Cloud, onprem-user-cluster-controller
comprueba periódicamente el estado de los objetos e informa de cualquier diferencia inesperada con respecto al estado deseado a través de registros y eventos. Estos objetos incluyen el plano de control del clúster de usuario y complementos como Services y DaemonSets.
En el siguiente ejemplo de salida se muestra un evento de diferencia inesperado:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning BundleUnexpectedDiff 13m onpremusercluster/ci-bundle-diff Detected unexpected difference of user control plane objects: [ConfigMap/istio], please check onprem-user-cluster-controller logs for more details.
En el siguiente ejemplo de salida se muestran los registros generados por onprem-user-cluster-controller
:
2022-08-06T02:54:42.701352295Z W0806 02:54:42.701252 1 update.go:206] Detected unexpected difference of user addon object(ConfigMap/istio), Diff: map[string]string{
2022-08-06T02:54:42.701376406Z - "mesh": (
2022-08-06T02:54:42.701381190Z - """
2022-08-06T02:54:42.701385438Z - defaultConfig:
2022-08-06T02:54:42.701389350Z - discoveryAddress: istiod.gke-system.svc:15012
...
2022-08-06T02:54:42.701449954Z - """
2022-08-06T02:54:42.701453099Z - ),
2022-08-06T02:54:42.701456286Z - "meshNetworks": "networks: {}",
2022-08-06T02:54:42.701459304Z + "test-key": "test-data",
2022-08-06T02:54:42.701462434Z }
Los eventos y los registros no bloquearán el funcionamiento del clúster. Los objetos que tengan diferencias inesperadas con respecto a su estado deseado se sobrescribirán en la siguiente actualización del clúster.
Siguientes pasos
Si necesitas más ayuda, ponte en contacto con el servicio de atención al cliente de Cloud.
También puedes consultar la sección Obtener asistencia para obtener más información sobre los recursos de asistencia, incluidos los siguientes:
- Requisitos para abrir un caso de asistencia.
- Herramientas para ayudarte a solucionar problemas, como registros y métricas.
- Componentes, versiones y funciones compatibles de Google Distributed Cloud para VMware (solo software).