在维护期间强制 Ingress 返回 503

pjo*_*hin 6 kubernetes google-kubernetes-engine kubernetes-ingress

我们有一些 API 服务运行在 Google Kubernetes Engine 上,并且不时需要进行一些维护,因此我们希望 API 服务返回 503 以及一些有关停机时间的可配置消息。

使 API 服务从服务链接到的 Kubernetes 部署返回 503 不是一种可靠的方法,因为 API pod 可能需要关闭/重新启动。

我的一个想法是有一个特定的部署/pod,我们将配置要使用的服务,并且该服务仅返回 503 以及有关服务维护的一些信息。但是,如果我们要进行集群升级,这种方法将不适用,因为可能有一段时间部署/pod 也不可用。

那么有什么方法可以做到这一点而不必依赖部署/pod?意味着超出特定 Kubernetes 集群范围的配置?

Jon*_*ber 0

如果您在 Kubernetes 级别设置此配置,则它在集群升级期间将永远不会保留。您必须依赖外部解决方案,例如在 Cloud Fuctions 上托管一个简单的函数。例如,您还可以使用 AWS Cloud Formation 来实现这一目标。

您可以在 DNS 上执行运行状况应用程序和维护消息之间的切换,但我不会依赖它,因为根据您的 TTL 配置,它可能需要一些时间。我更愿意在您的 LoadBalancer 解决方案上执行此操作。