k8s中pod组件简介

背景

k8s中pod是很重要的概念,他是k8s调度的最小单位,和我们以往的以docker容器为调度单位是不一样的,那么为什么k8s会以pod为调度单位而不是以更小的docker容器为调度单位呢?

pod组件

pod是一个逻辑的概念,其中可以包含多个docker容器组成一个小的服务单元,先来看一下pod的文件配置:

xml 复制代码
kind: Pod                                   --类型固定写pod
metadata :
  labels:
    - name: string                          --这个pod的label标识符,供外部其他组件选择pod时使用的
spec:
  containers :                              --这个pod中运行的docker容器数组,比如redis和http服务
    name : string                           --pod中比如运行的redis容器
    image : string                          --pod中比如运行的redis容器的镜像
   ports:
    containerPort: int                      --pod中比如运行的redis容器的端口号
    hostPort : int                          --pod中运行的redis容器对应的宿主机端口号
env:                                        --pod中的环境变量列表
   name: string
    value : string

k8s中pod是包含多个docker容器的一套套件,比如他会包含一个redis容器+日志采集容器的两个docker容器,这两个容器可以组成一个小的服务单元,而且本质上他们就是需要绑定在一起的服务单元,不需要把他们两个分开调度,所以在k8s看来,他调度的单位变成了调度一个小的功能服务单元,并且每个pod中都有一个特殊的Pause根容器,这个pause根容器的作用是为了让这个pod中的所有docker容器都可以共享统一网络,也就是pod中的所有容器拥有相同的ip地址,相同的主机名,对于外界来说,和这个pod内的任何一个docker容器通信都是一样的ip地址。

pod这种设计就能让k8s在调度的时候是以服务单元为单位调度的,这些pod里面的容器本来就是超亲密的关系,本来就不适合分开调度到不同的宿主机上面,所以k8s把他们捆绑起来一起调度很好的解决了这个问题

相关推荐
阿里云云原生几秒前
2026 GOAI 世界人工智能开源大赛「Agent Infra 新智基座」赛道正式启动
云原生
晴空了无痕9 分钟前
从 Go 基础到 K8s:一条可落地的 Go 服务端成长路线
开发语言·后端·golang·kubernetes
探索云原生5 小时前
Kubernetes 官方出品:一个 Controller 搞定 Job 排队和资源配额
ai·云原生·kubernetes·scheduler
BullSmall7 小时前
Sonarqube9.9 docker 镜像启动后 conf 下的配置文件没有了
docker·容器·eureka
spider_xcxc8 小时前
Docker 实战:容器化多服务应用,Dockerfile 与 Compose 配置全解析
docker·云原生·eureka·虚拟化·容器化
hay_lee9 小时前
Kubernetes StatefulSet:OrderedReady 极简指南
云原生·容器·kubernetes
晚风吹长发9 小时前
Docker使用——Docker容器及相关命令
linux·运维·服务器·docker·容器·架构
ShiXZ21310 小时前
Docker Compose 安装与配置指南
运维·docker·容器
BullSmall11 小时前
Anolis OS 8.10 Docker 部署 SonarQube 9.9 完整教程
运维·docker·容器
人间凡尔赛11 小时前
AI-Native 云原生架构:2026 年从容器编排到智能体编排的范式革命
后端·云原生·架构