当前位置: 首页 > news >正文

k8s 基础入门篇之开启 firewalld

前面在部署k8s时,都是直接关闭的防火墙。由于生产环境需要开启防火墙,只能放行一些特定的端口, 简单记录一下过程。

1. firewall 与 iptables 的关系

1.1 防火墙(Firewall)

定义:
防火墙是网络安全系统,用于监控和控制进出网络的流量,基于预定义的规则允许或阻止数据包。它是广义上的概念,不依赖具体工具。

功能:流量过滤(允许/拒绝), 网络地址转换(NAT),端口转发,防御攻击(如 DDoS)

1.2. iptables

定义:
iptablesLinux 内核中实现防火墙功能的具体工具,通过配置规则控制网络流量。它是 Linux 系统上防火墙的底层实现之一。

核心机制:

  • 表(Tables):按功能分类规则集,如 filter(过滤)、nat(地址转换)、mangle(修改数据包头)等。
  • 链(Chains):规则生效的节点,如 INPUT(入站流量)、OUTPUT(出站流量)、FORWARD(转发流量)。
  • 规则(Rules):定义匹配条件和动作(如 ACCEPT、DROP、REJECT)。

1.3 两者的关系

实现与工具:
防火墙是抽象的安全概念,iptables 是实现这一概念的具体工具。
iptables 通过操作 Linux 内核的 netfilter 框架(内核模块)来执行防火墙功能。

  • netfilter 是内核中的核心引擎,负责执行流量处理。
  • iptables 是用户空间的命令行工具,用于配置 netfilter 规则。
  • nftables:新一代 Linux 防火墙工具,取代 iptables,提供更简洁的语法和更高性能。

2. 开启 firewalld 遇到的问题

没有在FORWARD中放行端口。

利用iptables 或 内核版本更高的系统中使用ntfINPUT 链中添加 需要放行的端口,
只放开了 INPUT 的端口,没有放开 FORWARD,因为pod id 是走的ipv4转发, 导致pod ip 与 主机节点ip 不通,跨节点时,pod ipservicecluster ip 也不通。

下面是一个基本的放行脚本:FORWARD 放行所有端口

#!/bin/bash# 定义允许访问的节点IP及VIP(空格分隔)
service_ip_list=("172.10.9.2" ""172.10.9.3" ""172.10.9.4" )pod_cidr=10.42.0.0/16
service_cluster_cidr=10.43.0.0/16
# 对外端口
external_port_list="22, 80, 443, 30000-32767"# 节点之间互通端口
node_tcp_port_list="179, 2379, 2380, 6443, 10250, 10260"input_chain='filter_IN_public_allow'
forward_chain='filter_FWD_public_allow'# 添加新规则
function add_rules() {echo "[*] 添加新规则..."nft add rule inet firewalld $input_chain tcp dport { $external_port_list }  acceptfor ip in "${service_ip_list[@]}"; doout=`ip addr | grep  $ip`if [ -z "$out" ]; thennft add rule inet firewalld $input_chain ip saddr $ip tcp dport { $node_tcp_port_list } acceptnft add rule inet firewalld $forward_chain ip saddr $ip acceptfidonenft add rule inet firewalld $input_chain ip saddr $pod_cidr acceptnft add rule inet firewalld $input_chain ip saddr $service_cluster_cidr acceptnft add rule inet firewalld $forward_chain ip saddr $pod_cidr acceptnft add rule inet firewalld $forward_chain ip saddr $service_cluster_cidr acceptecho "[+] 规则添加完"
}

相关文章:

  • 低代码行业研究报告
  • ClickHouse简介
  • AI日报 - 2025年04月19日
  • 网络基础(协议,地址,OSI模型、Socket编程......)
  • Linux网络编程 TCP---并发服务器:多进程架构与端口复用技术实战指南
  • GO语言入门:常用数学函数2
  • TCVectorDB 向量数据库简介
  • K8s-Pod详解
  • 操作系统是如何运行的?
  • 2014-2021年 区域经济高质量发展-高质量需求指标数据
  • 【Hot100】 240. 搜索二维矩阵 II
  • 微信小程序中使用h5页面预览图片、视频、pdf文件
  • 软考复习——知识点软件开发
  • 深入理解Java包装类:自动装箱拆箱与缓存池机制
  • Linux操作系统--进程的创建和终止
  • 缓存 --- Redis的三种高可用模式
  • 重构之去除多余的if-else
  • Kubernetes相关的名词解释Dashboard界面(6)
  • 年化26.9%的稳健策略|polars重构因子计算引擎(python策略下载)
  • 03【变量观】`let`, `mut` 与 Shadowing:理解 Rust 的变量绑定哲学
  • 上海黄金交易所:贵金属价格波动剧烈,提示投资者做好风险防范
  • 十大券商看后市|A股下行波动风险有限,震荡中有望逐步抬升
  • 长三角主流媒体将走进“来电”宜昌,探寻高质量发展密码
  • 考艾的森林与雾气中,艺术在生长
  • 老人在健身中心晕倒获AED急救,上海检察机关为何被感谢?
  • 中央和国家机关工委建立健全整治形式主义为基层减负长效机制