使用DNS的Kubernetes服务发现失败

时间:2019-05-28 22:19:01

标签: kubernetes dns service-discovery replicaset

我想了解如何为DNS服务器信息的副本集的每个pod配置/etc/resolve.conf,因为我将群集从1.13升级到1.14,并且它以某种方式更改了kube DNS服务器的IP,并且现有的plicateSet正在将旧的IP /信息注入到该resetSet的新pod的/etc/resolve.conf中,从而破坏了对那些特定pod的服务发现。

即使这不是集群升级,而只是重新部署kube-dns,并且它更改了IP,那么当它们添加/增加更多的Pod时,现有的copySet或statefulSet的行为如何。就我而言,目前正在注入旧信息。

新部署可以正常工作。

1 个答案:

答案 0 :(得分:1)

广告连播将始终继承owner object的规范,在这种情况下,继承自ReplicaSet

每个ReplicaSet都有一个 pod模板,其中包含 resolv.conf 注册的配置,除非滚动新的Deployment,否则它不会更改out(因为RS依赖于Deployment对象):

kubectl get rs YOUR_REPLICASET -o yaml | grep pod-template-hash -m 1

在这种情况下,您可以推出新的Deployment版本或重新部署 kube-dns / coreDNS 的YAML定义,并保留原始的clusterIP

spec:
  clusterIP: 10.11.0.12 # Old service address