k8s关于pod

这篇具有很好参考价值的文章主要介绍了k8s关于pod。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 

目录

1、POD 的创建流程

kubectl 发起创建 Pod 请求:

API Server 接收请求并处理:

写入 Etcd 数据库:

Kubelet 监听并创建 Pod:

Pod 状态更新和汇报:

2、POD 的状态解析

1. Pending Pod

2. Running Pod

3. Succeeded Pod

4. Failed Pod

5. Unknown

6. CrashLoopBackOff

7. ImagePullBackOff Pod

8. Terminating

9. Evicted

10. OOMKilled

11. ContainerCreating

12. Completed


             Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元;

                Pod 中会启动一个或一组紧密相关的业务容器, 各个业务容器相当于Pod 中的各个进程, 此时就可以将Pod 作为虚拟机看待;

                在创建 Pod 时会启动一个init容器, 用来初始化存储和网络, 其余的业务容器都将在init容器启动后启动, 业务容器共享init容器的存储和网络;

                Pod 只是一个逻辑单元, 并不是真实存在的“主机”, 这种类比主机的概念可以更好的符合现有互联网中几乎所有的虚拟化设计;

                像之前运行在虚拟机中的 nginx、mysql、php均可以使用对应的镜像运行出对应的容器在Pod中, 来类比虚拟机中运行这三者;

          对于 Pod 而言, 在运行的过程中, k8s为了控制其生命周期的状态, 增加了容器探测指针资源限额期望状态保持多容器结合安全策略设定控制器受管故障处理策略 等;

                Pod在平时是不能够被单独创建的, 而是需要使用控制器对其创建, 这样可以时刻保持Pod的期望状态。

1、POD 的创建流程

kubectl 发起创建 Pod 请求:

用户通过 kubectl create 命令(或其他等效方式)向 Kubernetes API Server 发起一个创建 Pod 的请求。这个请求包含了 Pod 的定义,通常是一个 YAML 或 JSON 格式的文件。

API Server 接收请求并处理:

Kubernetes API Server 接收到创建 Pod 的请求后,会对请求进行验证和授权检查。 API Server 不会直接创建 Pod,而是将这个请求转化为一个内部表示(如一个含有 Pod 创建信息的 YAML 格式的对象)。

写入 Etcd 数据库:

API Server 将这个 Pod 对象的信息写入到 Etcd 数据库。Etcd 作为 Kubernetes 的数据存储,保存了集群的状态和配置。 Scheduler 进行调度: Kubernetes Scheduler 持续监视 API Server,检查新的或未被调度的 Pod。 当 Scheduler 发现一个新的 Pod(pod.spec.Node == null 表示这个 Pod 还没有被调度到任何节点),它将根据资源需求、亲和性规则、污点和容忍度等因素选择一个合适的节点。 一旦选择了节点,Scheduler 将更新该 Pod 的信息,指定其运行在选择的节点上,并将这个更新写回到 Etcd。

Kubelet 监听并创建 Pod:

每个节点上的 Kubelet 进程持续监视 Etcd,查找分配给自己节点的新任务。 当 Kubelet 发现有新的 Pod 分配到它所在的节点,它会根据 Pod 定义开始创建和启动 Pod 中的容器。 Kubelet 调用容器运行时(如 Docker)来实际启动容器,并设置必要的网络和存储配置。

Pod 状态更新和汇报:

在 Pod 创建过程中,Kubelet 将 Pod 的状态更新回 API Server。这些状态信息包括 Pod 是否成功启动,运行中的容器等。 API Server 更新 Etcd 中的状态信息,确保集群状态的一致性。

2、POD 的状态解析

1. Pending Pod

已被 Kubernetes 系统接受,但有一个或多个容器镜像尚未创建。 Pod 等待被调度到一个节点上。 网络配置等前期准备工作正在进行中。

2. Running Pod

已经被调度到一个节点上,并且所有的容器都已创建。 至少有一个容器正在运行,或者正在启动或重启。

3. Succeeded Pod

中的所有容器都正常运行完毕,并已经退出。 这通常适用于一次性或批处理作业。

4. Failed Pod

中至少有一个容器以非零状态退出。 表明容器启动失败或运行中出现错误。

5. Unknown

由于某种原因,Pod 的状态无法确定。 通常是与 Pod 通信出现问题,如节点故障。

6. CrashLoopBackOff

表明 Pod 中的一个或多个容器尝试启动后失败,正在尝试重启。 这可能是由于应用程序错误、配置问题等引起的。

7. ImagePullBackOff Pod

无法拉取一个或多个容器镜像。 可能是因为镜像不存在,或者与容器注册中心的认证问题。

8. Terminating

当 Pod 被标记为删除并开始终止过程时,会进入此状态。 这个状态意味着 Kubernetes 正在停止 Pod 中的所有容器。

9. Evicted

当节点上的资源(如内存或磁盘空间)不足时,Pod 可能会被驱逐。 驱逐行为是 Kubernetes 为了保护节点稳定性而自动执行的操作。

10. OOMKilled

