Consul DNS and Kubernetes



我正在运行在 Kubernetes 1.8.x 集群外部注册的 Consul 服务器。Consul 在我的 Kube 集群(由 Helm 配置(内运行,并与外部 Consul 集群对等。Kube-dns 被配置为使用内部 Consul pod 作为"stubDomain",具有以下 ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-dns
  namespace: kube-system
data:
  stubDomains: |
    {
      "consul": [
        "10.244.0.xxx:8600",
        "10.244.1.xxx:8600",
        "10.244.2.xxx:8600"
      ]
    }

当一切按预期工作时,kube-dns 会解析外部领事域名。问题是当 Consul Pod 崩溃并使用新的 IP 地址重新启动时。

有没有办法从 Consul pod 崩溃中恢复,而不必手动更改 kube-dns 配置Map 中列出的 IP 地址?

我最终修改了"consul-ui"服务(具有IP地址的服务(以公开Consul DNS端口。我将以下内容从"领事"服务(没有集群 IP 的服务(复制到 ["spec"]["port"] 部分中的"consul-ui"服务:

  {
    "name": "consuldns-tcp",
    "protocol": "TCP",
    "port": 8600,
    "targetPort": 8600,
    "nodePort": 30766
  },
  {
    "name": "consuldns-udp",
    "protocol": "UDP",
    "port": 8600,
    "targetPort": 8600,
    "nodePort": 32559
  }

然后使用 service IP 地址,而不是 kube-dns 配置Map 中的 Pod IP 地址。

最新更新