首页 > 解决方案 > kubernetes - 如何找到正在运行和准备好的 pod?

问题描述

我想获取“正在运行”且完全“就绪”的服务的 kubernetes pod 列表。

完全准备好,我的意思是在 k9s 中显示完整的“READY”计数,所以如果 pod 有 4 个运行条件,我会在 k9s 中看到“READY”和“4/4”。

我怎样才能做到这一点?

标签: kubernetes

解决方案


对于特定服务,my-service这仅显示完全准备好的 pod

$ kubectl get pods --selector=app=my-service -o json  | select_ready_pods.py

所有豆荚的类似想法

$ kubectl get pods --all-namespaces -o json  | select_ready_pods.py

列出未准备好的 pod

$ kubectl get pods --selector=app=my-service -o json  | select_ready_pods.py --not_ready

select_ready_pods.py

#!/usr/bin/env python

import sys
import json

try:
    a = json.load(sys.stdin)
except:
    print("The data from stdin doesnt appear to be valid json. Fix this!")
    sys.exit(1)


def main(args):
    for i in a['items']:
        length = len(i['status']['conditions'])
        count = 0
        for j in i['status']['conditions']:
            if (j['status'] == "True"):
                count=count+1

        if (args.not_ready):
            if (count != length):
                print(i['metadata']['name'])
        else:
            if (count == length):
                print(i['metadata']['name'])

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--not_ready", help="show pods that are NOT ready", action="store_true")
args = parser.parse_args()

main(args)

推荐阅读