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

kubernetes(k8s)核心之Pod速通

k8s核心技术-Pod

pod基本概念

pod是最小部署单元,包含对各容器(一组容器的集合),每个pod都有一个"根容器"——Pause容器,一个pod中的容器共享网络命名空间,pod是短暂的

pod存在的意义

①创建容器使用docker,一个docker对应一个容器,一个容器有一个进程,一个容器运行一个应用程序

②pod是多进程设计,运行多个应用程序,一个pod可以有多个容器,可以同时运行多个应用程序

③pod的存在为了亲密性应用(多个应用之间进行交互,也可以提供网络之间调用)

pod实现机制

共享网络:通过Pause容器,把其他业务容器加入到Pause容器里,让所有业务容器在同一个命名空间(namespace)中,可以实现网络共享       

共享存储:引入数据卷概念volume,使用数据卷进行持久化存储

pod镜像拉取策略

imagePullPolicy:Always#IfNotPresent:默认值,镜像在宿主机不存在时进行拉取
#Always:每次创建镜像都会进行镜像拉取
#Never:pod永远不会主动拉取镜像

pod资源限制

其实是通过docker实现

resources:requests:memory: "64Mi"cpu: "250M"limits:memory: "128Mi"cpu: "500M"

pod重启机制

restartPolicy:Never#Always:默认策略,当容器停止退出后,总是重启容器
#OnFailure:当容器异常退出(退出状态码非0)时,才重启容器
#Never:当容器终止退出,从不重启容器 (批量任务使用次策略)

pod健康检查

livenessProbe(存活检查):如果检查失败,将杀死容器,根据pod的restartPolicy来操作

readinessProbe(就绪检查):如果检查失败,k8s会把pod从service endpoints中剔除

Probe三种检查方法:

httpGet:发送http请求,返回200-400状态码为成功

exec:执行shell命令返回状态0为成功

tcpSocket:发起TCP Socket建立成功

pod调度

创建pod的流程:

master节点:

createPod --apiserver --etcd存储

scheduler --apiserver --etcd --调度算法,把pod调度到某个node节点(工作节点)上

node节点:

kubelet --apiserver --读取etcd数据,拿到分配给当前节点的pod--docker创建容器

影响调度的属性:
1、pod资源限制对pod调度产生影响

2、节点选择器(nodeSelector)标签影响pod调度

spec:nodeSelector:env-role: dev#对节点创建标签
kubectl label node node1 env_role=dev

3、节点亲和性影响pod调度

nodeAffinity:硬亲和性------约束条件必须满足

                      软亲和性------尝试满足,不保证

支持常用操作符:In        NotIn        Exists        Gt        Lt        DoesNotExists

4、污点和污点容忍

nodeSelector和nodeAffinity:pod调度到某些节点上,是pod的属性,调度时实现

污点Taint:节点不做普通分配调度,是节点的属性

应用场景:专用节点

                  配置特定硬件的节点

                  基于Taint驱逐

#查看节点污点情况
kubectl describe node [节点名称] | grep Taint

污点值:

NoSchedule:一定不被调度

PreferNoSchedule:尽量不被调度

NoExcute:不会调度,并且还会驱逐节点上已有的pod

#为节点添加污点
kubectl taint node [node] key=value:污点值
kubectl taint node k8smaster name=env_role:NoSchedule#删除污点
kubectl taint node [node]

污点容忍tolerations:即使给吴点设置了NoSchedule的污点值,也可能存在被调度到的情况

在pod中添加容忍规则:

tolerations:
- key: "name"value: "env_role"effect: "NoExecute"

文章转载自:

http://hpEyXAf4.zkjqj.cn
http://sVywpkoP.zkjqj.cn
http://JbuZtXmD.zkjqj.cn
http://TZ0JmI26.zkjqj.cn
http://w0pO6heU.zkjqj.cn
http://0q7ORJrB.zkjqj.cn
http://3FxbNaXv.zkjqj.cn
http://0zBTQCnm.zkjqj.cn
http://r0ldSgUa.zkjqj.cn
http://acEKstF1.zkjqj.cn
http://LdJFv3nU.zkjqj.cn
http://kdtqfJP7.zkjqj.cn
http://j9jOq9ah.zkjqj.cn
http://P98Rf5zC.zkjqj.cn
http://67ftSpmk.zkjqj.cn
http://la2OxXjn.zkjqj.cn
http://m7KvfZSj.zkjqj.cn
http://6kZbm24i.zkjqj.cn
http://ggJg7eOL.zkjqj.cn
http://94iD9Ort.zkjqj.cn
http://akwh2BJc.zkjqj.cn
http://Scvuk2oS.zkjqj.cn
http://Yn9jdBN7.zkjqj.cn
http://OPUXvJoi.zkjqj.cn
http://2r4XezpR.zkjqj.cn
http://s7G1Q70P.zkjqj.cn
http://u82OeUCY.zkjqj.cn
http://HRtjsdd4.zkjqj.cn
http://XCtMBI6Y.zkjqj.cn
http://Dm1BB1OR.zkjqj.cn
http://www.dtcms.com/a/385750.html

相关文章:

  • 1.8、机器学习-XGBoost模型(金融实战)
  • Nosana发布公共GPU市场,释放去中心化AI算力无限潜能
  • 图灵完备性:计算理论的基石与无限可能
  • Fiddler使用教程 代理设置、HTTPS抓包与接口调试全流程指南
  • 手写MyBatis第63弹:MyBatis SQL日志插件完整实现:专业级SQL监控与调试方案
  • CrowS-Pairs:衡量掩码语言模型中社会偏见的挑战数据集
  • 认知语义学意象图式对人工智能自然语言处理中隐喻分析的影响与启示
  • 中小企业 4G 专网部署:性能与成本的最佳平衡
  • 解决照片内存告急和无公网访问,用Piwigo+cpolar组合刚刚好
  • SQLAlchemy使用笔记(二)
  • Linux服务器日志管理与分析(以journalctl为例)
  • 即插即用,秒入虚拟:TouchDIVER Pro 触觉手套 赋能 AR/VR 高效交互
  • CentOS系统修改网卡命名的方法总结
  • 超越RGB:移动设备多光谱成像的真实世界数据集
  • 固高运动卡与 Blaster 相机协同的飞拍系统:技术实现与应用案例
  • 无法定位程序输入点于动态链接库 kernel32.dll?深度解析与5种修复方法
  • Debian/Ubuntu/CentOS手动更换内核并开启BBR拥塞算法
  • vue 使用print.js 打印文本,HTML元素,图片,PDF
  • 软件研发的演变
  • OpenTSDB 部署与运维技术文档
  • 【第三方软件测评机构:Apache JMeter分布式负载测试过程】
  • 【案例教程】R语言数据统计分析与ggplot2高级绘图实践应用
  • 大数据时代时序数据库选型指南:为何 Apache IoTDB 成优选(含实操步骤)
  • qt QCandlestickLegendMarker详解
  • Apache IoTDB(6):深入解析数据库管理操作——增删改查与异构数据库实战指南
  • 华为任旭东:开源协作,激发创新,共创智能世界 | GOSIM HANGZHOU 2025
  • 领码方案|权限即数据:企业系统中的字段级访问控制架构实战(Ver=1.1)
  • 如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘lxml’ 问题
  • Linux -- 应用层协议Http
  • MongoDB 与 MySQL:异同详解与场景选择指南