【问题标题】:Kubernetes service discovery using DNS fails使用 DNS 的 Kubernetes 服务发现失败
【发布时间】:2019-05-28 22:19:01
【问题描述】:

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

即使它不是集群升级,只是重新部署 kube-dns,并且它改变了它的 IP,那么当现有的 replicaSet 或 statefulSets 添加/增加更多 pod 时,它们会如何表现。在我这边,目前,它正在注入旧信息。

新部署工作正常。

【问题讨论】:

    标签: kubernetes dns service-discovery replicaset


    【解决方案1】:

    pod 将始终从 owner object 继承规范,在这种情况下,从 ReplicaSet 继承规范。

    每个 ReplicaSet 都有一个 pod 模板,其中包含 resolv.conf 注册配置,除非推出新的 Deployment,否则不会更改(因为 RSs是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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      • 2018-11-30
      • 2021-04-17
      • 2021-02-05
      • 2016-07-13
      • 2019-02-12
      • 2019-02-06
      相关资源
      最近更新 更多