我是靠谱客的博主 疯狂冬瓜,最近开发中收集的这篇文章主要介绍关于 Rancher 与防火墙 firewalld 的一些注意事项,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

问题描述


按照网上安装 Rancher 教程,一般都要求先关闭防火墙,于是在关闭防火墙状态下完成安装。

systemctl stop firewalld
systemctl disable firewalld

但是由于公司安全要求,需要开启防火墙,并将 rancher 相关的端口进行开放,于是在 rancher 正常运行状态下启用防火墙。

systemctl start firewalld
systemctl enable firewalld

根据官方操作文档 点击查看 加入相关端口。

  firewall-cmd --permanent --add-port 22/tcp
  firewall-cmd --permanent --add-port 80/tcp
  firewall-cmd --permanent --add-port 443/tcp
  firewall-cmd --permanent --add-port 2379/tcp
  firewall-cmd --permanent --add-port 2380/tcp
  firewall-cmd --permanent --add-port 6443/tcp
  firewall-cmd --permanent --add-port 6444/tcp
  firewall-cmd --permanent --add-port 8443/tcp
  firewall-cmd --permanent --add-port 8472/udp
  firewall-cmd --permanent --add-port 9345/tcp
  firewall-cmd --permanent --add-port 10249/tcp
  firewall-cmd --permanent --add-port 10250/tcp
  firewall-cmd --permanent --add-port 10256/tcp
  firewall-cmd --permanent --add-port 30935/tcp
  firewall-cmd --permanent --add-port 31477/tcp
  firewall-cmd --reload

reload 之后 rancher 节点之间部分通信就异常了,一般提示为
10.xx.xx.xx:443 timeout
10.xx.xx.xx:443 no route to host
即集群节点与 rancher 主节点之间无法通信。


原因分析


firewalld 的相关操作本质上还是对 iptables 的规则操作;
docker 启动容器时也会直接操作 iptables 写入规则;
firewalld --reload 会刷新整个规则表,将 docker 写入的规则刷掉;
因此导致节点间无法访问。


解决方法


问题分析清楚了也就好解决了。

  1. 停止 docker 服务,防止写入新的规则
  2. 清空 iptables 规则列表
    # 查看当前规则
    iptables -L -n
    # 清空全部规则
    iptables -F
    
  3. reload firewalld 服务,将 firewalld 配置的规则写入 iptables
    # 查看 firewalld 当前规则
    firewall-cmd  --list-all
    # 刷新规则,写入 iptables
    firewall-cmd  --reload
    
  4. 启动 docker 服务,让 docker 将相关规则写入 iptables
    systemctl start docker
    

至此,所有规则已按顺序完全写入 iptables 中,互不影响,一切恢复正常。


注意事项


如果还是有节点间 10.42.xx.xx 或者 10.43.xx.xx 无法访问,可以加入以下规则:

  # 这两行非常非常非常重要,没有的话后续会报错,Rancher 节点间无法通信
  firewall-cmd --permanent --zone=trusted --add-source=10.42.0.0/16 
  firewall-cmd --permanent --zone=trusted --add-source=10.43.0.0/16
  firewall-cmd --reload

最后

以上就是疯狂冬瓜为你收集整理的关于 Rancher 与防火墙 firewalld 的一些注意事项的全部内容,希望文章能够帮你解决关于 Rancher 与防火墙 firewalld 的一些注意事项所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部