Delen via


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:

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

  2. ClusterResourcePlacementRolloutStarted: Geeft aan dat het implementatieproces is gestart.

    Als dit onwaar is, raadpleegt u Problemen oplossen wanneer de status clusterResourcePlacementRolloutStarted onwaar is.

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

  4. ClusterResourcePlacementWorkSynchronized: Geeft aan dat werkobjecten zijn gesynchroniseerd.

    Als dit onwaar is, raadpleegt u Problemen oplossen wanneer de status van de voorwaarde ClusterResourcePlacementWorkSynchronized onwaar is.

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

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

  1. Controleer of de ClusterResourcePlacementRolloutStarted voorwaarde in de ClusterResourcePlacement status is ingesteld op waar of onwaar.
  2. Controleer of de ClusterResourcePlacementApplied voorwaarde is ingesteld op onbekend, onwaar of waar.
  3. Controleer de placementStatuses sectie in de ClusterResourcePlacement status van het specifieke cluster. De FailedPlacements 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

  1. Voer de volgende opdracht uit om de status van de ClusterResourcePlacement implementatie weer te geven. In dit geval is test-crpde ClusterResourcePlacement naam .

    kubectl describe clusterresourceplacement test-crp
    
  2. Hier volgt een voorbeeld van uitvoer. In de placementStatuses sectie van de test-crp status ziet u dat het gedistribueerde resources heeft naar twee lidclusters en daarom twee ClusterResourceBindings 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
    
  3. 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 aan test-crp. De ClusterResourceBinding 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:

  1. Identificeer de naamruimte van het lidcluster en de ClusterResourcePlacement naam. De indeling voor de naamruimte is fleet-member-{clusterName}.

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