当前位置: 首页 > news >正文

【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 分钟后,重置退避计时器

相关文章:

  • ​RBAC(基于角色的访问控制)权限管理详解
  • 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十)
  • 31.1linux中Regmap的API实验(知识)_csdn
  • 数据源指的是哪里的数据,磁盘中还是内存中
  • 真实案例分享,Augment Code和Cursor那个比较好用?
  • 02.管理数据库
  • Razor编程中@Html的方法使用大全
  • 探索Python中的ART库:让文本绽放艺术之花
  • 【会员专享数据】1980—2022年中国逐日月年潜在蒸散发栅格数据
  • 《高等数学》(同济大学·第7版)第三章第三节“泰勒公式“
  • 【和春笋一起学C++】(十八)C++函数新特性——引用变量用作函数参数
  • 【CUDA 】第5章 共享内存和常量内存——5.3减少全局内存访问(2)
  • MATLAB生成大规模无线通信网络拓扑(任意节点数量)
  • 单片机 传感器知识讲解 (一)红外避障模块,声控模块,人体红外模块
  • MS8551/MS8552/MS8554 单电源、轨到轨输入输出、高精度运放,可替代AD8551/AD8552/AD8554
  • Vue3学习(watchEffect,标签的ref属性,计数器,defineExpose)
  • iview组件库:当后台返回到的数据与使用官网组件指定的字段不匹配时,进行修改某个属性名再将response数据渲染到页面上的处理
  • LLMs 系列科普文(2)
  • LR修图软件|Lightroom 2025网盘下载与安装教程指南
  • Redis知识体系
  • 崇信县人民政府网站/市场营销的八个理论
  • 西安市做网站的公司/矿坛器材友情交换
  • 保定市网站制作公司/新闻软文广告
  • 加工厂网站建设/信息流广告的特点
  • 南充网站建设公司/百度网盟推广怎么做
  • 简述网络营销的八大职能/湖南seo网站策划