【问题标题】:Startup probes not used in GKE 1.18GKE 1.18 中未使用启动探针
【发布时间】:2023-03-17 04:54:01
【问题描述】:

我最近将我们项目中使用的 GKE 集群更新到版本 1.18.16-gke.1200。我们一直期待的功能之一是启动探测。根据overview of feature gates on Kubernetes' site 的说法,启动探针在 Kubernetes 1.18 版本中进入了 Beta 阶段,应该默认启用,除非在 kubelet 配置中明确禁用。在使用 minikube 部署的 1.18 集群上,Deployment 的启动探针已正确发现:

在 GKE 1.18 集群上没有提及探针:

两个 Deployment 的 API 版本为 apps/v1 并具有相同的探针配置,但 GKE 忽略了启动探针。

如果 StartupProbe 未被 Google 针对该版本禁用,我已经对 GKE 集群执行了 kubectl cluster-info dump 以确定 kubelet 的 --feature-gates 标志的参数。但是,转储返回的唯一特征门信息是 kube-proxy 容器的参数,如下所示:--feature-gates=DynamicKubeletConfig=false,RotateKubeletServerCertificate=true。转储中根本没有提到启动探针,这意味着应该启用探针。

GKE release notes 似乎没有在任何地方提到启动探针,即使在探针进入 GA 的entry about introducing version 1.20 中,尽管提到了一些其他功能(RuntimeClass)的毕业。会不会是 Google 出于某种原因阻止在 GKE 中引入启动探测?有没有其他方法可以为 GKE 1.18 版启用启动探测?我没有使用 alpha 集群,而且探针不再是 alpha 功能。

【问题讨论】:

标签: kubernetes google-kubernetes-engine kubelet startup-probe


【解决方案1】:

我已经意识到我应该在我的问题中提到的非常明显的事情:我正在使用 Helm 来部署我的应用程序。由于 Helm 只是生成 Kubernetes YAML 并将它们应用到集群,因此在应用于 GKE 1.16 集群时会忽略启动探测配置。

解决方案非常简单:重新部署所有 Helm Charts,以便集群正确处理生成的模板,包括启动探测信息。

希望这对某人也有帮助。

【讨论】:

    猜你喜欢
    • 2019-09-15
    • 2020-09-07
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 2020-11-22
    • 2023-02-16
    相关资源
    最近更新 更多