Rozwiązywanie problemów z interfejsem API ClusterResourcePlacement w usłudze Azure Kubernetes Fleet Manager
Ten przewodnik rozwiązywania problemów ułatwia rozwiązywanie ClusterResourcePlacement
problemów związanych z obiektami interfejsu API podczas korzystania z usługi Azure Kubernetes Fleet Manager. Rozwiązywanie problemów z tymi błędami w klastrze centrum wymaga znajomości następujących obiektów:
ClusterResourceSnapshot
ClusterSchedulingPolicySnapshot
ClusterResourceBinding
Work
Aby uzyskać więcej informacji na temat każdego obiektu, zobacz dokumentację interfejsu API.
Kompletna progresja wdrożenia ClusterResourcePlacement
Zrozumienie postępu i stanu zasobu niestandardowego ClusterResourcePlacement
ma kluczowe znaczenie dla diagnozowania i identyfikowania błędów. Stan zasobu niestandardowego ClusterResourcePlacement
można wyświetlić przy użyciu następującego polecenia:
kubectl describe clusterresourceplacement <name>
Aby uzyskać więcej informacji, zobacz Używanie interfejsu API ClusterResourcePlacement do propagowania zasobów do klastrów członkowskich.
Pełny postęp operacji ClusterResourcePlacement
jest następujący:
ClusterResourcePlacementScheduled: wskazuje, że zasób został zaplanowany do umieszczania.
Jeśli wartość false, zobacz Jak rozwiązywać problemy, gdy stan warunku ClusterResourcePlacementScheduled ma wartość false.
ClusterResourcePlacementRolloutStarted: wskazuje, że proces wdrażania rozpoczął się.
Jeśli wartość false, zobacz Jak rozwiązywać problemy, gdy stan warunku ClusterResourcePlacementRolloutStarted ma wartość false.
ClusterResourcePlacementOverridden: wskazuje, że zasób został zastąpiony.
Jeśli wartość false, zobacz Jak rozwiązywać problemy, gdy stan warunku ClusterResourcePlacementOverridden ma wartość false.
ClusterResourcePlacementWorkSynchronized: wskazuje, że obiekty robocze zostały zsynchronizowane.
Jeśli wartość false, zobacz Jak rozwiązywać problemy, gdy stan warunku ClusterResourcePlacementWorkSynchronized ma wartość false.
ClusterResourcePlacementApplied: wskazuje, że zasób został zastosowany.
Jeśli wartość false, zobacz Jak rozwiązywać problemy, gdy stan warunku ClusterResourcePlacementApplied ma wartość false.
ClusterResourcePlacementAvailable: wskazuje, że zasób jest dostępny.
Jeśli wartość false, zobacz Jak rozwiązywać problemy, gdy stan warunku ClusterResourcePlacementAvailable ma wartość false.
Często zadawane pytania
Jak mogę debugować, jeśli niektóre klastry nie są wybrane zgodnie z oczekiwaniami?
Sprawdź stan , ClusterSchedulingPolicySnapshot
aby określić, które klastry zostały wybrane, oraz przyczynę ich wyboru.
Jak mogę debugować, jeśli wybrany klaster nie ma oczekiwanych zasobów lub jeśli klasterResourcePlacement nie pobiera najnowszych zmian?
- Sprawdź, czy
ClusterResourcePlacementRolloutStarted
warunek wClusterResourcePlacement
stanie ma wartość true lub false.- Jeśli wartość false, zobacz Jak debugować stan warunku ClusterResourcePlacementScheduled ustawiony na false.
- Jeśli wartość true, przejdź do kroku 2.
- Sprawdź, czy
ClusterResourcePlacementApplied
warunek jest ustawiony na nieznany, false, czy true.- Jeśli jest nieznany, poczekaj na zakończenie procesu, ponieważ zasoby są nadal stosowane do klastra członkowskiego. Jeśli stan pozostaje nieznany przez jakiś czas, otwórz problem , ponieważ jest to nietypowe zachowanie.
- Jeśli wartość false, zobacz How to debug ClusterResourcePlacementApplied condition status set to false (Jak debugować stan ClusterResourcePlacementApplied) ustawiony na false.
- Jeśli wartość true, sprawdź, czy zasób istnieje w klastrze koncentratora.
- Sprawdź sekcję
placementStatuses
ClusterResourcePlacement
w stanie określonego klastra. SekcjaFailedPlacements
powinna zawierać przyczyny błędów aplikacji zasobów.
Jak mogę znaleźć i zweryfikować najnowszy element ClusterSchedulingPolicySnapshot dla wdrożenia clusterResourcePlacement?
Aby znaleźć najnowszą wersję ClusterSchedulingPolicySnapshot
wdrożenia interfejsu ClusterResourcePlacement
API, uruchom następujące polecenie:
kubectl get clusterschedulingpolicysnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
Uwaga 16.
W tym poleceniu zastąp {CRPName}
ciąg nazwą ClusterResourcePlacement
.
Następnie porównaj wartości ClusterSchedulingPolicySnapshot
z zasadami ClusterResourcePlacement
, aby upewnić się, że są one zgodne, z wyłączeniem numberOfClusters
pola ze specyfikacji "ClusterResourcePlacement".
Jeśli typ umieszczania to PickN
, sprawdź, czy liczba klastrów żądanych w ClusterResourcePlacement
zasadach jest zgodna z wartością number-of-clusters
etykiety.
Jak znaleźć najnowszy zasób ClusterResourceBinding?
Następujące polecenie wyświetla listę wszystkich ClusterResourceBindings
wystąpień skojarzonych z ClusterResourcePlacement
programem :
Kubectl get clusterresourcebinding -l kubernetes-fleet.io/parent-CRP={CRPName}
Uwaga 16.
W tym poleceniu zastąp {CRPName}
ciąg nazwą ClusterResourcePlacement
.
Przykład
Uruchom następujące polecenie, aby wyświetlić stan
ClusterResourcePlacement
wdrożenia. W tym przypadkuClusterResourcePlacement
nazwa totest-crp
.kubectl describe clusterresourceplacement test-crp
Oto przykładowe dane wyjściowe.
placementStatuses
W sekcji stanutest-crp
zwróć uwagę, że ma rozproszone zasoby do dwóch klastrów członkowskich, a zatem ma dwaClusterResourceBindings
wystąpienia: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
Aby uzyskać
ClusterResourceBindings
wartość, uruchom następujące polecenie: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
Dane wyjściowe zawierają listę wszystkich
ClusterResourceBindings
wystąpień skojarzonych z elementemtest-crp
. NazwaClusterResourceBinding
zasobu używa następującego formatu:{CRPName}-{clusterName}-{suffix}
Jak znaleźć najnowszy zasób ClusterResourceSnapshot?
Aby znaleźć najnowszy zasób ClusterResourceSnapshot, uruchom następujące polecenie:
kubectl get clusterresourcesnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
Uwaga 16.
W tym poleceniu zastąp {CRPName}
ciąg nazwą ClusterResourcePlacement
.
Jak mogę znaleźć prawidłowy zasób pracy skojarzony z klastremResourcePlacement?
Aby znaleźć prawidłowy zasób pracy, wykonaj następujące kroki:
Zidentyfikuj przestrzeń nazw klastra członkowskiego i
ClusterResourcePlacement
nazwę. Format przestrzeni nazw tofleet-member-{clusterName}
.Aby uzyskać zasób pracy, uruchom następujące polecenie:
kubectl get work -n fleet-member-{clusterName} -l kubernetes-fleet.io/parent-CRP={CRPName}
Uwaga 16.
W tym poleceniu zastąp
{clusterName}
wartości i{CRPName}
nazwami zidentyfikowanymi w pierwszym kroku.
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.