发现 dashboard 部署到了 10.12.32.148 这个节点上。
接着,查看 dashboard 的集群内部 IP,
kubectl get services –all-namespaces
结果如下:
发现他的集群 IP 为 10.254.105.242,接着,由于 flannel 网络已经打通,我尝试着在各个 node 上 curl 这个 IP,可是发现,除了 10.12.32.148 这个机器自己 curl 返回了结果外,其他的所有机器都没有相应。此时,我怀疑是 flannel 网络的问题,可如果是 flannel 网络的问题,那么之前 ping 网关的时候就应该不通。
之后,想到了 opsnull 文章中提到的
很有理由怀疑是 iptables 的问题,使用 iptables -nL 命令查看,果然,Forward 的策略还是 drop,可是我们明明执行了
iptables -P FORWARD ACCEPT
原来,docker 是在这句话执行之后启动的,需要每次在 docker 之后再执行这句话
那我们也将这句话写入了/etc/rc.local 里面了,怎么没有生效?这是因为 centos7 等比较新的系统已经摒弃通过/etc/rc.local 方式来执行开机脚本的方式
好了,问题找到了,只需要更改 docker 的启动服务脚本即可
vim /etc/systemd/system/docker.service
在
[Service]
这项下面添加
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
然后重启 docker,成功!