[英]How to list names of all pods serving traffic behind a service in kubernetes
我想列出所有實際在 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/
的確切 pod 名稱
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}}'
這個命令有效
kubectl get ep servicename -o=jsonpath='{.subsets[*].addresses[*].ip}' | tr ' ' '\n' | xargs -I % kubectl get pods -o=name --field-selector=status.podIP=%
這應該有效,“-o=name”僅用於顯示 pod 名稱。
kubectl get pods -o=name --all-namespaces | grep {service-name}
將 {service-name} 替換為您的服務名稱
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.