GKE:当 api 服务器关闭时如何处理 etcd 压缩/etcd 已满时会发生什么

GKE: how is etcd compaction handled when api server is down / what happens when etcd is full

在我们当前的集群中,我们有一个紧急 etcd 压缩脚本,可以防止 etcd 锁定。我们正在考虑迁移到 GKE,并想知道它是否带有开箱即用的类似功能,或者当 etcd 变满时究竟会发生什么。

一般来说,GKE 是一种托管服务,特别是 Control Plane, as part of a fully managed product by Google's SREs Site Reliability Engineering

话虽如此,GKE 控制平面及其操作属于 Google 职责的一部分,您不会参与其中,这是为了腾出时间专注于您的应用程序,而 Google 的 SRE 监控您的集群及其计算、网络和存储资源。

回答你的问题如果 GKE 附带类似的东西(etcd 压缩脚本)开箱即用,或者当 etcd 变满时究竟会发生什么

不确定 GKE 中是否有您的解决方案(etcd 压缩脚本),但如果存在,它将由 Google 的 SRE 管理 你不会(取决于你选择的集群类型)注意到他们是否备份或维护 etcd o algun otro 控制平面组件。

根据我的经验,与 full etcd 相关的最常见问题与作业未被删除有关。正如我们所知,当作业完成时,不会再创建 Pods,但也不会删除 Pods。保留它们允许您仍然查看已完成 pods 的日志以检查错误、警告或其他诊断输出。 Job 对象在完成后也会保留,以便您可以查看其状态。您可以在注意到旧作业的状态后删除它们。当这样的事情发生时,etcd 数据库可能会被那么多的数据淹没,因此变得无响应(这完全取决于集群上的作业数量 运行)。

万一 etcd 停止工作或变满,Google 将负责修复它,正如我上面提到的,您会注意到控制平面的停机时间取决于您选择的 cluster type。 GKE 提供区域集群(单个区域中控制平面的单个副本运行)、多区域集群(单个区域中控制平面的单个副本运行)、区域集群(多个副本控制平面,运行 在给定区域内的多个区域中)。如果您选择区域 GKE 集群,您的 GKE 控制平面将具有 HA(每个控制平面资源的 3 个副本)。