我正在运行在Consul上注册的服务器,在我的Kubernetes 1.8.x集群外部 . Consul在我的Kube集群内运行(由Helm配置),并与外部Consul集群对等 . Kube-dns配置为使用内部Consul pod作为“stubDomains”与以下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 域名 . 问题是Consul pod崩溃并重新启动时使用新的IP地址 .
有没有办法从Consul pod崩溃中恢复,而无需手动更改kube-dns ConfigMap中列出的IP地址?
1 回答
我最终修改了“consul-ui”服务(具有IP地址的服务)来公开Consul DNS端口 . 我将以下内容从“consul”服务(没有集群IP的服务)复制到“consul-ui”服务,在[“spec”] [“port”]部分中:
然后使用服务IP地址而不是kube-dns ConfigMap中的Pod IP地址 .