我想列出所有实际上在kubernetes服务背后服务流量的Pod的名称。我的问题是如何通过执行单个kubectl命令来实现这一点。
最佳答案
有两种方法可以列出服务背后的 pod 。
比较简单的方法,但是有两个命令
通过运行以下命令找到选择器
kubectl get services -o=wide
输出:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
hello-world-service ClusterIP 172.21.xxx.xx <none> 80/TCP 13m run=nginx
将选择器传递给下面的命令
kubectl get pods --selector=run=nginx -o=name
要查看不含
pod/
的确切 pods 名称kubectl get pods --selector=run=nginx --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}'
在单个命令中,但使用服务的端点信息
hello-world-service
kubectl get endpoints hello-world-service -o=jsonpath='{.subsets[*].addresses[*].ip}' | tr ' ' '\n' | kubectl get pods --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}'
关于kubernetes - 如何在kubernetes中列出服务背后流量的所有Pod的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60221012/