如何防止kube-dns将请求转发到Google的名称服务器(8.8.8.8:53和8.8.4.4:53)? 我只想为内部使用启动窗格,这意味着窗格中的容器根本不应该连接到外部。 当一个Zookeeper客户端使用主机名连接到一个Zookeeper服务器(例如zkCli.sh -server zk-1.zk-headless)时,客户端需要10秒钟将其状态从[正在连接]更改为[已连接]。 我怀疑kube-dns的原因是,使用pod的IP地址,客户端立即连接起来。 当我看看日志KUBE-DNS的,我发现下面的两行:如何防止kube-dns将请求转发到8.8.8.8:53
07:25:35:170773 1 logs.go:41] skydns: failure to forward request "read udp 10.244.0.13:43455->8.8.8.8:53: i/o timeout"
07:25:39:172847 1 logs.go:41] skydns: failure to forward request "read udp 10.244.0.13:42388->8.8.8.8:53: i/o timeout"
正是在7时25分30秒,当客户端开始连接到服务器。
我在内部服务器通过http_proxy/https_proxy与Internet通信的专用群集上运行Kubernetes,这意味着我无法连接到8.8.8.8的名称解析AFAIK。
我发现了以下从https://github.com/skynetservices/skydns:
- 命名的环境变量的缺省值SKYDNS_NAMESERVERS是“8.8.8.8:53,8.8.4.4:53”
- 我能做到我的目的通过设置no_rec到真正
我一直在使用kubeadm启动Kubernetes,我无法找到修改环境变量并设置skydns属性值的方法。
如何防止kube-dns将请求转发到由kubeadm部署的内部Kubernetes集群的外部?
你可以发布'kubectl get deploy --namespace = kube-system kube-dns -o yaml'的输出吗?它可以用'-nameserver'标志或'SKYDNS_NAMESERVERS'环境变量进行配置。 –
我无法从kube获取部署中找到-nameserver标志和SKYDNS_NAMESERVERS env。 – eastcirclek
好像被用来创建一个KUBE-DNS容器下列: - ARGS: - --domain = cluster.local - --dns端口= 10053 - --config-MAP = KUBE-DNS - --v = 2 env: - 名称:PROMETHEUS_PORT value:“10055” image:gcr.io/google_containers/kubedns-amd64:1。9 imagePullPolicy:IfNotPresent – eastcirclek