Problemen met ClusterResourcePlacement-API in Azure Kubernetes Fleet Manager oplossen
Deze gids voor probleemoplossing helpt u bij het oplossen ClusterResourcePlacement
van problemen met API-objecten wanneer u Azure Kubernetes Fleet Manager gebruikt. Voor het oplossen van deze fouten in het hubcluster is kennis van de volgende objecten vereist:
ClusterResourceSnapshot
ClusterSchedulingPolicySnapshot
ClusterResourceBinding
Work
Zie de API-verwijzing voor meer informatie over elk object.
Volledige voortgang van de implementatie van ClusterResourcePlacement
Inzicht in de voortgang en status van de ClusterResourcePlacement
aangepaste resource is van cruciaal belang voor het diagnosticeren en identificeren van fouten. U kunt de status van de ClusterResourcePlacement
aangepaste resource weergeven met behulp van de volgende opdracht:
kubectl describe clusterresourceplacement <name>
Zie De ClusterResourcePlacement-API gebruiken om resources door te geven aan lidclusters voor meer informatie.
De volledige voortgang is ClusterResourcePlacement
als volgt:
ClusterResourcePlacementScheduled: Geeft aan dat een resource is gepland voor plaatsing.
Als dit onwaar is, raadpleegt u Problemen oplossen wanneer de status van de voorwaarde ClusterResourcePlacementScheduled onwaar is.
ClusterResourcePlacementRolloutStarted: Geeft aan dat het implementatieproces is gestart.
Als dit onwaar is, raadpleegt u Problemen oplossen wanneer de status clusterResourcePlacementRolloutStarted onwaar is.
ClusterResourcePlacementOverridden: Geeft aan dat de resource is overschreven.
Als dit onwaar is, raadpleegt u Problemen oplossen wanneer de status van de voorwaarde ClusterResourcePlacementOverridden onwaar is.
ClusterResourcePlacementWorkSynchronized: Geeft aan dat werkobjecten zijn gesynchroniseerd.
Als dit onwaar is, raadpleegt u Problemen oplossen wanneer de status van de voorwaarde ClusterResourcePlacementWorkSynchronized onwaar is.
ClusterResourcePlacementApplied: Geeft aan dat de resource is toegepast.
Als dit onwaar is, raadpleegt u Problemen oplossen wanneer de status van de voorwaarde ClusterResourcePlacementApplied onwaar is.
ClusterResourcePlacementAvailable: Geeft aan dat de resource beschikbaar is.
Als dit onwaar is, raadpleegt u Problemen oplossen wanneer de status van de voorwaarde ClusterResourcePlacementAvailable onwaar is.
Veelgestelde vragen
Hoe kan ik fouten opsporen als sommige clusters niet zijn geselecteerd zoals verwacht?
Controleer de status van het selecteren van ClusterSchedulingPolicySnapshot
clusters en de reden voor de selectie.
Hoe kan ik fouten opsporen als een geselecteerd cluster niet beschikt over de verwachte resources of als ClusterResourcePlacement de meest recente wijzigingen niet ophaalt?
- Controleer of de
ClusterResourcePlacementRolloutStarted
voorwaarde in deClusterResourcePlacement
status is ingesteld op waar of onwaar.- Als dit onwaar is, raadpleegt u de status clusterResourcePlacementScheduled-voorwaarde ingesteld op false.
- Als dit het geval is, gaat u naar stap 2.
- Controleer of de
ClusterResourcePlacementApplied
voorwaarde is ingesteld op onbekend, onwaar of waar.- Als dit onbekend is, wacht u tot het proces is voltooid omdat de resources nog steeds worden toegepast op het lidcluster. Als de status enige tijd onbekend blijft, opent u een probleem omdat dit ongebruikelijk gedrag is.
- Als dit onwaar is, raadpleegt u de status clusterResourcePlacementApplied-voorwaarde ingesteld op false.
- Als waar is, controleert u of de resource bestaat in het hubcluster.
- Controleer de
placementStatuses
sectie in deClusterResourcePlacement
status van het specifieke cluster. DeFailedPlacements
sectie moet redenen bevatten voor eventuele fouten in de resourcetoepassing.
Hoe kan ik de nieuwste ClusterSchedulingPolicySnapshot voor een ClusterResourcePlacement-implementatie vinden en controleren?
Voer de volgende opdracht uit om de nieuwste ClusterSchedulingPolicySnapshot
versie voor de ClusterResourcePlacement
API-implementatie te vinden:
kubectl get clusterschedulingpolicysnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
Notitie
Vervang in deze opdracht door {CRPName}
uw ClusterResourcePlacement
naam.
Vergelijk vervolgens het ClusterSchedulingPolicySnapshot
beleid met het ClusterResourcePlacement
beleid om ervoor te zorgen dat deze overeenkomen, met uitzondering van het numberOfClusters
veld uit de specificatie ClusterResourcePlacement.
Als het plaatsingstype is PickN
, controleert u of het aantal clusters dat is aangevraagd in het ClusterResourcePlacement
beleid overeenkomt met de waarde van het number-of-clusters
label.
Hoe vind ik de meest recente ClusterResourceBinding-resource?
Met de volgende opdracht worden alle ClusterResourceBindings
exemplaren weergegeven die zijn gekoppeld aan ClusterResourcePlacement
:
Kubectl get clusterresourcebinding -l kubernetes-fleet.io/parent-CRP={CRPName}
Notitie
Vervang in deze opdracht door {CRPName}
uw ClusterResourcePlacement
naam.
Voorbeeld
Voer de volgende opdracht uit om de status van de
ClusterResourcePlacement
implementatie weer te geven. In dit geval istest-crp
deClusterResourcePlacement
naam .kubectl describe clusterresourceplacement test-crp
Hier volgt een voorbeeld van uitvoer. In de
placementStatuses
sectie van detest-crp
status ziet u dat het gedistribueerde resources heeft naar twee lidclusters en daarom tweeClusterResourceBindings
exemplaren heeft: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
Voer de volgende opdracht uit om de
ClusterResourceBindings
waarde op te halen: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
De uitvoer bevat alle
ClusterResourceBindings
exemplaren die zijn gekoppeld aantest-crp
. DeClusterResourceBinding
resourcenaam gebruikt de volgende indeling:{CRPName}-{clusterName}-{suffix}
Hoe vind ik de meest recente ClusterResourceSnapshot-resource?
Voer de volgende opdracht uit om de meest recente ClusterResourceSnapshot-resource te vinden:
kubectl get clusterresourcesnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
Notitie
Vervang in deze opdracht door {CRPName}
uw ClusterResourcePlacement
naam.
Hoe vind ik de juiste werkresource die is gekoppeld aan ClusterResourcePlacement?
Voer de volgende stappen uit om de juiste werkresource te vinden:
Identificeer de naamruimte van het lidcluster en de
ClusterResourcePlacement
naam. De indeling voor de naamruimte isfleet-member-{clusterName}
.Voer de volgende opdracht uit om de werkresource op te halen:
kubectl get work -n fleet-member-{clusterName} -l kubernetes-fleet.io/parent-CRP={CRPName}
Notitie
Vervang in deze opdracht
{clusterName}
de{CRPName}
namen die u in de eerste stap hebt geïdentificeerd.
Contacteer ons voor hulp
Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.