189 8069 5689

如何学习Kubernetes的HealthCheck

今天就跟大家聊聊有关如何学习Kubernetes 的Health Check,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了东昌免费建站欢迎大家使用!

Health Check

强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性。自愈的默认实现方式是自动重启发生故障的容器。除此之外,用户还可以利用 Liveness 和 Readiness 探测机制设置更精细的健康检查,进而实现如下需求:

  1. 零停机部署。

  2. 避免部署无效的镜像。

  3. 更加安全的滚动升级。

下面通过实践学习 Kubernetes 的 Health Check 功能。

默认的健康检查

我们首先学习 Kubernetes 默认的健康检查机制:

每个容器启动时都会执行一个进程,此进程由 Dockerfile 的 CMD 或 ENTRYPOINT 指定。如果进程退出时返回码非零,则认为容器发生故障,Kubernetes 就会根据 restartPolicy 重启容器。

下面我们模拟一个容器发生故障的场景,Pod 配置文件如下:

如何学习Kubernetes 的Health Check

Pod 的 restartPolicy 设置为 OnFailure,默认为 Always

sleep 10; exit 1 模拟容器启动 10 秒后发生故障。

执行 kubectl apply 创建 Pod,命名为 healthcheck

如何学习Kubernetes 的Health Check

过几分钟查看 Pod 的状态:

如何学习Kubernetes 的Health Check

可看到容器当前已经重启了 3 次。

在上面的例子中,容器进程返回值非零,Kubernetes 则认为容器发生故障,需要重启。但有不少情况是发生了故障,但进程并不会退出。比如访问 Web 服务器时显示 500 内部错误,可能是系统超载,也可能是资源死锁,此时 httpd 进程并没有异常退出,在这种情况下重启容器可能是最直接最有效的解决方案。

看完上述内容,你们对如何学习Kubernetes 的Health Check有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


网站标题:如何学习Kubernetes的HealthCheck
文章转载:http://cdxtjz.cn/article/gipigo.html

其他资讯