问题标签 [readinessprobe]
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 - 我应该创建一个 API 来让 readinessprobe 工作 kubernetes
我正在尝试创建一个 RollingUpdate 并尝试使用下面的代码来查看 pod 是否出现。我应该在我的应用程序中创建像 /healthz 这样的显式 API 路径,以便 kubernetes 对其进行 ping 操作并返回 200 状态,或者它的 kubernetes 的内部 url?
kubernetes - readinessProbe 是否继续 ping url
我正在使用 readinessprobe 进行滚动更新。它工作正常。但即使在豆荚出现之后。即使在 pod 运行后,它也会继续 ping healthz。我假设当 pod 启动并运行时它会停止 ping。这样对吗?
kubernetes-ingress - istio 新安装导致 readinees 探测失败
我正在 Azure kubernetes 服务上安装 istio 版本 1.1.5。我已经按照这个 istio 站点isito 安装中提到的安装过程
我已经安装了 istio-demo 安装包。安装成功后,很少有资源没有启动...
当我检查 pod 的描述时 istio-ingressgateway-5f9765f889-gpvt2
,我得到以下错误..
就绪探测失败:HTTP 探测失败,状态码:503
同样对于其他 pod istio-telemetry-795546db77-sqr5j
,我遇到了错误。
Liveness probe failed: Get http://10.40.226.41:15014/version : dial tcp 10.40.226.41:15014: connect: connection denied
我已经启用rewriteAppHTTPProbe=true
但没有运气..
kubernetes - Kubernetes readinessProbe 配置更改 ping 时间
我的 readinessProbe 设置如下:
periodSeconds
一旦我的 pod 运行正常,我想将 更改为更大的值。有可能实现这一目标吗?因为在 Pod 启动期间,每 5 秒探测一次是有意义的,但一旦它运行良好,每 30 秒探测一次会更有效地利用资源。
service - 准备就绪-在 Pod 启动时探测另一个服务
在我的 Kubernetes 设置中,我有 2 个服务 - A 和 B。
服务 B 依赖于完全启动的服务 A。我现在想在服务 B 的 Pod 中设置一个 TCP 就绪探测,以便他们测试服务 A 的任何 Pod 是否完全运行。
服务 B 中部署的 ReadinessProbe 部分如下所示:
我可以应用这些更改,但 Readiness Probe 失败并显示:
我在其他地方使用相同的主机名(例如,我将它作为 ENV 传递给容器)并且它可以工作并得到解决。
有没有人有想法准备好为其他服务工作或在服务之间进行其他类型的依赖检查?谢谢 :)
kubernetes - Kubernetes livenessProbe/readinessProbe 部署问题
我尝试使用 livenessProbe 和 readinessProbe 应用我的 pod。问题是我得到一个错误:应用后:kubectl apply -f test1.yaml
错误:
kubernetes - Kubernetes - 准备探测不适用于部署
有人可以告诉我部署的 yaml 文件有什么问题吗?当我删除就绪探测时,我可以看到我的部署kubectl get deployments
可用。但是使用就绪探测,它仍然不可用,如下所示。
下面是我的yaml文件
kubernetes - 当 pod 未准备好时,Readiness Probe 不允许访问内部 kubernetes 服务
就绪探针使应用程序处于非就绪状态。处于此状态时,应用程序无法连接到任何 kubernetes 服务。
我将 Ubuntu 18 用于我的 kubernetes 集群的主节点和节点。(当我在集群中只使用master时问题仍然存在,所以我认为这不是master节点的问题)。
我使用 Spring 应用程序设置了我的 kubernetes 集群,该应用程序使用 hazelcast 来管理缓存。因此,在使用就绪探测时,应用程序无法访问我创建的 kubernetes 服务,以便使用hazelcast-kubernetes插件通过 hazelcast 连接应用程序。
当我取出就绪探针时,应用程序会尽快连接到成功创建 hazelcast 集群的服务,并且一切正常。
就绪探针将连接到一个 rest api,它的唯一响应是一个 200 代码。然而,当应用程序启动时,在进程的中间它会启动 hazelcast 集群,因此,它会尝试连接到 kubernetes hazelcast 服务,该服务将应用程序的缓存与其他 pod 连接起来,而就绪探针没有' 没有被清除,并且 pod 由于探测而处于非就绪状态。这是应用程序无法连接到 kubernetes 服务并且由于我添加的配置而失败或卡住的情况。
服务.yaml:
部署.yaml:
hazelcast.xml:
hazelcast-client.xml:
预期结果:
该服务能够连接到 pod,在其描述中创建端点。
$ kubectl 描述服务 my-app-cluster-hazelcast
该应用程序运行正常,并在其 hazelcast 集群中显示了两个成员,并且部署显示为就绪,可以完全访问该应用程序:
日志:
$ kubectl 获取部署
实际结果:
该服务没有获得任何端点。
$ kubectl 描述服务 my-app-cluster-hazelcast
应用程序被 hazelcast-client.xml 中启用的连接策略卡住,并带有以下日志,使其自己的集群保持没有通信并且部署永远处于非就绪状态:
日志:
$ kubectl 获取部署
kubernetes - 重用依赖服务的就绪探测来控制服务的启动
我有一个后端服务,我将使用 Kubernetes(带有 Helm 图表)来控制它。这个后端服务连接到一个数据库(MonogoDB,它就是这样)。在数据库准备好接收连接之前启动后端服务是没有意义的(后端将通过重试来处理丢失的数据库,但它会浪费资源并填充日志文件以分散注意力错误信息)。
为此,我相信我可以将一个init 容器添加到我的后端,并让该 init 容器等待(或轮询)直到数据库准备好。这似乎是init 容器的预期用途之一
因为 init 容器在任何应用程序容器启动之前运行完成,所以 init 容器提供了一种机制来阻止或延迟应用程序容器启动,直到满足一组先决条件。
也就是说,让我的服务的 init 容器执行与数据库的就绪探测相同的操作。这反过来意味着将代码从数据库的配置(Helm 图表)复制并粘贴到我的后端的配置(或 Helm 图表)。不理想。有没有更简单的方法?有没有一种方法可以向 Kubernetes声明,在知道数据库准备好之前不应该启动我的服务?
kubernetes - Kubernetes - 在 pod 状态就绪后运行作业
我基本上是在寻找类似于初始化容器的机制,但需要注意的是,我希望它在 pod 准备好后运行(例如响应 readinessProbe)。是否有任何钩子可以应用于 readinessProbe,以便它可以在第一次成功探测后触发作业?
提前致谢