020 云原生之 Pod 介绍
Pod 是 Kubernetes 中创建应用的最小、最简单的基本执行单元。Pod 封装了应用程序的容器(一个或多个)、存储资源、网络以及其他相关选项。这表明:
● Kubernetes 直接管理 Pod,而不是容器。
● Pod 可以封装多个协作的容器,类似于 Docker Stack。
● 每个 Pod 仅运行某个应用程序的单个实例,如果要水平扩展,不建议使用 Pod 部署。
Pod 能够聚合多个容器,应用在容器里面运行,但是它也可能有一个或多个先于应用容器启动的初始化容器(Init container)。初始化容器与普通容器非常像,除了如下两点:
● 它们总是运行到完成。
● 每个都必须在下一个启动之前成功完成。
为了更精确地判断容器状态,Kubernetes 中提供了就绪探针(Readiness Probe)和存活探针(Liveness Probe)。
存活探针用于判断容器启动就绪后是否还在持续正常服务。业务有可能会因为某种错误而导致系统不可用,或者普通的探测方法不足以判断业务是否正常工作,此时可以通过设置自定义的存活探针来检测。
就绪探针用于判断容器是否可以接受流量,是针对有前端服务的容器来讲的。有些容器可能已经启动完毕,但是业务系统还不能正常处理请求。例如 Tomcat 启动需要 1min,此时要进行存活状态检测将返回不可用,前端服务就不会将请求转给容器。
Kubernetes 中容器所在的网络与客户端所在的网络是不能直接通信的,这就导致部署一个 Pod 后,如果需要测试其功能将非常麻烦。为此,Google 推出了一个 busybox 镜像,该镜像含有基本的网络工具,用于在容器网络中测试。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/88aad7fa01ac632b3c809e074】。文章转载请联系作者。
评论