Solución de problemas de ClusterResourcePlacement API en Azure Kubernetes Fleet Manager
Esta guía de solución de problemas le ayuda a resolver ClusterResourcePlacement
problemas relacionados con objetos de API cuando se usa Fleet Manager de Azure Kubernetes. La solución de estos errores en el clúster del concentrador requiere conocimiento de los siguientes objetos:
ClusterResourceSnapshot
ClusterSchedulingPolicySnapshot
ClusterResourceBinding
Work
Para obtener más información sobre cada objeto, consulte la referencia de API.
Progresión completa de la implementación clusterResourcePlacement
Comprender la progresión y el estado del ClusterResourcePlacement
recurso personalizado es fundamental para diagnosticar e identificar errores. Puede ver el estado del ClusterResourcePlacement
recurso personalizado mediante el siguiente comando:
kubectl describe clusterresourceplacement <name>
Para obtener más información, consulte Uso de clusterResourcePlacement API para propagar recursos a clústeres miembros.
La progresión completa de ClusterResourcePlacement
es la siguiente:
ClusterResourcePlacementScheduled: indica que se ha programado un recurso para la selección de ubicación.
Si es false, consulte Solución de problemas cuando el estado de la condición ClusterResourcePlacementScheduled es false.
ClusterResourcePlacementRolloutStarted: indica que se ha iniciado el proceso de lanzamiento.
Si es false, consulte Solución de problemas cuando el estado de la condición ClusterResourcePlacementRolloutStarted es false.
ClusterResourcePlacementOverridden: indica que el recurso se ha invalidado.
Si es false, consulte Solución de problemas cuando el estado de la condición ClusterResourcePlacementOverridden es false.
ClusterResourcePlacementWorkSynchronized: indica que se sincronizaron los objetos de trabajo.
Si es false, consulte Solución de problemas cuando el estado de la condición ClusterResourcePlacementWorkSynchronized es false.
ClusterResourcePlacementApplied: indica que se aplicó el recurso.
Si es false, consulte Solución de problemas cuando el estado de la condición ClusterResourcePlacementApplied es false.
ClusterResourcePlacementAvailable: indica que el recurso está disponible.
Si es false, consulte Solución de problemas cuando el estado de la condición ClusterResourcePlacementAvailable es false.
Preguntas más frecuentes
¿Cómo puedo depurar si algunos clústeres no están seleccionados según lo previsto?
Compruebe el estado de ClusterSchedulingPolicySnapshot
para determinar qué clústeres se seleccionaron y el motivo de su selección.
¿Cómo puedo depurar si un clúster seleccionado no tiene los recursos esperados o si ClusterResourcePlacement no recoge los cambios más recientes?
- Compruebe si la
ClusterResourcePlacementRolloutStarted
condición delClusterResourcePlacement
estado está establecida en true o false.- Si es false, consulte Depuración del estado de condición ClusterResourcePlacementScheduled establecido en false.
- Si es true, vaya al paso 2.
- Compruebe si la
ClusterResourcePlacementApplied
condición está establecida en desconocido, false o true.- Si se desconoce, espere a que finalice el proceso porque los recursos se siguen aplicando al clúster miembro. Si el estado permanece desconocido durante un tiempo, abra un problema porque se trata de un comportamiento inusual.
- Si es false, consulte Depuración del estado de condición ClusterResourcePlacementApplied establecido en false.
- Si es true, compruebe que el recurso existe en el clúster del concentrador.
- Compruebe la
placementStatuses
sección en elClusterResourcePlacement
estado del clúster determinado. LaFailedPlacements
sección debe proporcionar motivos para cualquier error de aplicación de recursos.
¿Cómo puedo encontrar y comprobar la versión más reciente de ClusterSchedulingPolicySnapshot para una implementación clusterResourcePlacement?
Para buscar la versión más reciente ClusterSchedulingPolicySnapshot
de la implementación de la ClusterResourcePlacement
API, ejecute el siguiente comando:
kubectl get clusterschedulingpolicysnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
Nota:
En este comando, reemplace por {CRPName}
el ClusterResourcePlacement
nombre.
A continuación, compare con ClusterSchedulingPolicySnapshot
la ClusterResourcePlacement
directiva para asegurarse de que coinciden, excluyendo el numberOfClusters
campo de la especificación "ClusterResourcePlacement".
Si el tipo de selección de ubicación es PickN
, compruebe si el número de clústeres solicitados en la ClusterResourcePlacement
directiva coincide con el valor de la number-of-clusters
etiqueta.
¿Cómo puedo encontrar el recurso ClusterResourceBinding más reciente?
El siguiente comando enumera todas las ClusterResourceBindings
instancias asociadas a ClusterResourcePlacement
:
Kubectl get clusterresourcebinding -l kubernetes-fleet.io/parent-CRP={CRPName}
Nota:
En este comando, reemplace por {CRPName}
el ClusterResourcePlacement
nombre.
Ejemplo
Ejecute el siguiente comando para ver el estado de la
ClusterResourcePlacement
implementación. En este caso, elClusterResourcePlacement
nombre estest-crp
.kubectl describe clusterresourceplacement test-crp
Este es un ejemplo de salida. En la
placementStatuses
sección deltest-crp
estado, observe que tiene recursos distribuidos a dos clústeres miembro y, por lo tanto, tiene dosClusterResourceBindings
instancias:status: conditions: - lastTransitionTime: "2023-11-23T00:49:29Z" ... placementStatuses: - clusterName: kind-cluster-1 conditions: ... type: ResourceApplied - clusterName: kind-cluster-2 conditions: ... reason: ApplySucceeded status: "True" type: ResourceApplied
Para obtener el
ClusterResourceBindings
valor, ejecute el siguiente comando:kubectl get clusterresourcebinding -l kubernetes-fleet.io/parent-CRP=test-crp
NAME WORKCREATED RESOURCESAPPLIED AGE test-crp-kind-cluster-1-be990c3e True True 33s test-crp-kind-cluster-2-ec4d953c True True 33s
La salida enumera todas las
ClusterResourceBindings
instancias asociadas atest-crp
. El nombre delClusterResourceBinding
recurso usa el siguiente formato:{CRPName}-{clusterName}-{suffix}
¿Cómo puedo encontrar el recurso ClusterResourceSnapshot más reciente?
Para buscar el recurso ClusterResourceSnapshot más reciente, ejecute el siguiente comando:
kubectl get clusterresourcesnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
Nota:
En este comando, reemplace por {CRPName}
el ClusterResourcePlacement
nombre.
¿Cómo puedo encontrar el recurso de trabajo correcto asociado a ClusterResourcePlacement?
Para buscar el recurso de trabajo correcto, siga estos pasos:
Identifique el espacio de nombres del clúster miembro y el
ClusterResourcePlacement
nombre. El formato del espacio de nombres esfleet-member-{clusterName}
.Para obtener el recurso de trabajo, ejecute el siguiente comando:
kubectl get work -n fleet-member-{clusterName} -l kubernetes-fleet.io/parent-CRP={CRPName}
Nota:
En este comando, reemplace
{clusterName}
y{CRPName}
por los nombres que identificó en el primer paso.
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.