大家好,
有没有一种更简单的方法来获取Kubernetes中服务的外部IP地址,而不是解析kubectl输出的结果?
kubectl get services/foo --namespace=foo -o json
谢谢!
大家好,
有没有一种更简单的方法来获取Kubernetes中服务的外部IP地址,而不是解析kubectl输出的结果?
kubectl get services/foo --namespace=foo -o json
谢谢!
使用 kubectl 是获取服务入口 IP 地址最简单的方式。如果您只想获取 IP 地址,则可以将大部分解析作为 kubectl 命令本身的一部分来完成。
kubectl get svc foo -n foo \
-o jsonpath="{.status.loadBalancer.ingress[*].ip}"
这可能不适用于您,但某些云负载均衡器(如AWS ELB)会给您提供主机名而不是IP地址,因此您需要查找该主机名。
kubectl get svc foo -n foo \
-o jsonpath="{.status.loadBalancer.ingress[*].hostname}"
如果您喜欢,可以使用jsonpath联合运算符同时获取两者。
kubectl get svc foo -n foo \
-o jsonpath="{.status.loadBalancer.ingress[*]['ip', 'hostname']}"
如果您想要一个易于阅读的输出,可以使用custom-columns
输出格式。
kubectl get svc foo -n foo \
-o custom-columns="NAME:.metadata.name,IP ADDRESS:.status.loadBalancer.ingress[*].ip"
jq
来执行类似以下的操作吗?”kubectl get services/foo --namespace=foo -o json| jq '.items[0].status.hostIP'