Kubectl поддерживает шаблон JSONPath.
Используя JsonPath, вы можете получить IP-адрес кластера службы или другие подробности, как показано ниже.
ubuntu@k8s-master:~$ kubectl get all -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/nginx 1/1 Running 0 129m 192.168.85.226 k8s-node01 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d2h <none>
service/nginx ClusterIP 10.96.184.196 <none> 80/TCP 11m run=nginx
ubuntu@k8s-master:~$ kubectl get service nginx -o jsonpath='{.spec.clusterIP}'
10.96.184.196
Использование JsonPath Хорошо работает с типом LoadBlancer а также .. надеюсь, это то, с чем вы хотите работать.
$ kubectl get all -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/nginx 1/1 Running 0 133m 192.168.85.226 k8s-node01 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d2h <none>
service/nginx LoadBalancer 10.100.165.17 <pending> 80:30852/TCP 5s run=nginx
ubuntu@k8s-master:~$
10.100.165.17ubuntu@k8s-master:~$ kubectl get service nginx -o jsonpath='{.spec.type}'
LoadBalancer
ubuntu@k8s-master:~$ kubectl get service nginx -o jsonpath='{.spec.clusterIP}'
10.100.165.17
Так что при извлечении ПОРТОВ также возвращает карту, как показано ниже
$ kubectl get service nginx -o jsonpath='{.spec.ports}'
[map[nodePort:30852 port:80 protocol:TCP targetPort:80]]
вы можете извлекать nodePort, port и targetPort каждый, как показано ниже
$ kubectl get service nginx -o jsonpath='{.spec.ports[].targetPort}'
80
ubuntu@k8s-master:~$ kubectl get service nginx -o jsonpath='{.spec.ports[].nodePort}'
30852
ubuntu@k8s-master:~$ kubectl get service nginx -o jsonpath='{.spec.ports[].port}'
80
Надеюсь, приведенные выше примеры помогут вам исправить ваш запрос
I думаю, что вы должны быть в состоянии сделать эту команду при использовании jsonpath.
kubectl get service webapp1-loadbalancer-svc -o jsonpath={{.status.loadBalancer.ingress[].ip}}