有没有办法从群集外部发现无头服务的所有端点?
最好使用DNS或静态IP
答案 0 :(得分:5)
通过watching changes到端点列表:
GET /api/v1/watch/namespaces/{namespace}/endpoints
答案 1 :(得分:3)
无头服务是一组Pod IP。 Pod IP通常不在群集/云提供商之外可用。
您是在尝试为无头服务获取外部IP还是在同一网络内(例如在GCE项目中)而不在群集中?
答案 2 :(得分:2)
DNS插件正是您所追求的。来自文档:
例如,如果您有一个名为" my-service"在Kubernetes 命名空间" my-ns" " my-service.my-ns"的DNS记录被建造。荚 存在于" my-ns"命名空间应该能够找到它 只需对" my-service"进行名称查找。其他存在的豆荚 命名空间必须将名称限定为" my-service.my-ns"。的结果 这些名称查找是群集IP。
在无头服务的情况下:
DNS配置为返回多个A记录(地址) 服务名称,直接指向支持服务的Pod。
但是,此服务仅在群集内可用。但KubeDNS只是另一个广告:
kubectl get po --namespace=kube-system
kubectl describe po kube-dns-pod-name --namespace=kube-system
这意味着您可以使用外部可访问的地址创建服务以公开此服务。只需使用与您的kube-dns pod标签匹配的选择器。
http://kubernetes.io/v1.1/docs/user-guide/services.html#dns https://github.com/kubernetes/kubernetes/blob/release-1.1/cluster/addons/dns/README.md