【百度云原生导读】Pod 代表了 Kubernetes 中的基本部署单元,但是,在一般情况下我们不会直接使用 Pod,因为每一次重启它的 IP 都会发生变化;如果你希望自己的应用能自动保持健康运行而且无需手动干预,则需要通过创建 ReplicaSet 或者 Deployment 这样的资源来管理实际的 Pod。另外很多时候我们需要判断Pod是否需要重启,请求是否可被调度到Pod,探针的出现使得这些问题迎刃而解。
本节课将带领大家学习探针与 Deployment 的使用。通过实践与学习,了解 Kubernetes如何实现应用的高可用。
课程主要分为以下四个部分:
第一部分:探针
第二部分:Deployment 的使用
第三部分:Demo
第四部分:总结
1. Kubernetes 探针
当你使用 Kubernetes 的时候,有没有遇到过 Pod 在启动后一会就挂掉然后又重新启动这样的恶性循环?Kubernetes 如何检测 Pod 是否还存活?虽然容器已经启动,Kubernetes 如何知道容器的进程是否准备好对外提供服务了呢?答案是:探针
探针种类
LivenessProbe
介绍:LivenessProbe 又称存活探针,其作用主要用于检测容器是否还在运行。kubelet 使用存活探测器来知道什么时候要重启容器。例如,存活探测器可以捕捉到死锁(应用程序在运行,但是无法继续执行后面的步骤)。这样的情况下重启容器有助于让应用程序在有问题的情况下更可用。
用途:Kubernetes 可以通过存活探针来检查容器是否还在运行。如果探测失败,则 Kubernetes 将会认为容器已经不在运行,将会重新启动容器。
探测方式:
1. HTTP:kubelet 对容器的 IP 地址指定路径执行 HTTP GET 请求。根据返回码判断是否探测成功
2. TCP 套接字:尝试与容器指定端口建立TCP连接,如果建立成功则表示探测成功。
3. Exec:在容器内执行任意命令,检查退出状态码。如返回值为0,则探测成功。
存活探针yaml文件:
绿色为 http 探针,这里请求容器的8080端口,如果返回是 2xx,或者 3xx,那么表示探测成功。
红色为 exec 探针,这里执行了一个 cat 命令。
<