Risoluzione dei problemi relativi all'API ClusterResourcePlacement in Azure Kubernetes Fleet Manager
Questa guida alla risoluzione dei problemi consente di risolvere i ClusterResourcePlacement
problemi relativi agli oggetti dell'API quando si usa Azure Kubernetes Fleet Manager. La risoluzione di questi errori nel cluster hub richiede la conoscenza degli oggetti seguenti:
ClusterResourceSnapshot
ClusterSchedulingPolicySnapshot
ClusterResourceBinding
Work
Per altri dettagli su ogni oggetto, vedere le informazioni di riferimento sulle API.
Avanzamento completo della distribuzione clusterResourcePlacement
Comprendere la progressione e lo stato della ClusterResourcePlacement
risorsa personalizzata è fondamentale per la diagnosi e l'identificazione degli errori. È possibile visualizzare lo stato della ClusterResourcePlacement
risorsa personalizzata usando il comando seguente:
kubectl describe clusterresourceplacement <name>
Per altre informazioni, vedere Usare l'API ClusterResourcePlacement per propagare le risorse ai cluster membri.
La progressione completa di ClusterResourcePlacement
è la seguente:
ClusterResourcePlacementScheduled: indica che una risorsa è stata pianificata per il posizionamento.
Se false, vedere Come risolvere i problemi quando lo stato della condizione ClusterResourcePlacementScheduled è false.
ClusterResourcePlacementRolloutStarted: indica che il processo di implementazione è iniziato.
Se false, vedere Come risolvere i problemi quando lo stato della condizione ClusterResourcePlacementRolloutStarted è false.
ClusterResourcePlacementOverridden: indica che la risorsa è stata sottoposta a override.
Se false, vedere Come risolvere i problemi quando lo stato della condizione ClusterResourcePlacementOverridden è false.
ClusterResourcePlacementWorkSynchronized: indica che gli oggetti di lavoro sono stati sincronizzati.
Se false, vedere Come risolvere i problemi quando lo stato della condizione ClusterResourcePlacementWorkSynchronized è false.
ClusterResourcePlacementApplied: indica che la risorsa è stata applicata.
Se false, vedere Come risolvere i problemi quando lo stato della condizione ClusterResourcePlacementApplied è false.
ClusterResourcePlacementAvailable: indica che la risorsa è disponibile.
Se false, vedere Come risolvere i problemi quando lo stato della condizione ClusterResourcePlacementAvailable è false.
Domande frequenti
Come è possibile eseguire il debug se alcuni cluster non sono selezionati come previsto?
Controllare lo stato di ClusterSchedulingPolicySnapshot
per determinare quali cluster sono stati selezionati e il motivo della selezione.
Come è possibile eseguire il debug se un cluster selezionato non dispone delle risorse previste o se ClusterResourcePlacement non rileva le modifiche più recenti?
- Controllare se la
ClusterResourcePlacementRolloutStarted
condizione nelloClusterResourcePlacement
stato è impostata su true o false.- Se false, vedere Come eseguire il debug dello stato della condizione ClusterResourcePlacementScheduled impostato su false.
- Se true, andare al passaggio 2.
- Controllare se la
ClusterResourcePlacementApplied
condizione è impostata su sconosciuto, false o true.- Se sconosciuto, attendere il completamento del processo perché le risorse vengono ancora applicate al cluster membro. Se lo stato rimane sconosciuto per un po', aprire un problema perché si tratta di un comportamento insolito.
- Se false, vedere Come eseguire il debug dello stato della condizione ClusterResourcePlacementApplied impostato su false.
- Se true, verificare che la risorsa esista nel cluster hub.
- Controllare la
placementStatuses
sezione nelloClusterResourcePlacement
stato del cluster specifico. LaFailedPlacements
sezione deve fornire motivi per eventuali errori dell'applicazione di risorse.
Come è possibile trovare e verificare la versione più recente di ClusterSchedulingPolicySnapshot per una distribuzione ClusterResourcePlacement?
Per trovare la versione più recente ClusterSchedulingPolicySnapshot
per la distribuzione dell'API ClusterResourcePlacement
, eseguire il comando seguente:
kubectl get clusterschedulingpolicysnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
Note
In questo comando sostituire {CRPName}
con il ClusterResourcePlacement
nome.
Confrontare quindi con i ClusterSchedulingPolicySnapshot
ClusterResourcePlacement
criteri per assicurarsi che corrispondano, escludendo il numberOfClusters
campo dalla specifica "ClusterResourcePlacement".
Se il tipo di posizionamento è PickN
, verificare se il numero di cluster richiesti nei ClusterResourcePlacement
criteri corrisponde al valore dell'etichetta number-of-clusters
.
Come è possibile trovare la risorsa ClusterResourceBinding più recente?
Il comando seguente elenca tutte le ClusterResourceBindings
istanze associate a ClusterResourcePlacement
:
Kubectl get clusterresourcebinding -l kubernetes-fleet.io/parent-CRP={CRPName}
Note
In questo comando sostituire {CRPName}
con il ClusterResourcePlacement
nome.
Esempio
Eseguire il comando seguente per visualizzare lo stato della
ClusterResourcePlacement
distribuzione. In questo caso, ilClusterResourcePlacement
nome ètest-crp
.kubectl describe clusterresourceplacement test-crp
Ecco un esempio di output.
placementStatuses
Nella sezione dellotest-crp
stato si noti che le risorse sono state distribuite a due cluster membri e, pertanto, hanno dueClusterResourceBindings
istanze: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
Per ottenere il
ClusterResourceBindings
valore, eseguire il comando seguente: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
L'output elenca tutte le
ClusterResourceBindings
istanze associate atest-crp
. Il nome dellaClusterResourceBinding
risorsa usa il formato seguente:{CRPName}-{clusterName}-{suffix}
Come è possibile trovare la risorsa ClusterResourceSnapshot più recente?
Per trovare la risorsa ClusterResourceSnapshot più recente, eseguire il comando seguente:
kubectl get clusterresourcesnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
Note
In questo comando sostituire {CRPName}
con il ClusterResourcePlacement
nome.
Come è possibile trovare la risorsa di lavoro corretta associata a ClusterResourcePlacement?
Per trovare la risorsa di lavoro corretta, seguire questa procedura:
Identificare lo spazio dei nomi del cluster membro e il
ClusterResourcePlacement
nome. Il formato per lo spazio dei nomi èfleet-member-{clusterName}
.Per ottenere la risorsa di lavoro, eseguire il comando seguente:
kubectl get work -n fleet-member-{clusterName} -l kubernetes-fleet.io/parent-CRP={CRPName}
Note
In questo comando sostituire
{clusterName}
e{CRPName}
con i nomi identificati nel primo passaggio.
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.