Folks, 是否有一种更容易的方法来抓取Kubernetes中的服务的外部IP地址,而不是解析kubectl输出的输出?使用kubectl或kubernetes API来获取服务的外部IP
kubectl get services/foo --namespace=foo -o json
谢谢!
Folks, 是否有一种更容易的方法来抓取Kubernetes中的服务的外部IP地址,而不是解析kubectl输出的输出?使用kubectl或kubernetes API来获取服务的外部IP
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'