如何发现无头服务端点

时间:2015-11-15 13:49:32

标签: kubernetes google-kubernetes-engine

有没有办法从群集外部发现无头服务的所有端点?

最好使用DNS或静态IP

3 个答案:

答案 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