Устранение неполадок API ClusterResourcePlacement в Azure Kubernetes Fleet Manager
Это руководство по устранению неполадок помогает устранить ClusterResourcePlacement
проблемы, связанные с объектами API при использовании Диспетчера флота Azure Kubernetes. Для устранения этих ошибок в кластере концентратора требуется знание следующих объектов:
ClusterResourceSnapshot
ClusterSchedulingPolicySnapshot
ClusterResourceBinding
Work
Дополнительные сведения о каждом объекте см. в справочнике по API.
Полное прогрессирование развертывания ClusterResourcePlacement
Понимание прогрессии и состояния пользовательского ClusterResourcePlacement
ресурса имеет решающее значение для диагностики и выявления сбоев. Состояние настраиваемого ClusterResourcePlacement
ресурса можно просмотреть с помощью следующей команды:
kubectl describe clusterresourceplacement <name>
Дополнительные сведения см. в разделе "Использование API ClusterResourcePlacement" для распространения ресурсов в кластеры-члены.
Полный прогресс 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.
Вопросы и ответы
Как выполнить отладку, если некоторые кластеры не выбраны должным образом?
Проверьте состояние ClusterSchedulingPolicySnapshot
, чтобы определить, какие кластеры были выбраны, и причина их выбора.
Как выполнить отладку, если выбранный кластер не имеет ожидаемых ресурсов или если ClusterResourcePlacement не выбирает последние изменения?
- Проверьте, задано ли
ClusterResourcePlacementRolloutStarted
условие вClusterResourcePlacement
состоянии значение true или false.- Если значение false, см. сведения о том, как выполнить отладку состояния условия ClusterResourcePlacementScheduled с значением false.
- Если значение true, перейдите к шагу 2.
- Проверьте, задано ли
ClusterResourcePlacementApplied
условие значение unknown, false или true.- Если неизвестно, дождитесь завершения процесса, так как ресурсы по-прежнему применяются к кластеру-члену. Если состояние остается неизвестным в течение некоторого времени, откройте проблему , так как это необычное поведение.
- Если значение false, см. сведения о том, как выполнить отладку состояния условия ClusterResourcePlacementApplied с значением false.
- Если значение true, убедитесь, что ресурс существует в кластере концентратора.
placementStatuses
Проверьте раздел вClusterResourcePlacement
состоянии конкретного кластера. ВFailedPlacements
этом разделе должны быть указаны причины сбоев приложений ресурсов.
Как найти и проверить последнюю версию ClusterSchedulingPolicySnapshot для развертывания ClusterResourcePlacement?
Чтобы найти последнюю версию ClusterSchedulingPolicySnapshot
ClusterResourcePlacement
развертывания API, выполните следующую команду:
kubectl get clusterschedulingpolicysnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
Примечание.
В этой команде замените {CRPName}
имя.ClusterResourcePlacement
Затем сравните ClusterSchedulingPolicySnapshot
политику, ClusterResourcePlacement
чтобы убедиться, что они совпадают numberOfClusters
, исключая поле из спецификации ClusterResourcePlacement.
Если тип размещения имеет PickN
значение, проверьте, соответствует ли число кластеров, запрошенных в политике ClusterResourcePlacement
, значению number-of-clusters
метки.
Как найти последний ресурс ClusterResourceBinding?
Следующая команда содержит список всех ClusterResourceBindings
экземпляров, связанных с ClusterResourcePlacement
:
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.