-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
双网卡下,coredns,dashbord,metrics-server不能访问kube-apiserver #479
Comments
今天我正好碰到这个问题。 这个主要是你网关落在外网卡的问题。 kubectl describe svc kubernetes ,是不是endpoint里apiserver都是外网地址,而实际apiserver是listen在内网地址的。导致集群内部pod(包括coredns)访问不了10.68.0.1:443。 原因是apisever启动时会通过识别gateway来识别地址。 解决办法:把admin节点的网关设成内网网关,重启kube-apiserver即可。 |
谢谢 @weilinqwe
然后我更改了default gw 为内网网关:
再重启apiserver, 然后检查dns、dashboard都可以正常访问kube-apiserver了。
但是,这样会导致master的主机不能访问外网(缺省路由改为内网网关后,内网网关没接上外部互联网),以后我想安装个软件或更新系统,是个困难的事情。 或者 有没有其他办法可以另 apisever启动时 不通过识别default gateway来设置 svc kubernetes 的 endpoint ? |
不太清楚内部机制,除非看源码,不知道哪个兄弟清楚这里说一下。 我是把外网网卡down以后,看apiserver启动日志里报错说找不到默认网关之类才知道的。 master访问外网或者安装的话,建议可以找台服务器(比如deploy哪个节点)做proxy,yum.conf里设一下proxy就可以。 |
在1.13.1 的集群上 遇到过 kubernetes.default 的 endpoint 是 虚机的公网IP 。 后来在每个kube-apiserver 上加了启动参数 --advertise-address 指定内网IP,就好了,可以试试 :) @4220182 |
完美解决 @AEGQ ,感谢!
重启kube-apiserver后,再检查endpoint,已经正确了
|
@AEGQ Prefect solve my problem.How about send a PR in this repo. |
已提交fix 148dce5 |
版本:kubeasz-1.0.0rc1
主机网络配置:
master:
内网: 10.2.2.120
外网: 192.168.5.120
gateway: 192.168.5.1
node1 :
内网: 10.2.2.121
外网: 192.168.5.121
gateway: 192.168.5.1
node2 :
内网: 10.2.2.122
外网: 192.168.5.122
gateway: 192.168.5.1
采用 example/hosts.s-master.example 方式安装(1个master,2个node)
查看coredns,dashbord,metrics-server 的日志:
检查iptables:
这条规则 --to-destination 192.168.5.120:6443 为啥会是外网的ip?我猜是生成iptables规则错了,导致访问不到kube-apiserver 。
而kube-apiserver 绑定的ip和端口是 :10.2.2.120:6443
请问如何解决这个问题?
The text was updated successfully, but these errors were encountered: