Назад | Перейти на главную страницу

Как я могу получить статус нескольких ресурсов Kubernetes за один вызов API?

Я использую клиент python kubernetes для управления развертыванием ресурсов. Я хотел бы опрашивать состояние нескольких ресурсов одновременно, чтобы обеспечить обратную связь почти в реальном времени о том, когда данный набор ресурсов доступен. Сейчас мне приходится запрашивать каждый ресурс индивидуально, что кажется чрезмерным в системе, где каждый устанавливать ресурсов масштабируется N пользователями (так, если есть 6 ресурсов, будет N (6) запросов на проверку статуса).

Есть ли способ запросить API и получить статус всех ресурсов, соответствующих заданному селектору меток? Если нет, то есть ли другой подход, который мне следует рассмотреть?

получить статус всех ресурсов, соответствующих заданному селектору меток?

Я начал с того, что увидел, как kubectl делает это, потому что на достаточно высоком уровне детализации он показывает фактические базовые HTTP-транзакции:

kubectl --v=8 get deploy,pod  -l app.kubernetes.io/name=something

кажется, выпускает два отдельных GET вызовы, поэтому я считаю, что он просто запускает их одновременно, а затем ожидает потоков.

Что касается второй половины вашего вопроса,

kubectl --v=8 get all -l app.kubernetes.io/name=something

делает то же самое, что и версия CSV, но вместо этого, похоже, делает что-то вроде kubectl api-resources (или, возможно, имеет жестко запрограммированный список того, что он считает all?) и затем делает то же самое: добавление нескольких GET в полете и в ожидании ниток

Возможно, вам будет интересно узнать, как kubectl rollout status работает, чтобы посмотреть, поможет ли это вам. Я также пробовал добавить --watch к get all и был проинформирован:

F0730 21: 55: 36.819494 2887268 helpers.go: 115] ошибка: вы можете указать только один тип ресурса