我按照它的官方文档在这里运行了一个本地集群。 我按照步骤操作,一切正常,直到我设置了一个副本并尝试将其公开。我的意思是:
./kubectl expose rc nginx --port=80
输出是这个:
NAME LABELS SELECTOR IP(S) PORT(S)
nginx run=nginx run=nginx 80/TCP
当我再次尝试时,它显示相同的服务正在运行。我该如何找出IP地址?
我按照它的官方文档在这里运行了一个本地集群。 我按照步骤操作,一切正常,直到我设置了一个副本并尝试将其公开。我的意思是:
./kubectl expose rc nginx --port=80
输出是这个:
NAME LABELS SELECTOR IP(S) PORT(S)
nginx run=nginx run=nginx 80/TCP
当我再次尝试时,它显示相同的服务正在运行。我该如何找出IP地址?
kubectl get service/servicename -o jsonpath='{.spec.clusterIP}'
IP地址应该是主节点的外部IP地址。如果您正在本地运行,则应该是localhost或虚拟机的IP地址。
当然,要加上给定的端口号。
127.0.0.1:80
举个例子。
提示:请确保已经运行了容器/ pod,方法如下:
kubectl get pods
./kubectl get services
,它给了我IP地址。 - Hadikubectl get svc <your-service> -o yaml | grep ip
另一种命令:
kubectl get -o template service/servicename --template='{{.spec.clusterIP}}'
请检查 kubectl get --help
curl `kc describe svc nginx | grep IP | awk '{print $2}'`
而作为一个kurl
的bash函数...
## for curling services by name...
kurl() {
name=$1
path=$2
add=`kc describe svc $name | grep IP | awk '{print $2}'`$path
# echo "hitting $add"
curl $add
}
# kurl nginx :8080/some/path/you/want