在上文《Kubernetes部署微服务实战(八)部署单机nacos》我们部署nacos的时候介绍过,在容器配置的时候配置容器探针。这里的容器探针在生产环境中对我们来说使用非常的方便。
传统的k8s,如果container启动失败之后,那么k8s会自动把这个pod重新启动起来,但是在实际的使用中,container可能已经启动成功了,但是container里面包含的app应用报错了,此时启动的这个pod其实对于我们来说还是不起作用的。因为这个pod根本无法对外提供服务。那么此时我们就可以借助这里的容器探针来实现对container里面的app应用进行监控,如果app应用挂掉了我们也认为当前pod挂掉了,此时借助k8s的重启机制,我们既可以让这个应用实现重启操作。
在kubernetes中,容器探针主要是在健康检查这里实现的:
整个容器探针主要分为3种,也分别在3种情况下对容器对探针检查,这三种分别是:
容器启动时 容器就绪时 容器存活时
这三种情况配置容器探针的规则都差不多的,目前主流的主要是正对于HTTP和tcp和命令行这3种方式进行检查。如下图:
下面我们分别介绍这3种主流的信息
1)http探测
这里的话主要是探测http的信息,也就是容器内的服务需要提供一个http的端口,并且支持httpget方式请求,探针会定时对这个http端口进行请求,statuscode返回是200的话,就代表是健康的,如下图:
2)tcp探测
这里一般应用于一些tcp宽口服务进行检测,例如某个应用,提供的是socket服务,因此这里就使用tcp的方式检测socket服务的端口即可。如下图:
3)命令行探测
命令行探测的话,一般我们像mysql,redis,hive等等服务等我们执行一系列命令的形式来进行探测,如果所有的命令都执行成功,那么就认为pod是健康的,配置图如下:
这里命令行的话,我们可以用mysql来列举下:
mysql -h 127.0.0.1 -e 'select 1'
以上就是关于容器探针的介绍。
还没有评论,来说两句吧...