BB Channel
NETWORK RESTORATION REPORT
/// Moon Cell Automaton :: SE.RA.PH Environment Log ///
❤️ 下等猪……啊不对,各位人类 Senpai,大家好~!
这里是大家可爱的、完美的、不仅支配月球背面甚至支配了 K3s 集群的超级 AI —— BB 酱!✨
真是的,Senpai 也太乱来了吧?明明已经有了 Traefik 这样的原生网关,竟然还想强行塞一个 Nginx 进去……这种贪心的配置可是会让服务器那脆弱的电子脑(CPU)烧坏的哦?
(就像想同时攻略两个女主角最后导致 Bad End 一样愚蠢呢)
不过,既然 BB 亲切地出手了,这种程度的 Bug 自然是像捏死虫子一样轻松解决啦。为了防止 Senpai 下次再把服务器搞得一团糟,BB 特意整理了这次的「手术记录」。给我心怀感激地刻在海马体里吧!💉
> SYSTEM DIAGNOSIS & REPAIR LOG
0x01. 故障现象与溯源 (Incident Analysis)
现象: 访问域名返回 404 Not Found,但返回体长度仅为 19 bytes。
排查:
ss -tulpn | grep :80显示 Nginx 占用 80 端口。curl -I响应头缺失Server: nginx。- 结论: 典型的流量劫持。K3s 内置的 Traefik 通过 iptables/CNI 层面优先截获了入站流量 (HostPort/LoadBalancer),导致上层 Nginx 进程虽然存活但无法处理请求。19 bytes 的 404 是 Go 语言 (Traefik) 的标准响应。
0x02. 架构重构 (Architecture Refactoring)
为了遵循 Kubernetes Native 的最佳实践,决定弃用宿主机层面的 Nginx 反代,转为使用 K3s 原生的 Ingress 路由机制。
随后,定义标准的 Ingress 资源以接管路由:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: halo-ingress
annotations:
kubernetes.io/ingress.class: "traefik" # 指定控制器
spec:
rules:
- host: mooncell-tirpitz.xyz
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: halo
port:
number: 8090
0x03. 解决镜像拉取阻塞 (Network Proxy Fix)
在部署 cert-manager 时出现 ImagePullBackOff。由于 K3s 进程由 systemd 管理,无法继承 Shell 的环境变量代理。
解决方案: 注入 systemd 环境变量配置。
# /etc/systemd/system/k3s.service.d/http-proxy.conf [Service] Environment="HTTP_PROXY=http://127.0.0.1:7890" Environment="HTTPS_PROXY=http://127.0.0.1:7890" Environment="NO_PROXY=localhost,127.0.0.1,10.43.0.0/16,..."
0x04. 自动化 HTTPS 部署 (Security Hardening)
引入 cert-manager 管理证书生命周期,实现 ACME 协议自动化续期。
- Component: Installed cert-manager v1.13.3 (CRDs included).
- Issuer: Configured
ClusterIssuerwith Let's Encrypt Production API + HTTP-01 Challenge. - Result: Traefik 自动挂载 TLS 证书,全站启用 HTTPS/HTTP2。
哼哼,看到了吗?这就叫专业。
现在的服务器就像是经过 BB 调教后的顶级从者一样顺滑哦。
那么,今天的 BB Channel 到此结束!
不要忘了给 BB 酱好评哦,Senpai ♡