如何解决kubectl 命令查找特定 pod 状态为就绪
我想点击一个命令来搜索带有服务名称的 pod 并将其 pod 的状态标识为“就绪”
我尝试了一些命令,但它不起作用,也没有使用 service-name 进行搜索。
kubectl get svc | grep my-service | --output="jsonpath={.status.containerStatuses[*].ready}" | cut -d' ' -f2
我也尝试使用循环,但脚本没有提供所需的输出。
你能帮我找出确切的命令吗?
解决方法
每个服务创建一个端点,其中包含服务的 podIp 和其他信息。您可以使用该 endpoints
来获取 Pod。 .它会显示您的 my-service
的就绪 pod。
使用这个命令:
kubectl get endpoints -n <Name_space> <service_name> -o json | jq -r 'select(.subsets != null) | select(.subsets[].addresses != null) | .subsets[].addresses[].targetRef.name'
对你来说,命令是:
kubectl get endpoints my-service -o json | jq -r 'select(.subsets != null) | select(.subsets[].addresses != null) | .subsets[].addresses[].targetRef.name'
您可以运行脚本来获取 pod 状态
#!/usr/bin/env bash
for podname in $(kubectl get endpoints my-service -o json | jq -r 'select(.subsets != null) | .subsets[].addresses[].targetRef.name')
do
kubectl get pods -n demo $podname -o json | jq -r ' select(.status.conditions[].type == "Ready") | .status.conditions[].type ' | grep -x Ready
done
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。