解析无头服务的IP地址

时间:2018-11-02 16:50:44

标签: kubernetes google-cloud-platform

我创建了一个服务,该服务分配了3个容器。

enter image description here

我想由同一项目中的其他服务通过其主机名访问该服务。我该怎么办?

尝试:

alxtbk@dns-test:~$ ping elassandra-0.elassandra
ping: elassandra-0.elassandra: Name or service not known

alxtbk@dns-test:~$ ping elassandra-0.default.svc.cluster.local
ping: elassandra-0.default.svc.cluster.local: Name or service not known

alxtbk@dns-test:~$ ping elassandra.default.svc.cluster.local
ping: elassandra.default.svc.cluster.local: Name or service not known

解决无头服务的IP地址的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

  

对于此类服务,未分配群集IP,未分配kube-proxy   处理这些服务,并且没有完成负载平衡或代理   通过平台为他们服务。如何自动配置DNS   服务是否定义了选择器。

     

带有选择器

     

对于定义选择器的无头服务,端点控制器   在API中创建端点记录,并修改DNS   返回直接指向的A记录(地址)的配置   支持该服务的Pod。

     

没有选择器

     

对于没有定义选择器的无头服务,端点   控制器不会创建端点记录。但是,DNS系统   查找并配置:

     

ExternalName类型服务的CNAME记录。

     

A记录所有与服务共享名称的所有其他类型的端点。

所以您也许可以做到:

kubectl get ep

获取端点,然后在另一个kubernetes服务中使用它们。