2

Kubernetes Python Clientlabel selectorsを介してService を取得しようとしています。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_selectorlabel selectors

問題は、最初からサービスの背後にあるエンドポイント (バックエンド ポッド) を取得する必要があることですが、API 呼び出しではこの情報が返されないため、セレクターを取得して、それらをポッドのラベルと照合します。 、そこに行きますが、セレクターも取得できないことに気付きました。

これは制限が多すぎます。私のアプローチが間違っているのではないかと考えています。サービスから取得する方法を知っている人はいlabel selectorsますか?

4

1 に答える 1