2024年PTS - 第2天和第3天……糟糕的日子

💡 原文英文,约500词,阅读约需2分钟。
📝

内容提要

在升级集群过程中遇到问题,关闭节点后网站崩溃,Fastly无法显示缓存外的内容,无法连接到Argo或kubectl命令行工具。尝试使用rke2代替k3s,但遇到更多问题。最终决定使用k3s,并依赖Hetzner的负载均衡器和健康检查。但由于需要Hetzner运行DNS,而已经依赖CloudFlare,导致困扰。

🔎

延伸解读

单节点关闭为何导致全站不可用

文章提到,关闭一个节点进行升级后,Fastly 对所有未缓存内容显示“无健康后端”,导致网站崩溃。这暴露了架构中的单点故障:尽管集群有 3 个节点,但流量可能未正确分发,或健康检查机制未能及时剔除故障节点。读者应检查自己的负载均衡配置和健康检查策略,确保单个节点维护不会影响整体服务。

rke2 与 Hetzner 私有 IP 的兼容性问题

作者尝试用 rke2 替代 k3s,但无法正常运行。rke2 倾向于在特定接口上使用私有 IP,这与 Hetzner 的私有 IP 供应方式冲突。即使参考其他项目或寻求帮助,问题仍未解决。这提醒读者,在选择 Kubernetes 发行版时,需考虑与云厂商网络模型的兼容性,避免因底层网络差异导致部署失败。

DNS 与证书管理的依赖困境

最终决定回归 k3s,并依赖 Hetzner 的负载均衡器和健康检查实现高可用。但使用 Hetzner 负载均衡器配置证书需要将 DNS 也托管在 Hetzner,而作者已依赖 CloudFlare 处理其他事务。这种依赖冲突可能导致管理复杂化。读者在架构设计时,应提前评估 DNS、证书和负载均衡服务的集成关系,避免被单一供应商锁定。

❓

Q&A

在升级集群过程中遇到了什么问题?

在关闭节点后,网站崩溃,Fastly无法显示缓存外的内容。

为什么无法连接到Argo和kubectl命令行工具?

在关闭节点后,无法连接到Argo和kubectl,恢复节点后问题解决。

尝试使用rke2的结果如何?

尝试使用rke2替代k3s,但无法成功运行rke2,遇到更多问题。

为何最终决定继续使用k3s?

由于rke2与Hetzner的私有IP配置冲突,最终决定继续使用k3s。

使用Hetzner的负载均衡器有什么挑战?

需要Hetzner运行DNS,而已依赖CloudFlare,造成困扰。

在集群升级中有哪些备选工具被考虑?

考虑了使用rke2作为替代工具,但最终未能成功。

🏷️

标签

➡️

继续阅读