K8s教程-docker健康检查
Dockerfile 新增 HEALTHCHECK,healthcheck.sh 需要实现对内部程序状态的检测 HEALTHCHECK –interval=5s –timeout=3s CMD bash /healthcheck.sh || exit 1
测试
# 测试
mkdir nginx && cd nginx
# 编写 Dockerfile
touch test.txt
cat > Dockerfile << EOF
FROM nginx:latest
COPY test.txt /test.txt
HEALTHCHECK --interval=5s --timeout=3s CMD cat /test.txt || exit 1
EOF
# 打包
# buildctl build
docker build -t nginx:healthcheck .
# 运行
docker run -d --name nginx-healthcheck nginx:healthcheck
# 查看:healthy
docker ps
# STATUS
# Up 5 seconds (healthy) 标记了healthy状态
# 检测
docker inspect --format='{{json .State.Health}}' nginx-healthcheck
docker inspect --format='{{json .State.Health.Status}}' nginx-healthcheck
# 异常测试
docker exec -it nginx-healthcheck rm /test.txt
docker ps
# Up About a minute (unhealthy)
# 恢复
docker exec -it nginx_healthcheck touch /test.txt
参考
- 原文作者:zaza
- 原文链接:https://zazayaya.github.io/2021/07/20/docker-health-check.html
- 说明:转载本站文章请标明出处,部分资源来源于网络,如有侵权请及时与我联系!