• -------------------------------------------------------------
  • ====================================

解决Centos7下Kubernetes(k8s)部署好之后无法访问dashboard

docker dewbay 4年前 (2020-05-12) 3598次浏览 已收录 0个评论 扫描二维码

Kubernetes 的部署过程比较复杂,相信很多人都是跟着 opsnull 大神的文章(https://github.com/opsnull/follow-me-install-kubernetes-cluster)一步一步部署的。

部署到 dashboard 之前检查所有的步骤都没有出现错误,可是安装了 dashboard 插件之后无论是通过 NodeIP:NodePort 的方式 还是通过 proxy 或是 kube-api 的方式 都一直无法访问,浏览器也没有提示任何错误,只是一直在加载,页面也是空白一片。接下来开始排查问题

首先,查看 dashboard 被k8s分配到了哪一台机器上

kubectl get pods –all-namespaces -o wide

结果如下:

解决Centos7下Kubernetes(k8s)部署好之后无法访问dashboard

发现 dashboard 部署到了 10.12.32.148 这个节点上。

接着,查看 dashboard 的集群内部 IP,

kubectl get services –all-namespaces

结果如下:

解决Centos7下Kubernetes(k8s)部署好之后无法访问dashboard

发现他的集群 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,成功!

解决Centos7下Kubernetes(k8s)部署好之后无法访问dashboard


露水湾 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:解决Centos7下Kubernetes(k8s)部署好之后无法访问dashboard
喜欢 (7)
[]
分享 (0)
关于作者:
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址