Files
Deploy-Laboratory/docs/02-04-nginx-worker-ingressroute.md
2026-03-29 09:08:01 +08:00

2.1 KiB
Raw Blame History

02-04 Nginx + 工作节点 + IngressRouteM4

场景nginx 指定落在 ylc64nodeSelector: kubernetes.io/hostname: ylc64),跨节点 IngressRoute 暴露 /demo-m4。整合于 02-05-nginx-验证矩阵-一键部署.md

TL;DR

  • 手动练习:以本课清单 ansible/files/02-04/04-worker-ingressroute.yaml 复制到目标机,按本文改字段后执行下方 kubectl/bash学习路径可不使用 verify
  • 自动化验收./ansible/bin/verify.sh run 02-04
  • 关键前置:按本文「前置条件」准备环境变量/Secret/入口 IP
  • 成功判据:达到本文「预期」且 playbook 断言通过
  • 排障:见本文「排障」

前置条件

  • 已完成 01-02-k3s-工作节点.md
  • Traefik CRD 可用
  • 工作节点网络连通
  • 按实际工作节点名(如 ylc64修改 nodeSelector 中的 hostname

操作步骤

  1. 部署 nginx DeploymentnodeSelector 指定工作节点 hostname+ Service
  2. 创建 Middleware + IngressRoutePathPrefix(/demo-m4)
  3. 等待资源就绪

示例 YAML 见 ansible/files/02-04/04-worker-ingressroute.yaml

部署命令

kubectl apply -f ansible/files/02-04/04-worker-ingressroute.yaml

验证命令

kubectl get pod,svc -n default -o wide
kubectl get ingressroute -n default
curl -i --max-time 3 http://<入口节点IP>/demo-m4/

预期

  • 返回 200页面包含 Welcome to nginx!
  • Pod 落在指定工作节点

删除

kubectl delete -f ansible/files/02-04/04-worker-ingressroute.yaml

失败排查

  • 优先看 Traefik 日志
  • 检查节点间网络转发、firewalld 基线
  • 参考 06-01-k3s-networkpolicy-故障排查.md

下一步

  • 返回 02-05-nginx-验证矩阵-一键部署.md00-00-构建总览.md

排障

  • 先看 playbook 输出:失败时先定位是 deploy/wait/http_check 哪一步。
  • 集群侧总览kubectl get nodes -o widekubectl -n kube-system get pods -o wide
  • 事件与日志kubectl -n <ns> describe ...kubectl -n <ns> logs ... --tail=200