centos k8s安装后如何设置防火墙
导读:CentOS K8s安装后防火墙设置指南 1. 关闭SELinux(K8s要求) SELinux会限制容器进程的权限,导致K8s组件无法正常通信。需永久关闭SELinux: setenforce 0 # 临时关闭 sed -i 's/^S...
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)可能需要额外防火墙规则,需参考插件文档补充配置。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos k8s安装后如何设置防火墙
本文地址: https://pptw.com/jishu/727509.html