kubernetes Python k8s客户端:当调用list_namespaced_pod时,是否可以在作业名称查询中使用通配符?

pkmbmrz7  于 2022-11-21  发布在  Kubernetes
关注(0)|答案(1)|浏览(235)

获取给定名称空间中的所有pod花费的时间太长了,所以我正在尝试减少时间。我不知道使用这样的过滤是否会更快,但我至少必须尝试-如果可能的话...
试过的东西像:label_selector='job-name=my-agent-*'label_selector='job-name=my-agent-%'以及许多其他变体都没有成功。完整代码:

from kubernetes import config, client
from kubernetes.client import CoreV1Api, V1PodList

config.load_kube_config()
v1: CoreV1Api = client.CoreV1Api()
pods_list: V1PodList = v1.list_namespaced_pod(
    'dev-pool',
    label_selector='job-name=my-agent-*'
)

这可能吗?

oknwwptz

oknwwptz1#

通配符的使用没有文档记录。但是,既然您可以传递series of label_selectors,那么下面的方法对您有效吗?

# Example. Acquire job and agent names per your project requirements
selectors = [("job-name-1","my-agent-a"),("job-name-2","my-agent-b")]

# Job and agent names as string literal
# 'job_name_1=my_agent_a,job_name_2=my_agent_b'
label_selectors = ','.join('='.join(map(str, x)) for x in selectors)

然后道:

...
config.load_kube_config()
v1: CoreV1Api = client.CoreV1Api()
pods_list: V1PodList = v1.list_namespaced_pod(
    'dev-pool',
    label_selector=label_selectors
)

相关问题