问题标签 [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.
kubernetes - 如何在 GKE 1.16 上启用启动探测?
我创建了一个带有活动性和就绪性探测以及初始延迟的部署,效果很好。如果我想用启动探测替换初始延迟,则startupProbe
密钥及其嵌套元素在创建时永远不会包含在部署描述符中,kubectl apply
并在保存后从 GKE 部署编辑器中的部署 yaml 中删除。
一个例子:
与krichter/microk8s-startup-probe-ignored:latest
存在
我正在从与 microk8s 相同的问题中重用此示例,我可以通过更改kubelet
和kubeapi-server
配置文件来解决它(如果您有兴趣,请参阅https://github.com/ubuntu/microk8s/issues/770 )。我认为这对于 GKE 集群是不可能的,因为它们不会公开这些文件,这可能是有充分理由的。
我假设该功能需要启用,因为它位于功能门之后。如何在版本 >= 1.16 的 Google Kubernetes Engine (GKE) 集群上启用它?目前我正在使用常规频道 1.16.8-gke.15 的默认值。
java - 端点不可访问时的 Kubernetes 启动探测
我有以下部署配置。test-worker-health 和 health 端点都无法访问,因为应用程序由于错误而失败。启动探针在失败后不断重启容器,因为 restartPolicy: Always。pod 进入 CrashLoopBackoff 状态。有没有办法让这种启动探测失败?
kubernetes - GKE 1.18 中未使用启动探针
我最近将我们项目中使用的 GKE 集群更新为 1.18.16-gke.1200 版本。我们一直期待的功能之一是启动探测。根据Kubernetes 网站上的 feature gates 概述,启动探针在 Kubernetes 1.18 版本中进入了 Beta 阶段,应该默认启用,除非在 kubelet 配置中明确禁用。在使用 minikube 部署的 1.18 集群上,Deployment 的启动探针已正确发现:
在 GKE 1.18 集群上没有提到探针:
两个部署都有 API 版本apps/v1
并且具有相同的探针配置,但是 GKE 忽略了启动探针之一。
我已经kubectl cluster-info dump
针对 GKE 集群执行以确定--feature-gates
kubelet 标志的参数,如果StartupProbe
Google 没有针对该版本禁用它。但是,转储返回的唯一特征门信息是 kube-proxy 容器的参数,如下所示--feature-gates=DynamicKubeletConfig=false,RotateKubeletServerCertificate=true
:转储中根本没有提到启动探针,这意味着应该启用探针。
GKE 发行说明似乎在任何地方都没有提到启动探针,即使在关于引入 1.20 版的探针进入 GA 的条目中,尽管提到了一些其他功能(RuntimeClass)的毕业。会不会是 Google 出于某种原因阻止在 GKE 中引入启动探测?有没有其他方法可以为 GKE 1.18 版启用启动探测?我没有使用 alpha 集群,并且探针不再是 alpha 功能。
amazon-eks - 从 1.17 升级时,StartupProbe 在 EKS 1.18 上不起作用
我们注意到 StartupProbe 可以在新的 EKS 1.18 集群上运行,但如果集群是从 1.17 升级的,它就不起作用。这是 EKS 的错误吗?
testing - Kubernetes 探针运行验收测试
我有一种情况,我的验收测试在管道期间与 rabbitMQ 实例建立了连接。但是 rabbitMQ 实例是私有的,因此无法在管道中建立此连接。
我想知道是否制作一个运行此测试的 api 端点并将其添加到启动探针将是确保此测试通过的好方法。
kubernetes - 容器重启后跳过 Kubernetes 启动探测
在 Kubernetes v1.20 上运行
我配置了一个启动探针和一个活性探针。在容器第一次启动时,将执行启动探针,直到活性探针接管(如文档所述)。但是,如果 liveness 探测失败并且容器重新启动,则似乎不会再次执行启动探测。这是预期的行为吗?我在任何地方都找不到这个记录。
为了重现此问题,我正在运行以下容器定义(仅相关部分):
因此,如果 liveness 探针运行,它会创建 /tmp/liveness。如果启动探测运行,它会创建 /tmp/startup。您可以通过删除 /tmp/alive 来模拟活动检查失败。
首次启动时:
之后rm /tmp/alive
,活性检查失败并重新启动容器。然后,在新容器中:
所以似乎启动探测不再执行。
kubernetes - 如何在 Kubernetes 的 startupProbe 中正确执行命令?
我正在尝试使用此启动探针
这是一个 Java 应用程序,可能需要很长时间(约 15 分钟)才能加载一些组件。这是一个遗留应用程序,我对此无能为力。
我正在响应响应,试图得到两行结果,然后返回 0 或 1 作为退出代码供探针决定。
虽然我得到了他的错误
如果我不使用该&& echo $? || echo $?
部件,则探针会抛出退出代码为2
而不是的错误1
。
到底是怎么回事 ??