避免Kubernetes安装后因防火墙未关闭导致节点通信受阻

胖明姑娘_4812

胖明姑娘_4812

2026-08-30

581人浏览

原创

必须关闭节点防火墙,否则kubelet、kube-proxy与API Server通信将断连;需停用firewalld/ufw并清空iptables规则,验证firewall-cmd --state返回not running且iptables无残留链。

避免kubernetes安装后因防火墙未关闭导致节点通信受阻

必须关掉节点上的防火墙,否则 kubelet、kube-proxy 和 API Server 之间的通信大概率会断连。这不是“建议”,而是多数发行版(CentOS/RHEL、Ubuntu with ufw、firewalld 启用时)下 Kubernetes 组件无法正常工作的直接原因。Kubernetes 自身不依赖主机防火墙做安全隔离,反而会被它拦死关键端口。

哪些端口会被防火墙拦住?

防火墙不会只拦一个端口,而是系统性阻断多个组件间通信链路:

  • 6443:API Server 监听端口,kubelet、kubeadm join、kubectl 全部依赖它;不放行会导致节点无法注册、命令超时或 connection refused
  • 10250:kubelet 的 HTTPS 端口,kubectl logs、exec、port-forward 全部走这里;被拦后表现为“部分 Pod 可操作,部分不可”
  • 30000–32767:NodePort 默认范围,Service 暴露到宿主机的端口;没开会导致外部访问 NodePort Service 失败
  • 10256(kube-proxy 健康检查)、2379–2380(etcd 客户端/peer 端口)等也常被顺带拦截

别信“我只开了几个端口就够了”

手动开放端口看似精细,实则高风险且不可持续:

Kubernetes Network Policy Generator
Kubernetes Network Policy Generator

使用加权评分卡在12项标准上评估和比较隐私解决方案供应商。适用于选择隐私管理软件、比较数据保护方案等场景。

下载
  • 不同 Kubernetes 版本、CNI 插件(如 Calico、Cilium)、云厂商托管组件(如 Konnectivity)会动态使用新端口,硬编码规则很快失效
  • iptables 规则和 firewalld/ufw 冲突很常见——比如 kube-proxy 插入的 iptables 链被 firewalld 的 zone 规则覆盖,导致流量在进入 nat 表前就被 DROP
  • SELinux + firewalld 双启用时,kube-proxy 绑定端口可能被 AVC 拒绝,日志里只显示 Permission denied,不查 ausearch -m avc 根本看不出是 SELinux 干的

关防火墙的实操判断标准

不是“执行 systemctl stop firewalld”就完事,得验证是否真正退出网络过滤:

  • 对 firewalld:sudo firewall-cmd --state 必须返回 not running,而非 running;同时确认 sudo iptables -L -n | head -5 输出中没有 firewalld 相关链(如 FWDI_public)
  • 对 ufw:sudo ufw status 必须显示 Inactive;若显示 Active,仅 sudo ufw disable 不够,还要 sudo ufw reset 清除残留规则
  • 对 iptables(传统模式):sudo iptables -P INPUT ACCEPT 和 sudo iptables -P FORWARD ACCEPT 是最低要求;但更稳妥的是清空所有规则:sudo iptables -F && sudo iptables -t nat -F

最易被忽略的一点:云环境节点(如 Azure VM、AWS EC2)即使本地防火墙关了,NSG 或安全组仍可能拦着 6443 和 10250。这时候 kubectl get nodes 显示 NotReady,但 systemctl status kubelet 看起来一切正常——问题不在节点上,而在云平台网络策略里。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

2025.12.22

116

5

Go云原生应用与Kubernetes服务部署实战
Go云原生应用与Kubernetes服务部署实战

本专题围绕 Go 语言在云原生环境中的应用展开,讲解容器化部署、Kubernetes 编排、服务发现、健康检查与弹性扩缩容机制。通过真实云端案例,帮助开发者构建可扩展的云原生微服务架构。

2026.06.29

208

19

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kubernetes官方教程手册
Kubernetes官方教程手册

共0课时 | 0人学习

Kubernetes官方中文文档
Kubernetes官方中文文档

共0课时 | 0人学习