POD 详解之资源、拉取策略、容器分类

本文详细介绍了Kubernetes中的Pod,包括基础概念、使用方式、工作原理、Pod的分类(自主式与控制器管理的)、容器分类(基础容器、初始化容器、业务容器)以及Pod的资源分配、重启策略和镜像拉取策略。Pod是Kubernetes中最小的运行单元,由pause容器提供网络和存储共享,初始化容器在应用容器启动前执行,而业务容器并行运行提供应用程序服务。
摘要由CSDN通过智能技术生成

前言

一、Pod 基础概念

1.1 介绍

  • Pod 是 kubernetes 中最小的资源管理组件,Pod 也是最小化运行容器化应用的资源对象。
  • 一个Pod代表着集群中运行的一个进程。kubernetes中其他大多数组件都是围绕着 Pod 来进行支撑和扩展 Pod 功能的,例如:
    • 用于管理 Pod 运行的 StatefulSet 和 Deployment 等控制器对象;
    • 用于暴露 Pod 应用的 Service 和 Ingress对象;
    • 为Pod提供存储的 PersistentVolume 存储资源对象等。

1.2 Pod 使用方式

在Kubrenetes集群中 Pod 有如下两种 使用方式

  • 一个Pod中运行一个容器。每个Pod中一个容器 的模式是最常见的用法,在这种使用方式中,你可以把Pod想象成是单个容器的封装, kuberentes 管理的是 Pod 而不是直接管理容器
  • 在一个Pod中同时运行多个容器。一个Pod中也可以同时封装几个需要紧密耦合互相协作的容器,它们之间共享资源。这些在同一个Pod中的容器可以互相协作成为一个 service 单位,比如一个容器共享文件,另一个 “sidecar” 容器来更新这些文件。Pod将这些容器的存储资源作为一个实体来管理

1.3 工作方式

  • 一个Pod下的容器必须运行于同一节点上现代容器技术建议一个容器只运行一个进程,该进程在容器中 PID 命令空间中的进程号为 1,可直接接收并处理信号,进程终止时容器生命周期也就结束了。
  • 若想在容器内运行多个进程,需要有一个类似 Linux 操作系统 init 进程的管控类进程,以树状结构完成多进程的生命周期管理。运行于各自容器内的进程无法直接完成网络通信,这是由于容器间的隔离机制导致,k8s中的 Pod 资源抽象 正是解决此类问题,Pod 对象是一组容器的集合,这些容器共享Network、UTS 及 IPC命令空间,因此具有相同的域名、主机名
    和 网络接口,并可通过IPC直接通信。

1.4 基础容器 pause

  • Pod 资源中针对各容器提供网络命令空间等共享机制的是底层 基础容器 pause基础容器(也可称为父容器) pause 就是为了管理Pod容器间的共享操作
  • 这个父容器需要能够准确地知道如何去创建共享运行环境的容器,还能管理这些容器的生命周期。为了实现这个父容器的构想,kubernetes中,用 pause容器来作为一个Pod中所有容器的父容器。
  • 这个pause容器有两个核心的功能:
    • 一是它提供整个Pod的Linux命名空间的基础;
    • 二来启用PID命名空间,它在每个Pod中都作为PID为1进程(init进程),并回收僵尸进程

11

pause 容器使得Pod中的所有容器可以共享两种资源网络 和 存储

网络:

  • 每个Pod都会被分配一个唯一的地址
  • Pod中的所有容器共享网络空间,包括IP地址和端口。
  • Pod内部的容器可以使用localhost互相通信
  • Pod中的容器与外界通信时,必须分配共享网络资源(例如使用宿主机的端口映射)。

存储:

  • 可以 Pod指定多个共享的 Volume。Pod中的所有容器都可以访问共享的Volume。Volume也可以用来持久化Pod中的存储资源,以防容器重启后文件丢失

1.5 Pod 的分类

通常把Pod分为两类:

</

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值