考虑一个通过端口80的http端点/health进行健康检查设置的pod,它需要将近60秒的时间才能真正准备就绪&为流量服务。
readinessProbe:
httpGet:
path: /health
port: 80
initialDelaySeconds: 60
livenessProbe:
httpGet:
path: /health
port: 80问题:
initialDelaySeconds for livenessProbe。如果它们是独立的,那么当吊舱本身还没有准备好的时候,做livenessProbe检查有什么意义呢?如果您希望容器能够进行维护,您可以指定一个就绪探测,它检查与活动探测不同的特定于就绪状态的端点。
我假设,只有当livenessProbe失败时,运行的吊舱才会自毁。不是readinessProbe。医生说的是另外一种方式。
澄清!
发布于 2020-02-08 12:53:05
我从第二个问题开始回答。第二个问题是:
活性探针是在吊舱准备好后才开始工作吗?换句话说,我假设在POD准备就绪之后,就绪探测任务就完成了。在那之后,livenessProbe负责健康检查。
我们最初的理解是,在就绪探针成功后,活性探针将开始检查,但是,它最终不是那样的。它已经为这个challenge.Yon可以查找这里打开了一个问题。然后通过添加启动探针。解决了这个问题。
总括而言:
livenessProbe:指示容器是否正在运行。如果活性探测失败,kubelet将杀死容器,容器将受其重新启动策略的约束。如果容器没有提供活性探测,则the default state is Success.
readinessProbe:指示容器是否已准备好服务请求。如果就绪探测失败,端点控制器将从与Pod匹配的所有服务的端点中删除Pod的IP地址。初始延迟之前的默认准备状态是失败。如果容器没有提供就绪探测,则the default state is Success.
startupProbe:指示容器中的应用程序是否已启动。如果提供了启动探测,则将禁用所有其他探测,直到它成功。如果启动探测失败,将杀死容器,容器将受其重新启动策略的影响。如果容器没有提供启动探测,则the default state is Success
查一下这里。
发布于 2019-03-29 20:11:17
活性探针用于检查容器是否已启动并处于活动状态。如果不是这样,kubernetes最终将重新启动容器。
就绪探测反过来也会检查依赖项,比如数据库连接或容器所依赖的其他服务来完成它的工作。作为一名开发人员,您必须在实现上投入更多的时间,而不仅仅是为了进行活性探测。您必须公开一个端点,该端点在查询时也会检查所述的依赖项。
当前的配置使用一个健康端点,该端点通常由活性探针使用。它可能不会检查您的服务是否真的可以接受流量。
库伯奈特斯依靠战备探测器。在滚动更新期间,它将保持旧容器的正常运行,直到新服务声明它已准备好接收流量。因此,准备探测必须正确地执行。
发布于 2021-12-23 09:13:27
我将用几个简单的点来说明它们之间的区别:
livenessProbe
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 3
periodSeconds: 3readinessProbe
readinessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 3
periodSeconds: 3摘要
活动探测:用于检查容器是否可用并处于活动状态。
就绪探测:用于检查应用程序是否可以使用并为流量服务。
https://stackoverflow.com/questions/55423405
复制相似问题