簡體   English   中英

如何列出在 kubernetes 中為服務提供流量的所有 pod 的名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM