Мне нужно получить количество модулей в кластере Kubernetes с клиентом python kubernetes

У меня есть код, чтобы получить количество модулей, которые он дает на выходе, но он загружает слишком много нежелательных данных в (ret_pod), есть ли лучший способ сделать это?

from  kubernetes import client , config 

config.load_kube_config()
v1= client.CoreV1Api()
ret_pod = v1.list_pod_for_all_namespaces(watch=False)
print(len(ret_pod.items))

что дает мне результат

kubectl get po -A -o json 

а затем находит длину. но я просто хочу сделать вывод

kubectl get po -A

person Pradeep Padmanaban C    schedule 05.07.2020    source источник
comment
Что не так с тем, как вы это делаете? Мне нравится ....   -  person Z4-tier    schedule 05.07.2020
comment
если у меня 1000 модулей, он загрузит данные всех 1000 модулей, мне нужно только количество этих модулей @ Z4-tier   -  person Pradeep Padmanaban C    schedule 06.07.2020
comment
API для подсчета нет. Возможно, вы могли бы использовать селектор полей, но в целом то, что у вас есть, правильное. API остается очень простым.   -  person coderanger    schedule 06.07.2020
comment
@coderanger, что касается field_selector, это позволит только фильтровать / сужать результат, например. в модули, имеющие это конкретное поле, содержащее какое-то конкретное значение, то есть этот пример ret_pod = v1.list_pod_for_all_namespaces(field_selector='metadata.name=python-client',watch=False) будет извлекать только модуль с именем python-client, но он все равно получит весь его манифест json. Таким образом, приведенный выше пример, вероятно, является наиболее эффективным способом выполнения такой задачи.   -  person mario    schedule 20.01.2021


Ответы (1)


В способе kubectl:

kubectl get po -A --no-headers | wc -l
person RammusXu    schedule 06.07.2020