我正在尝试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
问题是从一开始我就需要获取服务背后的端点(后端 pod),但是 API 调用甚至没有返回此信息,所以我虽然会得到选择器,但将它们与 pod 上的标签进行匹配,然后我们开始了,但现在我意识到选择器也无法获得。
这限制太多了。我在想可能是我的方法是错误的。有谁知道label selectors
从服务中获取的方法?