Files
Deploy-Laboratory/docs/06-01-k3s-networkpolicy-故障排查.md
jack be97836e0d chore: 清理调试脚本并收敛到 Ansible 流程
移除已废弃的调试/验证脚本与空目录,统一文档与脚本说明到 ansible-playbook 的部署方式,避免失效引用和误用路径。

Made-with: Cursor
2026-03-23 19:18:55 +08:00

98 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
kubectl get pod,svc,ing -A
kubectl get networkpolicy -A
kubectl -n kube-system get pods -l app=svclb-traefik -o wide
```
### 2.4 全链路检查(手工)
```bash
# 从入口节点IP验证 HTTP 入口
curl -I --max-time 3 http://192.168.2.61:80
curl -I --max-time 3 http://192.168.2.62:80
```
## 关键策略建议
- Traefik egress 建议同时放行:
- 目标命名空间后端端口
- Service CIDR`10.43.0.0/16`
- DNS`53/udp``53/tcp`
- 后端 ingress 策略要匹配 Traefik 来源(命名空间或 IP 段)
## 已验证修复Fedora/FCOS
### 4.1 手动修复
```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按导航继续。