我创建了一个服务,该服务分配了3个容器。
我想由同一项目中的其他服务通过其主机名访问该服务。我该怎么办?
尝试:
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地址的正确方法是什么?
答案 0 :(得分:1)
对于此类服务,未分配群集IP,未分配kube-proxy 处理这些服务,并且没有完成负载平衡或代理 通过平台为他们服务。如何自动配置DNS 服务是否定义了选择器。
带有选择器
对于定义选择器的无头服务,端点控制器 在API中创建端点记录,并修改DNS 返回直接指向的A记录(地址)的配置 支持该服务的Pod。
没有选择器
对于没有定义选择器的无头服务,端点 控制器不会创建端点记录。但是,DNS系统 查找并配置:
ExternalName类型服务的CNAME记录。
A记录所有与服务共享名称的所有其他类型的端点。
所以您也许可以做到:
kubectl get ep
获取端点,然后在另一个kubernetes服务中使用它们。