kubernetes - 如何获取 "ready"的Pod列表?

标签 kubernetes kubectl kubernetes-pod

我正在使用kubectl来检索 pod 列表:

 kubectl get pods --selector=artifact=boot-example -n my-sandbox  

我得到的结果是:
NAME                           READY   STATUS    RESTARTS   AGE
boot-example-757c4c6d9c-kk7mg   0/1     Running   0          77m
boot-example-7dd6cd8d49-d46xs   1/1     Running   0          84m
boot-example-7dd6cd8d49-sktf8   1/1     Running   0          88m

我只想获得“ ready ”(已通过readinessProbe)的 pod 。是否有任何kubectl命令仅返回“ ready ” Pod?如果不是kubectl命令,那么也许还有其他方法吗?

最佳答案

您可以使用以下命令:

kubectl -n your-namespace get pods -o custom-columns=NAMESPACE:metadata.namespace,POD:metadata.name,PodIP:status.podIP,READY-true:status.containerStatuses[*].ready | grep true

这将为您返回带有“ ready ”容器的容器。

要在没有grep的情况下执行此操作,可以使用以下命令:
kubectl -n your-namespace get pods -o go-template='{{range $index, $element := .items}}{{range .status.containerStatuses}}{{if .ready}}{{$element.metadata.name}}{{"\n"}}{{end}}{{end}}{{end}}'

kubectl -n your-namespace get pods -o jsonpath='{range .items[*]}{.status.containerStatuses[*].ready.true}{.metadata.name}{ "\n"}{end}'

这将返回“ ready ”的广告连播名称

关于kubernetes - 如何获取 "ready"的Pod列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58992774/

相关文章:

jenkins - 将安全上下文传递给 Jenkins-Kubernetes 插件

spring-boot - 将 udp 数据包多播到不同节点上的所有 kubernetes pod

kubernetes - 所有 Helm 命令上的禁止用户错误。如何授予用户访问 Helm 的权限?

Kubernetes -> 每个命名空间的内存消耗

docker - 如何在 K8S 中的 IP 表中阻止到 ip 的传出流量

kubernetes - 同一集群中 Kubernetes pod 之间的连接被拒绝

Kubernetes livenessProbe : restarting vs destroying of the pod

Kubernetes 部署/Pod/容器状态

azure - 如何在本地 kubernetes(k8s) 集群上分配 Azure Pod 身份(开发时)

amazon-web-services - 如何在 EKS 集群中基于内存的指标实现自动缩放