use*_*009 6 kubernetes kubectl
我正在尝试使用 kubectl 等待服务获取分配的外部 IP。我一直在尝试使用下面的内容来开始
kubectl wait --for='jsonpath={.spec.externalTrafficPolicy==Cluster}' --timeout=30s --namespace cloud-endpoints svc/esp-echo
Run Code Online (Sandbox Code Playgroud)
但我不断收到以下错误消息
error: unrecognized condition: "jsonpath={.spec.externalTrafficPolicy==Cluster}"
Run Code Online (Sandbox Code Playgroud)
不可能任意传递jsonpath,并且已经存在对该功能的请求。
但是,您可以使用 bash 脚本进行一些睡眠,并使用其他kubectl命令监视服务:
kubectl get --namespace cloud-endpoints svc/esp-echo --template="{{range .status.loadBalancer.ingress}}{{.ip}}{{end}}"
Run Code Online (Sandbox Code Playgroud)
例如,上述命令将返回 LoadBalancer 服务的外部 IP。
您可以使用上面的内容编写一个简单的 bash 文件,如下所示:
#!/bin/bash
ip=""
while [ -z $ip ]; do
echo "Waiting for external IP"
ip=$(kubectl get svc $1 --namespace cloud-endpoints --template="{{range .status.loadBalancer.ingress}}{{.ip}}{{end}}")
[ -z "$ip" ] && sleep 10
done
echo 'Found external IP: '$ip
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4570 次 |
| 最近记录: |