Я пытаюсь получить услугу label selectors
через Kubernetes Python Client . Я использую list_service_for_all_namespaces метод для извлечения услуг и фильтрации его с параметром field_selector
, например:
...
field_selector="spec.selector={u'app': 'redis'}
...
services = v1.list_service_for_all_namespaces(field_selector=field_selector, watch=False)
for service in services.items:
print(service)
...
Я получаю эту ошибку:
HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"\"spec.selector\" is not a known field selector: only \"metadata.name\", \"metadata.namespace\"","reason":"BadRequest","code":400}
Итак, похоже, что только name
и namespace
являются допустимыми параметрами, что не задокументировано:
field_selector = 'field_selector_example' # str | Селектор для ограничения списка возвращаемых объектов по их полям. По умолчанию все. (По желанию)
На данный момент мой обходной путь - установить для службы те же метки , что и селекторы меток , а затем извлечь их с помощью параметра label_selector
, но я бы хотел иметь возможность чтобы пройти через label selectors
.
Дело в том, что с самого начала мне нужно получить конечные точки за службой (модули бэкэнда), но вызов API даже не возвращает эту информацию, поэтому я хотел бы получить селекторы, сопоставить их с метками на стручках, и там мы идем, но теперь я понимаю, что селекторы также невозможно получить.
Это слишком большое ограничение. Я думаю, может быть, мой подход неверен. Кто-нибудь знает способ получения label selectors
из службы?