欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > 【kubernetes】--pod

【kubernetes】--pod

2025/6/9 15:35:45 来源:https://blog.csdn.net/2401_88076102/article/details/148510799  浏览:    关键词:【kubernetes】--pod

文章目录

    • 1、pod 概念
    • 2、pod意义
    • 3、pod实现网络共享的机制
    • 4、pod实现数据存储卷
    • 5、pod镜像拉取策略
    • 6、pod资源限制
      • CPU 资源限制
    • 7、pod重启机制
      • 1). 重启限制机制

1、pod 概念

(1)最小的可部署和管理单元,也是调度和执行容器化应用的基本单位
(2)包含多个容器(一般一个pod一个容器)
(3)同一个pod内的容器共享网路命名空间
(4)pod是暂时的 由控制器(deployment)管理生命周期

2、pod意义

(1)可以实现多进程(虽然docker也可以,但是docker实现多进程很麻烦),一个pod有多个容器
(2)提高了容器内应用进行交互的亲密性

  • 程序和数据库之间频繁调用(curd)
  • 网络之前的调用(prometheus)

3、pod实现网络共享的机制

  1. 每个 Pod 都有一个特殊的"pause"容器(也称为 infra 容器),它只做一件事 - 持有网络命名空间

  2. 其他容器:Pod 中的业务容器通过 --net=container: 方式加入到 pause
    容器的网络命名空间中

  3. 网络配置流程

    • Pod 创建时:Kubernetes 先创建 pause 容器,pause 容器创建并持有网络命名空间
    • CNI 插件为 pause 容器配置网络(分配 IP、设置路由等)
    • 业务容器加入:业务容器创建时加入 pause 容器的网络命名空间,所有容器共享 pause 容器的网络栈

4、pod实现数据存储卷

apiVersion: v1
kind: Pod
metadata:name: my-pod
spec:containers:- name: writeimage: centos:7command: ["bash", "-c", "for i in {1..100}; do echo $i >> /data/hello; sleep 1; done"]volumeMounts:- name: datamountPath: /data- name: readimage: centos:7command: ["bash", "-c", "tail -f /data/hello"]volumeMounts:- name: datamountPath: /datavolumes:- name: dataemptyDir: {}

5、pod镜像拉取策略

spec.containers.imagePullPolicy

apiVersion: v1
kind: Pod
metadata:name: myapp-pod
spec:containers:- name: myapp-containerimage: my-registry/my-app:1.0imagePullPolicy: Always  # 设置拉取策略
  1. IfNotPresent (默认策略)

    • 只有当本地不存在该镜像时才会拉取
    • 如果节点上已有该镜像,则直接使用本地镜像
  2. Always

    • 每次创建 pod 时都会尝试拉取镜像

    • 即使本地已有该镜像也会重新拉取

  3. Never

    • 只使用本地镜像

如果本地不存在所需镜像,则会导致容器启动失败
如果省略 imagePullPolicy 且镜像标签为 :latest 或未指定标签,则默认为 Always
如果省略 imagePullPolicy 且指定了具体镜像标签(如 :v1.2.3),则默认为 IfNotPresent

6、pod资源限制

  1. spec.containers.resources.requests
  2. spec.containers.resources.limits

请求(Requests):容器运行所需的最小资源量
限制(Limits):容器可以使用的最大资源量

apiVersion: v1
kind: Pod
metadata:name: frontend
spec:containers:- name: appimage: images.my-company.example/app:v4resources:requests:memory: "64Mi"cpu: "250m"limits:memory: "128Mi"cpu: "500m"- name: log-aggregatorimage: images.my-company.example/log-aggregator:v6resources:requests:memory: "64Mi"cpu: "250m"limits:memory: "128Mi"cpu: "500m"

CPU 资源限制

  1. 单位表示
    • 整数表示:1 表示 1 个 CPU 核心(在云提供商上通常是 1 个 vCPU)

    • 小数表示:0.5 表示半个 CPU 核心

    • 毫核表示:100m 表示 100 毫核(即 0.1 个 CPU 核心)

resources:requests:memory: "64Mi"  # 请求64MB内存cpu: "0.5"  # 请求半个CPU核心limits:memory: "128Mi" # 限制最多使用128MB内存cpu: "1"     # 限制最多使用1个CPU核心   

7、pod重启机制

spec.restartPolicy

  1. Always:容器退出时总是重启(默认值)
  2. OnFailure:容器异常退出(退出码非0)时重启
  3. Never:从不重启
apiVersion: v1
kind: Pod
metadata:name: my-pod
spec:containers:- name: my-containerimage: my-imagerestartPolicy: OnFailure

1). 重启限制机制

为了防止容器频繁崩溃导致无限重启,Kubernetes 实现了指数退避延迟机制:

  • 第一次崩溃:立即重启
  • 后续崩溃:延迟时间按 10s、20s、40s… 逐渐增加,直到 5 分钟上限
  • 成功运行 10 分钟后,重置退避计时器

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词