如果 Pod 中的容器使用超出其分配的内存限制,它可能会被系统的 Out-Of-Memory (OOM) killer 终止。 这通常表明容器配置的内存限制过低或应用程序内存泄露。

11. ContainerCreating

当 Kubernetes 正在创建 Pod 中的容器时,Pod 会处于此状态。 这可能涉及到拉取容器镜像、创建容器等操作。

12. Completed

这是一个非常用状态,表明 Pod 中的所有容器都已成功完成其任务并且正常退出。 这通常用于有限期或批处理任务。

希望能够帮助到大家!!!

k8s关于pod,kubernetes,容器,云原生,运维,linux,服务器,docker文章来源地址https://www.toymoban.com/news/detail-841230.html

到了这里,关于k8s关于pod的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k8s 多容器pod进入指定容器

    kubectl exec -it prometheus-prometheus-server-697cccff9c-qtrf7 -c prometheus-server sh

    2024年02月14日
    浏览(62)
  • 【Kubernetes】K8s 查看 Pod 的状态

    NAME :Pod 的名称。 READY :代表 Pod 里面有几个容器,前面是启动的,后面是总数, 1 / 1 1/1 1/1 。 STATUS :就是当前 Pod 状态,最常见的就是 Running 正在运行,最期望的状态,只要不是 Running 的就说明有问题,就算是 Running 的就不一定没有问题。 状态 说明 Pending 挂起 在执行创建

    2024年01月15日
    浏览(96)
  • k8s关于pod

      目录 1、POD 的创建流程 kubectl 发起创建 Pod 请求: API Server 接收请求并处理: 写入 Etcd 数据库: Kubelet 监听并创建 Pod: Pod 状态更新和汇报: 2、POD 的状态解析 1. Pending Pod 2. Running Pod 3. Succeeded Pod 4. Failed Pod 5. Unknown 6. CrashLoopBackOff 7. ImagePullBackOff Pod 8. Terminating 9. Evicted 10.

    2024年03月18日
    浏览(49)
  • K8S | 容器和Pod组件

    对比软件安装和运行; 作为研发人员,通常自己电脑的系统环境都是非常复杂,在个人的习惯上,是按照下图的模块管理电脑的系统环境; 对于「基础设施」、「主机操作系统」、「系统软件」来说,通常只做配置修改; 对于自行安装的软件环境来说,个人通常这样分类:

    2024年02月11日
    浏览(57)
  • Kubernetes(k8s)核心资源解析:Pod详解

    💖The Begin💖点点关注,收藏不迷路💖 Pod是Kubernetes中最小的调度单元,它可以包含一个或多个容器。Pod中的所有容器共享网络和存储卷,它们一起运行在同一个节点上。Pod提供了一种抽象层,使得容器可以作为一个逻辑单元来管理。 Pod中的容器共享IP地址、端口空间和存储

    2024年04月11日
    浏览(76)
  • kubernetes(k8s) pod(资源限制、基础概念)

    目录  一、资源限制 1、概念 1.2、Pod和容器的资源请求和限制 1.3、CPU资源单位 1.4、内存资源单位 1.5、CPU和内存的Requests和Limits的特点 1.6、案例 二、pod 的两种使用方式 三、pod 资源共享 四、底层容器Pause 1、pause 共享资源 1.1、网络 1.2、存储 1.3、小结 2、Pause主要功能 3、Pod

    2024年02月05日
    浏览(76)
  • k8s pod 容器间测试接口

    1、配置k8s 详细的配置参考官网 2、获取pod节点PODID信息 3、进入到pod容器内部 4、安装CURL 5、调用测试接口 6、查看调用工程的Pod的日志

    2024年02月12日
    浏览(216)
  • K8s Pod状态与容器探针

    Pod创建过程如上图所示,首先用户向apiserver发送创建pod的请求,apiserver收到用于创建pod请求后,对应会对该用户身份信息进行验证,该用户是否是合法的用户,是否具有创建pod的权限,如果能够通过apiserver的验证,则进行下一步,对用户提交的资源进行准入控制,所谓准入控

    2024年02月07日
    浏览(92)
  • Kubernetes(k8s):精通 Pod 操作的关键命令

    💖The Begin💖点点关注,收藏不迷路💖 Kubernetes 是一个强大的容器编排平台,其中的核心概念之一就是 Pod。Pod 是 Kubernetes 中最小的可部署单元,它由一个或多个容器组成,共享网络和存储资源。 在本篇博客中,我们将深入探讨 Kubernetes 集群中与 Pod 相关的一些重要命令,帮

    2024年04月14日
    浏览(185)
  • K8S第四讲 Kubernetes删除pod阻塞问题

    在Kubernetes中,当您尝试删除一个Pod时,可能会遇到Pod一直阻塞的情况。这通常是由于Pod正在运行或被其他资源(例如ReplicaSet或Deployment)控制而导致的。以下是一些可能的解决方案: 1: 确认Pod是否正在运行:在执行删除Pod命令之前,请先检查Pod的状态,确保它没有在运行中

    2024年02月05日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包