Kubernetes Alpine容器无法解析主机名

Kubernetes Alpine容器无法解析主机名,kubernetes,alpine,Kubernetes,Alpine,我有一个StatefulSet Kubernetes部署,有2个工作节点。我能够使用headless服务在这两个节点上创建容器,因此节点的主机名为 abc-0.abc.default.svc.cluster.local abc-1.abc.default.svc.cluster.local 问题是我不能使用主机名从abc-1向相反方向ping abc-0。如果我使用IP地址,那么一切正常 在某些时候,DNS解析与Alpine Linux有关()但似乎在Alpine Linux 3.4中已修复

我有一个StatefulSet Kubernetes部署,有2个工作节点。我能够使用headless服务在这两个节点上创建容器,因此节点的主机名为

  • abc-0.abc.default.svc.cluster.local
  • abc-1.abc.default.svc.cluster.local
问题是我不能使用主机名从abc-1向相反方向ping abc-0。如果我使用IP地址,那么一切正常

在某些时候,DNS解析与Alpine Linux有关()但似乎在Alpine Linux 3.4中已修复


验证我面临的问题不是因为Linux而是因为Kube DNS中的某些错误配置或其他原因的好方法是什么?

我想你的意思是
ping abc-0
,你是否尝试
ping abc-0.abc

resolv.conf并没有包含所有statefull服务条目搜索域,只有名称空间域,因此当您尝试仅通过
abc-0
访问时,它实际上会解析为
abc-0.default.svc.cluster.local

我猜您的意思是
ping abc-0
,您是否尝试过
ping abc-0.abc

resolv.conf并没有包含所有statefull服务条目搜索域,只有名称空间域,因此当您尝试仅通过
abc-0
访问时,它实际上解析为
abc-0.default.svc.cluster.local

,问题是我运行的服务没有为其分配端点。我使用的是v1.7.3,因此通过在headless服务上添加“selector”解决了这个问题。而且,在v1.8.3中,这似乎不再是问题。

问题在于我运行的服务没有为其分配端点。我使用的是v1.7.3,因此通过在headless服务上添加“selector”解决了这个问题。而且,在v1.8.3中,这似乎不再是一个问题。

如您所述,我确实在resolv.conf中看到了以下搜索域:-default.svc.cluster.local-svc.cluster.local-cluster.local在登录到运行abc-0的节点后:-
ping abc-0
工作正常-
ping abc-0.abc
返回错误地址错误-
ping abc-1
返回错误地址错误-
ping abc-1.abc
返回您提到的错误地址错误,我确实在resolv.conf中看到了以下搜索域:-default.svc.cluster.local-svc.cluster.local-cluster.local在登录到运行abc-0的节点后:-
ping abc-0
工作正常-
ping abc-0.abc
返回错误地址错误-
ping abc-1
返回错误地址错误-
ping abc-1.abc
返回错误地址错误