[英]How to get the service IP in Kubernetes?
我根据这里的官方文档运行了一个本地集群。 我按照步骤操作并且它正常工作,直到我设置了一个副本并尝试暴露它。 我的意思是:
./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}'
kubectl get svc <your-service> -o yaml | grep ip
IP 应该是您的主节点的外部 IP。 如果您在本地运行,它应该是 localhost 或您的 VM。
当然,添加给定的端口。
127.0.0.1:80
例如。
PS:通过运行以下命令确保您已经运行了容器/pod:
kubectl get pods
如果这不起作用,我建议代理它,至少用于测试目的。
有几种方法可以做到这一点:
kubectl get svc <service-name> -o yaml | grep clusterIP
或者例如:
kubectl describe svc <service-name> | grep IP
方便参考:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.