如何访问用headless service方式创建的Kubernetes endpoints IPs?
这样创建了headless service:
myapp-service-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: myapp-service-headless
spec:
ports:
- port: 8000
selector:
app: myapp
clusterIP: None
创建到Kubernets集群并查看状态:
$ kubectl create -f myapp-service-headless.yaml
$ kubectl describe service myapp-service-headless
Name: myapp-service-headless
Namespace: default
Labels: <none>
Annotations: <none>
Selector: app=myapp
Type: ClusterIP
IP: None
Port: <unset> 8000/TCP
TargetPort: 8000/TCP
Endpoints: 172.17.0.11:8000,172.17.0.9:8000
Session Affinity: None
Events: <none>
现在连接172.17.0.11:8000
或172.17.0.9:8000
,停止没有结果。
在部署到Pods中容器的应用程序里使用了kube-dns
: myapp-service-headless.default.svc.cluster.local
。
这种情况如何通过API连接到里面的应用程序?哪个IP可用?有人说用Ingress controller
从Nginx中设置,是正确方法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可以一起交流下 最近也也需求 需要由客户端感知service后端所有POD 自主进行负载,ingress配置路由是无效的 不走proxy 集群内通过DNS域名 可以解析到所有IP 查到的资料也是说内部集群通过 客户端通过DNS域名的调用方式来获取所有后端POD IP 内部ping该域名是轮训每个IP的 CURL的话应该是所有PODID都会回应 待测试 如果有结论了 可以回复下我 交流下