问题标签 [startup-probe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1301 浏览

kubernetes - 如何在 GKE 1.16 上启用启动探测?

我创建了一个带有活动性和就绪性探测以及初始延迟的部署,效果很好。如果我想用启动探测替换初始延迟,则startupProbe密钥及其嵌套元素在创建时永远不会包含在部署描述符中,kubectl apply并在保存后从 GKE 部署编辑器中的部署 yaml 中删除。

一个例子:

krichter/microk8s-startup-probe-ignored:latest存在

我正在从与 microk8s 相同的问题中重用此示例,我可以通过更改kubeletkubeapi-server配置文件来解决它(如果您有兴趣,请参阅https://github.com/ubuntu/microk8s/issues/770 )。我认为这对于 GKE 集群是不可能的,因为它们不会公开这些文件,这可能是有充分理由的。

我假设该功能需要启用,因为它位于功能门之后。如何在版本 >= 1.16 的 Google Kubernetes Engine (GKE) 集群上启用它?目前我正在使用常规频道 1.16.8-gke.15 的默认值。

0 投票
2 回答
734 浏览

java - 端点不可访问时的 Kubernetes 启动探测

我有以下部署配置。test-worker-health 和 health 端点都无法访问,因为应用程序由于错误而失败。启动探针在失败后不断重启容器,因为 restartPolicy: Always。pod 进入 CrashLoopBackoff 状态。有没有办法让这种启动探测失败?

0 投票
1 回答
203 浏览

kubernetes - GKE 1.18 中未使用启动探针

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

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

1.18 GKE 上没有启动探测

两个部署都有 API 版本apps/v1并且具有相同的探针配置,但是 GKE 忽略了启动探针之一。

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

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

0 投票
0 回答
66 浏览

amazon-eks - 从 1.17 升级时,StartupProbe 在 EKS 1.18 上不起作用

我们注意到 StartupProbe 可以在新的 EKS 1.18 集群上运行,但如果集群是从 1.17 升级的,它就不起作用。这是 EKS 的错误吗?

0 投票
1 回答
26 浏览

testing - Kubernetes 探针运行验收测试

我有一种情况,我的验收测试在管道期间与 rabbitMQ 实例建立了连接。但是 rabbitMQ 实例是私有的,因此无法在管道中建立此连接。

我想知道是否制作一个运行此测试的 api 端点并将其添加到启动探针将是确保此测试通过的好方法。

0 投票
1 回答
57 浏览

kubernetes - 容器重启后跳过 Kubernetes 启动探测

在 Kubernetes v1.20 上运行

我配置了一个启动探针和一个活性探针。在容器第一次启动时,将执行启动探针,直到活性探针接管(如文档所述)。但是,如果 liveness 探测失败并且容器重新启动,则似乎不会再次执行启动探测。这是预期的行为吗?我在任何地方都找不到这个记录。

为了重现此问题,我正在运行以下容器定义(仅相关部分):

因此,如果 liveness 探针运行,它会创建 /tmp/liveness。如果启动探测运行,它会创建 /tmp/startup。您可以通过删除 /tmp/alive 来模拟活动检查失败。

首次启动时:

之后rm /tmp/alive,活性检查失败并重新启动容器。然后,在新容器中:

所以似乎启动探测不再执行。

0 投票
1 回答
22 浏览

kubernetes - 如何在 Kubernetes 的 startupProbe 中正确执行命令?

我正在尝试使用此启动探针

这是一个 Java 应用程序,可能需要很长时间(约 15 分钟)才能加载一些组件。这是一个遗留应用程序,我对此无能为力。

我正在响应响应,试图得到两行结果,然后返回 0 或 1 作为退出代码供探针决定。

虽然我得到了他的错误

如果我不使用该&& echo $? || echo $?部件,则探针会抛出退出代码为2而不是的错误1

到底是怎么回事 ??