如何从IP地址得到一个pod的名字? kubectl+sed/awk/grep/等都可以,我该怎么调用?
kubectl
sed
awk
grep
无需额外工具即可完成,只需 kubectl 即可:
kubectl get pods -o custom-columns=:metadata.name --no-headers=true --field-selector status.podIP=<pod-ip-address-goes-here>
另一种通过 ip 地址获取 pod 名称的方法如下:
$ kubectl get pods --all-namespaces -o wide | grep 10.2.6.181 jenkins jenkins-2-7d6d7fd99c-9xgkx 2/2 Running 3 12d 10.2.6.181 ip.ap-southeast-2.compute.internal <none>
kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE alpine-3835730047-ggn2v 1/1 Running 0 5d 10.22.19.69 ip-10-35-80-221.ec2.internal
kubectl get --all-namespaces --output json pods | jq '.items[] | select(.status.podIP=="10.22.19.69")' | jq .metadata.name "alpine-3835730047-ggn2v"
kubectl get --all-namespaces --output json pods | jq '.items[] | select(.status.podIP=="10.22.19.69")' | jq .spec.containers[].name "alpine"
找不到想要的答案?提一个您自己的问题。
0 声望
这家伙太懒,什么都没留下
无需额外工具即可完成,只需 kubectl 即可:
kubectl get pods -o custom-columns=:metadata.name --no-headers=true --field-selector status.podIP=<pod-ip-address-goes-here>
另一种通过 ip 地址获取 pod 名称的方法如下:
$ kubectl get pods --all-namespaces -o wide | grep 10.2.6.181 jenkins jenkins-2-7d6d7fd99c-9xgkx 2/2 Running 3 12d 10.2.6.181 ip.ap-southeast-2.compute.internal <none>
例子:
kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE alpine-3835730047-ggn2v 1/1 Running 0 5d 10.22.19.69 ip-10-35-80-221.ec2.internal
通过 IP 获取 pod 名称
kubectl get --all-namespaces --output json pods | jq '.items[] | select(.status.podIP=="10.22.19.69")' | jq .metadata.name "alpine-3835730047-ggn2v"
通过 IP 获取容器名
kubectl get --all-namespaces --output json pods | jq '.items[] | select(.status.podIP=="10.22.19.69")' | jq .spec.containers[].name "alpine"
你的答案