阅读量:0
CentOS K8s安装后防火墙设置指南
1. 关闭SELinux(K8s要求)
SELinux会限制容器进程的权限,导致K8s组件无法正常通信。需永久关闭SELinux:
setenforce 0 # 临时关闭
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config # 永久关闭
2. 处理Firewalld与iptables冲突
K8s依赖iptables进行网络规则管理,若同时启用firewalld可能导致规则冲突。推荐方案:
- 方案一:关闭firewalld(简单场景适用)
systemctl stop firewalld && systemctl disable firewalld # 停止并禁用 - 方案二:保留firewalld并配置K8s所需端口(生产环境推荐)
若需保留firewalld,需开放K8s核心组件的通信端口(Master节点需全部开放,Node节点开放对应端口):firewall-cmd --permanent --add-port=6443/tcp # K8s API Server端口 firewall-cmd --permanent --add-port=2379-2380/tcp # etcd集群通信端口 firewall-cmd --permanent --add-port=10250/tcp # kubelet端口 firewall-cmd --permanent --add-port=10251/tcp # kube-scheduler端口 firewall-cmd --permanent --add-port=10252/tcp # kube-controller-manager端口 firewall-cmd --permanent --add-port=10255/tcp # kubelet只读端口 firewall-cmd --reload # 重新加载规则
3. 配置iptables为空规则(可选但推荐)
若使用iptables作为防火墙工具,需清空现有规则以避免干扰K8s网络:
yum install -y iptables-services # 安装iptables服务
systemctl start iptables && systemctl enable iptables # 启动并开机自启
iptables -F # 清空所有规则
service iptables save # 保存规则
4. 调整内核参数支持K8s网络
K8s需要开启IP转发、桥接流量调用iptables等功能,需修改内核参数:
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables=1 # 桥接流量调用iptables
net.bridge.bridge-nf-call-ip6tables=1 # IPv6桥接流量调用ip6tables
net.ipv4.ip_forward=1 # 开启IP转发
EOF
sysctl --system # 生效配置
5. 验证防火墙设置
- 检查firewalld状态:
systemctl status firewalld(应为inactive) - 检查iptables规则:
iptables -L -n(应无冲突规则) - 测试K8s组件通信:通过
kubectl get nodes验证Master与Node节点是否正常通信。
注意事项
- 生产环境建议:若需保留firewalld,需确保仅开放K8s必需端口,并避免频繁修改规则影响集群稳定性。
- 网络插件兼容性:部分网络插件(如Calico)可能需要额外防火墙规则,需参考插件文档补充配置。
以上就是关于“centos k8s安装后如何设置防火墙”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm