有时候大家对于使用容器编排工具kubernetes的好处是什么会有一定的疑惑,强大的kubernetes究竟可以在日常的运维和系统部署中帮我们减轻什么样子的工作呢?
其实大家都忽略了kubernetes的一个强大功能,那就是他的健康检查和自愈能力。
在我们日常的运维过程中,不可避免会出现新拉取的镜像不能启动,容器因为各种问题而导致意外进程结束等,这时候我们就必须人工手动重启拉取旧的镜像或者是将容器重新启动。这部分人工过程实在是太耗费资源了,毕竟你是不知道它什么时候会发生,让运维同学提心吊胆啊。
但是得益于kubernetes强大的自愈能力,它能够默认将非正常退出的容器自动重启的操作,这就大大提高了我们实现零停机部署,不间断提供服务的能力。
kubernetes的健康检查分为默认、Liveness 和 Readiness。今天我们先从简单的默认方式入手。
在yaml文件的spec中有一个属性是restartPolicy ,他的设置是用于告诉kubernetes当容器非正常退出时,是否进行重启的操作,一般情况下是默认always。
下面我们来简单的实现一下容器非正常退出再经历自动重启的过程:
1.首先我们先创建一个名为healthcheck的yaml文件
2.在容器启动的时候执行脚本命令,让容器在十秒钟之后非正常退出
3.apply yaml文件,然后观察pod的详细情况
从图中可以看到,当容器非正常退出之后,kubernetes会根据restartPolicy属性的值进行重启的操作。
大家有问题或者想和我交流的也可以关注我的微信公众号: