基本框架

This commit is contained in:
2026-03-21 04:36:06 +08:00
commit de1be1dbe5
125 changed files with 10302 additions and 0 deletions

View File

@@ -0,0 +1,101 @@
# 06-01-k3s NetworkPolicy 使用与故障排查
> 本文只负责 **网络策略与连通性排障**。
> 若你要做 Traefik 部署、ServiceLB 池配置,请看 `01-02-k3s-工作节点.md`。
## 前置条件
- 已完成 `01-02-k3s-工作节点.md`
- 已有至少一个后端服务(如 nginx/nodejs
- 可执行 `kubectl` 与排障脚本
## 三条先验结论
1. 主链路看 **Traefik -> Service**,不是 Pod IP 直连。
2. Pod 被 NetworkPolicy 选中后,该方向默认拒绝,需显式放行。
3. 跨节点不通通常是“策略 + 主机防火墙 + 回包路径”叠加问题。
## 标准排查步骤
### 2.1 资源状态
```bash
kubectl get pod,svc,ing -A
```
### 2.2 入口可达性
```bash
curl -I --max-time 3 http://192.168.2.61:80
curl -I --max-time 3 http://192.168.2.62:80
```
### 2.3 快速检查脚本
```bash
./scripts/diag/netpol/check-net.sh
```
### 2.4 全链路诊断
```bash
./scripts/diag/entrypath/entrypath.sh run ...
```
## 关键策略建议
- Traefik egress 建议同时放行:
- 目标命名空间后端端口
- Service CIDR`10.43.0.0/16`
- DNS`53/udp``53/tcp`
- 后端 ingress 策略要匹配 Traefik 来源(命名空间或 IP 段)
## 已验证修复Fedora/FCOS
### 4.1 脚本修复(推荐)
```bash
./scripts/diag/firewalld/setup-k3s-firewalld-interfaces.sh
```
该脚本会把 `flannel.1``cni0` 纳入 `trusted` 并持久化。
### 4.2 手动修复(不使用脚本)
```bash
# 1) 临时生效(当前运行时)
sudo firewall-cmd --zone=trusted --add-interface=flannel.1
sudo firewall-cmd --zone=trusted --add-interface=cni0
# 2) 持久化
sudo firewall-cmd --permanent --zone=trusted --add-interface=flannel.1
sudo firewall-cmd --permanent --zone=trusted --add-interface=cni0
# 3) 重载配置
sudo firewall-cmd --reload
# 4) 验证
sudo firewall-cmd --zone=trusted --list-interfaces
sudo firewall-cmd --get-active-zones
```
预期:`trusted` 区域中能看到 `flannel.1 cni0`,跨节点回包不再被 `admin-prohibited` 拦截。
## 本文不处理的内容
以下属于部署配置域,请转到 `01-02-k3s-工作节点.md`
- Traefik 节点标签与 `lbpool` 设计
- HelmChartConfig 配置写入方式
- Dashboard/ACME 等功能配置
## 关联文档
- `01-02-k3s-工作节点.md`
- `04-03-k3s-nginx-demo.md`
- `04-01-k3s-nodejs-高级部署.md`
- `scripts/README.md`
## 下一步
- 返回 00-00-构建总览.md按导航继续。