首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kube-dns错误:来自意外来源的回复

kube-dns错误:来自意外来源的回复
EN

Stack Overflow用户
提问于 2018-01-08 18:55:12
回答 2查看 2.3K关注 0票数 4

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

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

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

以下是我的kube-dns pod:

代码语言:javascript
复制
$ 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

如果我运行一个测试POD,强制它在node02上运行,那么一切似乎都很好。我可以解决任何(有效) DNS名称,没有任何问题。

如果我在node01名称解析上运行相同的测试POD,那么它是不可靠的:有时它会失败(大约50%的次数),并显示以下错误

代码语言:javascript
复制
$ dig google.com
;; reply from unexpected source: 100.96.8.239#53, expected 100.64.0.10#53

其余时间,它都能完美地工作:

代码语言:javascript
复制
$ 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

/etc/resolv.conf正确指向kube-dns服务的IP地址:

代码语言:javascript
复制
$ head -n 1 /etc/resolv.conf 
nameserver 100.64.0.10

$ kubectl -n kube-system get svc kube-dns 
NAME       TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)         AGE
kube-dns   ClusterIP   100.64.0.10   <none>        53/UDP,53/TCP   33d

显然,仅在node01上,当服务将请求转发到在node01本身上运行的kube-dns pod实例时,就会触发错误。

我尝试在node01上重启kube-proxy,但问题仍然存在。

我敢打赌,重新启动/重新创建node01会让这个问题消失,但我需要确保这个问题不会再次发生。

有人知道这是怎么回事吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-08 21:25:28

我发现了一个和我正在使用的issue on github非常相似的solution,并且上面发布的and似乎可以正常工作。

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

代码语言:javascript
复制
modprobe br_netfilter

当然,YMMV

票数 6
EN

Stack Overflow用户

发布于 2020-11-26 14:45:23

对于centos,下面的解决方案对我很有效。

https://github.com/kubernetes/kubernetes/issues/21613#issuecomment-363859075

代码语言:javascript
复制
echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48148838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档