gpt4 book ai didi

docker - 我怎样才能让我的容器从开始 -> 健康开始

转载 作者:行者123 更新时间:2023-12-02 19:15:58 24 4
gpt4 key购买 nike

背景:我的Docker容器启动时间很长,很难预测什么时候完成。当健康检查开始时,它首先可能会显示“不健康”,因为有时启动还没有完成。这可能会导致我们的自动化工具重启或移除容器。
我的具体问题是我是否可以控制我的 Docker 容器,使其在设置准备好之前显示“正在启动”,并且在此之后可以以某种方式立即启动运行状况检查?或者是否有其他关于如何使用健康检查以良好方式处理状态的建议?
附带问题:我很想了解在容器启动和健康检查启动期间如何进行和确定转换。我试过在谷歌上搜索如何确定 Docker(容器)状态,但找不到任何好的引用。

最佳答案

My specific question is if I can control my container so that it shows'starting' until the setup is ready and that the health check cansomehow be started immediately after that?


我认为仅使用 K8s 或 Docker 是不可能的。
容器并非旨在与 Docker Daemon 或 Kubernetes 通信以告知其内部设置已完成。
如果应用程序需要一些时间来设置,您可以使用 Kubernetes 的就绪和活跃度探测选项。
You may indeed configure readynessProbe在特定延迟后执行初始检查。
例如指定 120 秒作为初始延迟:
readinessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 5
periodSeconds: 120
livenessProbe 也是一样:
livenessProbe:
httpGet:
path: /healthz
port: 8080
httpHeaders:
- name: Custom-Header
value: Awesome
initialDelaySeconds: 120
periodSeconds: 3

对于“单独”的 Docker 而不是太多可配置的,您可以使其与 --health-start-period parameter 一起使用的 docker run子命令:

--health-start-period : Start period for the container to initializebefore starting health-retries countdown


例如,您可以指定一个重要的值,例如:
docker run --health-start-period=120s ...

关于docker - 我怎样才能让我的容器从开始 -> 健康开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63480418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com