Azure Kubernetes Fleet Manager에서 ClusterResourcePlacement API 문제 해결
이 문제 해결 가이드는 Azure Kubernetes Fleet Manager를 사용할 때 API 개체 관련 문제를 해결하는 ClusterResourcePlacement
데 도움이 됩니다. 허브 클러스터에서 이러한 오류를 해결하려면 다음 개체에 대한 지식이 필요합니다.
ClusterResourceSnapshot
ClusterSchedulingPolicySnapshot
ClusterResourceBinding
Work
각 개체에 대한 자세한 내용은 API 참조를 참조하세요.
ClusterResourcePlacement 배포의 전체 진행
사용자 지정 리소스의 ClusterResourcePlacement
진행률 및 상태를 이해하는 것은 오류를 진단하고 식별하는 데 매우 중요합니다. 다음 명령을 사용하여 사용자 지정 리소스의 ClusterResourcePlacement
상태를 볼 수 있습니다.
kubectl describe clusterresourceplacement <name>
자세한 내용은 ClusterResourcePlacement API를 사용하여 리소스를 멤버 클러스터에 전파하는 방법을 참조 하세요.
전체 진행 ClusterResourcePlacement
은 다음과 같습니다.
ClusterResourcePlacementScheduled: 리소스가 배치되도록 예약되었음을 나타냅니다.
false이면 ClusterResourcePlacementScheduled 조건 상태가 false인 경우 문제를 해결하는 방법을 참조하세요.
ClusterResourcePlacementRolloutStarted: 출시 프로세스가 시작되었음을 나타냅니다.
false이면 ClusterResourcePlacementRolloutStarted 조건 상태가 false인 경우 문제를 해결하는 방법을 참조하세요.
ClusterResourcePlacementOverridden: 리소스가 재정의되었음을 나타냅니다.
false이면 ClusterResourcePlacementOverridden 조건 상태가 false인 경우 문제를 해결하는 방법을 참조하세요.
ClusterResourcePlacementWorkSynchronized: 작업 개체가 동기화되었음을 나타냅니다.
false이면 ClusterResourcePlacementWorkSynchronized 조건 상태가 false인 경우 문제를 해결하는 방법을 참조하세요.
ClusterResourcePlacementApplied: 리소스가 적용되었음을 나타냅니다.
false이면 ClusterResourcePlacementApplied 조건 상태가 false인 경우 문제를 해결하는 방법을 참조하세요.
ClusterResourcePlacementAvailable: 리소스를 사용할 수 있음을 나타냅니다.
false이면 ClusterResourcePlacementAvailable 조건 상태가 false인 경우 문제를 해결하는 방법을 참조하세요.
FAQ
일부 클러스터가 예상대로 선택되지 않은 경우 어떻게 디버그할 수 있나요?
선택한 클러스터의 ClusterSchedulingPolicySnapshot
상태와 선택한 이유를 확인합니다.
선택한 클러스터에 예상 리소스가 없거나 ClusterResourcePlacement에서 최신 변경 내용을 선택하지 않는 경우 어떻게 디버그할 수 있나요?
- 상태의
ClusterResourcePlacementRolloutStarted
조건이ClusterResourcePlacement
true 또는 false로 설정되어 있는지 확인합니다.- false이면 ClusterResourcePlacementScheduled 조건 상태를 false로 설정하는 방법을 참조하세요.
- true이면 2단계로 이동합니다.
- 조건이 알 수 없음, false 또는 true로 설정되어 있는지 확인
ClusterResourcePlacementApplied
합니다.- 알 수 없는 경우 리소스가 멤버 클러스터에 계속 적용되고 있으므로 프로세스가 완료될 때까지 기다립니다. 상태가 잠시 동안 알 수 없는 상태로 유지되면 비정상적인 동작이므로 문제를 엽니다.
- false이면 ClusterResourcePlacementApplied 조건 상태를 false로 설정하는 방법을 참조하세요.
- true이면 리소스가 허브 클러스터에 있는지 확인합니다.
placementStatuses
특정 클러스터에 대한 상태의ClusterResourcePlacement
섹션을 확인합니다. 이 섹션에서는FailedPlacements
리소스 애플리케이션 오류에 대한 이유를 제공해야 합니다.
ClusterResourcePlacement 배포에 대한 최신 ClusterSchedulingPolicySnapshot을 찾고 확인하려면 어떻게 해야 하나요?
API 배포에 대한 최신 ClusterSchedulingPolicySnapshot
버전을 ClusterResourcePlacement
찾으려면 다음 명령을 실행합니다.
kubectl get clusterschedulingpolicysnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
참고 항목
이 명령에서 이름을 대체 {CRPName}
합니다 ClusterResourcePlacement
.
그런 다음 정책과 비교하여 ClusterSchedulingPolicySnapshot
ClusterResourcePlacement
'ClusterResourcePlacement' 사양에서 필드를 제외하고 numberOfClusters
일치하는지 확인합니다.
배치 유형이 PickN
면 정책에서 ClusterResourcePlacement
요청된 클러스터 수가 레이블 값 number-of-clusters
과 일치하는지 확인합니다.
최신 ClusterResourceBinding 리소스를 찾으려면 어떻게 해야 하나요?
다음 명령은 연결된 ClusterResourcePlacement
모든 ClusterResourceBindings
인스턴스를 나열합니다.
Kubectl get clusterresourcebinding -l kubernetes-fleet.io/parent-CRP={CRPName}
참고 항목
이 명령에서 이름을 대체 {CRPName}
합니다 ClusterResourcePlacement
.
예제
다음 명령을 실행하여 배포 상태를 확인합니다
ClusterResourcePlacement
. 이 경우 이름은 .ClusterResourcePlacement
입니다test-crp
.kubectl describe clusterresourceplacement test-crp
예제 출력은 다음과 같습니다.
placementStatuses
상태 섹션에서test-crp
리소스가 두 개의 멤버 클러스터에 분산되어 있으므로 두 개의ClusterResourceBindings
인스턴스가 있습니다.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
값을 얻으려면
ClusterResourceBindings
다음 명령을 실행합니다.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
출력에는 연결된 모든
ClusterResourceBindings
인스턴스가 나열됩니다test-crp
.ClusterResourceBinding
리소스 이름은 다음 형식을 사용합니다.{CRPName}-{clusterName}-{suffix}
최신 ClusterResourceSnapshot 리소스를 찾으려면 어떻게 해야 하나요?
최신 ClusterResourceSnapshot 리소스를 찾으려면 다음 명령을 실행합니다.
kubectl get clusterresourcesnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
참고 항목
이 명령에서 이름을 대체 {CRPName}
합니다 ClusterResourcePlacement
.
ClusterResourcePlacement와 연결된 올바른 작업 리소스를 찾으려면 어떻게 해야 하나요?
올바른 작업 리소스를 찾으려면 다음 단계를 수행합니다.
멤버 클러스터 네임스페이스 및 이름을 식별합니다
ClusterResourcePlacement
. 네임스페이스의 형식은 .입니다fleet-member-{clusterName}
.작업 리소스를 얻으려면 다음 명령을 실행합니다.
kubectl get work -n fleet-member-{clusterName} -l kubernetes-fleet.io/parent-CRP={CRPName}
참고 항목
이 명령에서 첫 번째 단계에서 식별한 이름으로 바꿉
{clusterName}
{CRPName}
니다.
도움을 요청하십시오.
질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.