Condividi tramite


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:

  1. ClusterResourcePlacementScheduled: indica che una risorsa è stata pianificata per il posizionamento.

    Se false, vedere Come risolvere i problemi quando lo stato della condizione ClusterResourcePlacementScheduled è false.

  2. ClusterResourcePlacementRolloutStarted: indica che il processo di implementazione è iniziato.

    Se false, vedere Come risolvere i problemi quando lo stato della condizione ClusterResourcePlacementRolloutStarted è false.

  3. ClusterResourcePlacementOverridden: indica che la risorsa è stata sottoposta a override.

    Se false, vedere Come risolvere i problemi quando lo stato della condizione ClusterResourcePlacementOverridden è false.

  4. ClusterResourcePlacementWorkSynchronized: indica che gli oggetti di lavoro sono stati sincronizzati.

    Se false, vedere Come risolvere i problemi quando lo stato della condizione ClusterResourcePlacementWorkSynchronized è false.

  5. ClusterResourcePlacementApplied: indica che la risorsa è stata applicata.

    Se false, vedere Come risolvere i problemi quando lo stato della condizione ClusterResourcePlacementApplied è false.

  6. 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?

  1. Controllare se la ClusterResourcePlacementRolloutStarted condizione nello ClusterResourcePlacement stato è impostata su true o false.
  2. Controllare se la ClusterResourcePlacementApplied condizione è impostata su sconosciuto, false o true.
  3. Controllare la placementStatuses sezione nello ClusterResourcePlacement stato del cluster specifico. La FailedPlacements 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

  1. Eseguire il comando seguente per visualizzare lo stato della ClusterResourcePlacement distribuzione. In questo caso, il ClusterResourcePlacement nome è test-crp.

    kubectl describe clusterresourceplacement test-crp
    
  2. Ecco un esempio di output. placementStatuses Nella sezione dello test-crp stato si noti che le risorse sono state distribuite a due cluster membri e, pertanto, hanno due ClusterResourceBindings 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
    
  3. 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 a test-crp. Il nome della ClusterResourceBinding 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:

  1. Identificare lo spazio dei nomi del cluster membro e il ClusterResourcePlacement nome. Il formato per lo spazio dei nomi è fleet-member-{clusterName}.

  2. 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.