Felsöka ClusterResourcePlacement API i Azure Kubernetes Fleet Manager
Den här felsökningsguiden hjälper dig att lösa ClusterResourcePlacement
API-objektrelaterade problem när du använder Azure Kubernetes Fleet Manager. Felsökning av dessa fel i hubbklustret kräver kunskap om följande objekt:
ClusterResourceSnapshot
ClusterSchedulingPolicySnapshot
ClusterResourceBinding
Work
Mer information om varje objekt finns i API-referensen.
Fullständig utveckling av ClusterResourcePlacement-distributionen
Att förstå den anpassade resursens ClusterResourcePlacement
utveckling och status är avgörande för att diagnostisera och identifiera fel. Du kan visa status för den ClusterResourcePlacement
anpassade resursen med hjälp av följande kommando:
kubectl describe clusterresourceplacement <name>
Mer information finns i Använda ClusterResourcePlacement API för att sprida resurser till medlemskluster.
Den fullständiga progressionen av ClusterResourcePlacement
är följande:
ClusterResourcePlacementScheduled: Anger att en resurs har schemalagts för placering.
Om det är falskt läser du Så här felsöker du när villkorsstatusen ClusterResourcePlacementScheduled är false.
ClusterResourcePlacementRolloutStarted: Anger att distributionsprocessen har påbörjats.
Om det är falskt läser du Så här felsöker du när villkorsstatusen ClusterResourcePlacementRolloutStarted är false.
ClusterResourcePlacementOverridden: Anger att resursen har åsidosatts.
Om det är falskt läser du Så här felsöker du när villkorsstatusen ClusterResourcePlacementOverridden är false.
ClusterResourcePlacementWorkSynchronized: Anger att arbetsobjekt synkroniserades.
Om det är falskt läser du Så här felsöker du när statusen för ClusterResourcePlacementWorkSynchronized-villkoret är falskt.
ClusterResourcePlacementApplied: Anger att resursen tillämpades.
Om det är falskt läser du Så här felsöker du när villkorsstatusen ClusterResourcePlacementApplied är false.
ClusterResourcePlacementAvailable: Anger att resursen är tillgänglig.
Om det är falskt läser du Så här felsöker du när villkorsstatusen ClusterResourcePlacementAvailable är false.
Vanliga frågor
Hur kan jag felsöka om vissa kluster inte har valts som förväntat?
Kontrollera statusen ClusterSchedulingPolicySnapshot
för för att avgöra vilka kluster som har valts och orsaken till deras val.
Hur kan jag felsöka om ett valt kluster inte har de förväntade resurserna eller om ClusterResourcePlacement inte hämtar de senaste ändringarna?
- Kontrollera om villkoret
ClusterResourcePlacementRolloutStarted
i statusenClusterResourcePlacement
är inställt på sant eller falskt.- Om det är falskt läser du Så här felsöker du ClusterResourcePlacementScheduled condition status set to false (Så här felsöker du ClusterResourcePlacementScheduled condition status set to false).
- Om det är sant går du till steg 2.
- Kontrollera om villkoret är inställt på
ClusterResourcePlacementApplied
okänt, falskt eller sant.- Om det är okänt väntar du tills processen har slutförts eftersom resurserna fortfarande tillämpas på medlemsklustret. Om statusen förblir okänd ett tag öppnar du ett problem eftersom det här är ett ovanligt beteende.
- Om det är falskt läser du Felsöka ClusterResourcePlacementApplied-villkorsstatus inställd på false.
- Om det är sant kontrollerar du att resursen finns i hubbklustret.
- Kontrollera avsnittet
placementStatuses
i statusenClusterResourcePlacement
för det specifika klustret. AvsnittetFailedPlacements
bör ange orsaker till eventuella resursprogramfel.
Hur hittar och verifierar jag den senaste ClusterSchedulingPolicySnapshot för en ClusterResourcePlacement-distribution?
Kör följande kommando för att hitta det senaste ClusterSchedulingPolicySnapshot
för ClusterResourcePlacement
API-distributionen:
kubectl get clusterschedulingpolicysnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
Kommentar
I det här kommandot ersätter du {CRPName}
med ditt ClusterResourcePlacement
namn.
ClusterSchedulingPolicySnapshot
Jämför sedan med ClusterResourcePlacement
principen för att se till att de matchar, exklusive numberOfClusters
fältet från specifikationen "ClusterResourcePlacement".
Om placeringstypen är PickN
kontrollerar du om antalet kluster som begärs i ClusterResourcePlacement
principen matchar värdet för number-of-clusters
etiketten.
Hur hittar jag den senaste ClusterResourceBinding-resursen?
Följande kommando visar alla ClusterResourceBindings
instanser som är associerade med ClusterResourcePlacement
:
Kubectl get clusterresourcebinding -l kubernetes-fleet.io/parent-CRP={CRPName}
Kommentar
I det här kommandot ersätter du {CRPName}
med ditt ClusterResourcePlacement
namn.
Exempel
Kör följande kommando för att visa status för distributionen
ClusterResourcePlacement
. I det här fallet ärtest-crp
namnetClusterResourcePlacement
.kubectl describe clusterresourceplacement test-crp
Här är ett exempel på utdata. Observera att det
placementStatuses
finns distribuerade resurser till två medlemskluster i avsnittet i statusentest-crp
och därför har tvåClusterResourceBindings
instanser: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
Kör följande kommando för att hämta
ClusterResourceBindings
värdet: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
Utdata visar alla
ClusterResourceBindings
instanser som är associerade medtest-crp
. ResursnamnetClusterResourceBinding
använder följande format:{CRPName}-{clusterName}-{suffix}
Hur hittar jag den senaste ClusterResourceSnapshot-resursen?
Kör följande kommando för att hitta den senaste ClusterResourceSnapshot-resursen:
kubectl get clusterresourcesnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
Kommentar
I det här kommandot ersätter du {CRPName}
med ditt ClusterResourcePlacement
namn.
Hur hittar jag rätt arbetsresurs som är associerad med ClusterResourcePlacement?
Följ dessa steg för att hitta rätt arbetsresurs:
Identifiera namnområdet för medlemsklustret och
ClusterResourcePlacement
namnet. Formatet för namnområdet ärfleet-member-{clusterName}
.Kör följande kommando för att hämta arbetsresursen:
kubectl get work -n fleet-member-{clusterName} -l kubernetes-fleet.io/parent-CRP={CRPName}
Kommentar
I det här kommandot ersätter
{clusterName}
du och{CRPName}
med de namn som du identifierade i det första steget.
Kontakta oss för att få hjälp
Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.