跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

Pod 是什么?Kubernetes 中如何高效使用 Pod?

Pod 是什么?

Pod 是 Kubernetes 中最小的资源管理单元,它代表了集群中运行的一个进程。Pod 可以包含一个或多个容器,这些容器共享相同的网络和存储资源。

Pod 的基础概念

Pod 的基础概念包括:

  • Pod 容器的分类:基础容器、初始化容器、应用容器。
  • 镜像拉取策略:IfNotPresent、Always、Never。
  • 资源限制:为 Pod 中的容器设定所需的 CPU 和内存资源。
  • 重启策略:Always、OnFailure、Never。
  • 健康检查:通过探针(Probe)检查容器的健康状态。
  • 启动、退出动作:在容器启动和退出时执行特定的动作。

Pod 的分类

Pod 可以分为以下几类:

  • 自主式 Pod:无法自我修复,需要手动干预。
  • 控制器管理的 Pod:由 Kubernetes 控制器管理,具有自愈能力。
  • 静态 Pod:由 kubelet 管理,不通过 master 节点上的 apiserver。

Pod 容器的分类

1、基础容器(infrastructure container)
//维护整个 Pod 网络和存储空间
//node 节点中操作
//启动一个Pod时,k8s会自动启动一个基础容器

2、初始化容器(initcontainers)
//Init容器必须在应用程序容器启动之前运行完成,而应用程序容器是并行运行的,所以Init容器能够提供了一种简单的阻塞或延迟应用容器的启动的方法。

3、应用容器(Maincontainer)
//并行启动

镜像拉取策略

1、IfNotPresent:在镜像已经存在的情况下,kubelet 将不再去拉取镜像,仅当本地缺失时才从仓库中拉取,默认的镜像拉取策略

2、Always:每次创建 Pod 都会重新拉取一次镜像;

3、Never:Pod 不会主动拉取这个镜像,仅使用本地镜像。

资源限制

当定义 Pod 时可以选择性地为每个容器设定所需要的资源数量。 最常见的可设定资源是 CPU 和内存大小,以及其他类型的资源。

当为 Pod 中的容器指定了 request 资源时,代表容器运行所需的最小资源量,调度器就使用该信息来决定将 Pod 调度到哪个节点上。当还为容器指定了 limit 资源时,kubelet 就会确保运行的容器不会使用超出所设的 limit 资源量。

重启策略

当 Pod 中的容器退出时通过节点上的 kubelet 重启容器。适用于 Pod 中的所有容器。

1、Always:当容器终止退出后,总是重启容器,默认策略

2、OnFailure:当容器异常退出(退出状态码非0)时,重启容器;正常退出则不重启容器

3、Never:当容器终止退出,从不重启容器。

健康检查

探针是由kubelet对容器执行的定期诊断。

探针的三种规则:
●livenessProbe :判断容器是否正在运行。

●readinessProbe :判断容器是否准备好接受请求。

●startupProbe(这个1.17版本增加的):判断容器内的应用程序是否已启动。

启动、退出动作

在容器启动和退出时执行特定的动作。

postStart:容器启动后立即执行的动作。

preStop:容器退出前立即执行的动作。

总结与拓展

Pod 是 Kubernetes 中非常重要的概念,掌握 Pod 的使用方法对于高效使用 Kubernetes 非常重要。在 Kubernetes 中,Pod 的使用方式非常灵活,可以通过不同的配置来实现不同的功能。

我是「新派编程网」(www.xjpbg.com)的林译川,希望这篇文章能帮助你更好地理解 Pod 的概念和使用方法。如果你对 Kubernetes 有更多的疑问,欢迎访问我们的网站了解更多内容。

相关文章