Health Check - 每天5分钟玩转 Docker 容器技术(142)
强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性。自愈的默认实现方式是自动重启发生故障的容器。除此之外,用户还可以利用 Liveness 和 Readiness 探测机制设置更精细的健康检查,进而实现如下需求: 零停机部署。 避免部署无效的镜像。 更加安全的滚动升级。 下面通过实践学习 Kubernetes 的 Health Check 功能。 默认的健康检查 我们首先学习 Kubernetes 默认的健康检查机制: 每个容器启动时都会执行一个进程,此进程由 Dockerfile 的 CMD 或 ENTRYPOINT 指定。如果进程退出时返回码非零,则认为容器发生故障,Kubernetes 就会根据restartPolicy重启容器。 下面我们模拟一个容器发生故障的场景,Pod 配置文件如下: Pod 的restartPolicy设置为OnFailure,默认为Always。 sleep 10; exit 1模拟容器启动 10 秒后发生故障。 执行kubectl apply创建 Pod,命名为healthcheck。 过几分钟查看 Pod 的状态: 可看到容器当前...
