Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes kube dns错误:来自意外源的答复_Kubernetes_Kube Dns - Fatal编程技术网

Kubernetes kube dns错误:来自意外源的答复

Kubernetes kube dns错误:来自意外源的答复,kubernetes,kube-dns,Kubernetes,Kube Dns,我在kube dns上有一个奇怪的错误 环境: 具有单个主节点和几个节点的集群部署在具有KOP的AWS上。 Kubernetes版本1.8.4 问题是,我的POD中的DNS名称解析(集群内部或外部名称)存在片状缺陷。排除故障后,我了解到只有在特定节点上调度pod时才会出现问题,该节点是kube dns pod的一个副本正在运行的节点 这些是我的kube dns播客: $ kubectl -n kube-system get po -l k8s-app=kube-dns -o wide NAME

我在kube dns上有一个奇怪的错误

环境: 具有单个主节点和几个节点的集群部署在具有KOP的AWS上。 Kubernetes版本1.8.4

问题是,我的POD中的DNS名称解析(集群内部或外部名称)存在片状缺陷。排除故障后,我了解到只有在特定节点上调度pod时才会出现问题,该节点是kube dns pod的一个副本正在运行的节点

这些是我的kube dns播客:

$ kubectl -n kube-system get po -l k8s-app=kube-dns -o wide
NAME                        READY     STATUS    RESTARTS   AGE       IP             NODE
kube-dns-7f56f9f8c7-2ztbn   3/3       Running   0          2d        100.96.8.239   node01
kube-dns-7f56f9f8c7-h5w29   3/3       Running   0          17d       100.96.7.114   node02
如果我运行一个测试吊舱,强制它在
node02
节点上运行,一切都会正常。我可以解决任何(有效)DNS名称没有任何问题

如果我在
node01
上运行相同的测试盒,名称解析是不可靠的:有时它会失败(大约50%的时间),并出现以下错误

$ dig google.com
;; reply from unexpected source: 100.96.8.239#53, expected 100.64.0.10#53
剩下的时间,它工作得完美无缺:

$ dig google.com

; <<>> DiG 9.10.4-P3 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24454
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             60      IN      A       209.85.202.100
google.com.             60      IN      A       209.85.202.101
google.com.             60      IN      A       209.85.202.102
google.com.             60      IN      A       209.85.202.113
google.com.             60      IN      A       209.85.202.138
google.com.             60      IN      A       209.85.202.139

;; Query time: 2 msec
;; SERVER: 100.64.0.10#53(100.64.0.10)
;; WHEN: Mon Jan 08 10:46:42 UTC 2018
;; MSG SIZE  rcvd: 135
显然,仅在
node01
上,当服务将请求转发到
kube dns
pod实例(该实例在
node01
本身上运行)时,会触发错误

我尝试在
node01
上重新启动kube代理,但问题仍然存在

我打赌重新启动/重新创建
node01
会使问题消失,但我需要确保此问题不会再次发生

有人知道发生了什么吗?

我发现了一个与我现在看到的非常相似的,贴在那里的似乎很有用

基本上,我需要使用以下命令加载内核模块:

modprobe br_netfilter

当然,对于下面的centos,YMMV解决方案对我有效

modprobe br_netfilter
echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables