k8s-Pod资源管理与控制器
一、Pod特点:1、最小部署单元2、一组容器的集合3、一个Pod中的容器共享网络命名空间4、Pod是短暂的二、Pod分类:1、infrastructure container:基础容器概念:维护整个Pod网络空间,在每个节点上都操作,每次创建Pod时候就会自动创建,与Pod对应的,对于用户是透明的。2、initcontainers:初始化容器概念:先于业务容器开始执行,不见得一定要有,要有pod顺
·
一、Pod特点:
- 1、最小部署单元
- 2、一组容器的集合
- 3、一个Pod中的容器共享网络命名空间
- 4、Pod是短暂的
二、Pod分类:
- 1、infrastructure container:基础容器
- 概念:维护整个Pod网络空间,在每个节点上都操作,每次创建Pod时候就会自动创建,与Pod对应的,对于用户是透明的。
- 2、initcontainers:初始化容器
- 概念:先于业务容器开始执行,不见得一定要有,要有pod顺序要求的话就必须要有
- 3、container:业务容器
- 概念:跑生产项目业务的
三、pod的镜像拉取策略(image PullPolicy):
- 1、IfNotPresent:默认值,镜像在宿主机上不存在时才从官网拉取
- 2、Always:每次创建Pod都会重新拉取一次镜像
- 3、Never:Pod永远不会主动拉取这个镜像
四、pod的资源限制:
- 1、requests:
memory: “64Mi” >>>>>>>创建时分配的基本内存资源
cpu: “250m” >>>>>>> 创建时分配的基本CPU资源 - 2、 limits:
memory: “128Mi” >>>>>>>内存上限 mi:兆
cpu: “500m” >>>>>>>cpu上限 m:权重
五、pod的重启策略:
- 1、基本概念: Pod在遇到故障之后重启的动作。 restartPolicy:
- 2、类型:
1、Always:当容器终止退出后,总是重启容器,默认策略
2、OnFailure:当容器异常退出(退出状态码非0)时,重启容器
3、Never:当容器终止退出,从不重启容器。
4、注意:k8s中不支持重启Pod资源,只有删除重建
六、pod的健康检查(probe):
- 1、结果处理方式:
1、livenessProbe : 如果检查失败,将杀死容器,根据Pod的restartPolicy来操作。
2、ReadinessProbe : 如果检查失败,kubernetes会把Pod从service endpoints(群集)中剔除。 - 2、Probe支持三种检查方法:
1、httpGet :发送http请求,返回200-400范围状态码为成功。
2、exec :执行Shell命令返回状态码 是0为成功。非0:失败!
3、tcpSocket :发起TCP Socket建立成功 “tcp三次握手!
七、pod的调度方式:
- 1、nodeName: 用于将Pod调度到指定的Node名称上 (跳过调度器直接分配)
- 2、nodeSelector: 用于将Pod调度到匹配Label的Node上 (经过调度器分配)
八、pod的常见状态:
- 1、Pending:
Pod创建已经提交到Kubernetes。但是,因为某种原因而不能顺利创建。例如下载镜像慢,调度不成功。 - 2、Running:
Pod已经绑定到一个节点,并且已经创建了所有容器。至少有一个容器正在运行中,或正在启动或重新启动。 - 3、Succeeded:
Pod中的所有容器都已成功终止,不会重新启动。 - 4、Failed:
Pod的所有容器均已终止,且至少有一个容器已在故障中终止。也就是说,容器要么以非零状态退出,要么被系统终止。 - 5、Unknown:
由于某种原因apiserver无法获得Pod的状态,通常是由于Master与 Pod所在主机kubelet通信时出错。
九、pod控制器:
- 1、概念: 又称之为工作负载,分别包含以下类型控制器
- 2、分类:
- 1、Deployment:
- 1、部署无状态应用
- 2、管理Pod和ReplicaSet
- 3、具有上线部署、副本设定、滚动升级、回滚等功能
- 4、提供声明式更新,例如只更新一个新的Image
- 5、应用场景:web服务
- 2、SatefulSet:
- 1、部署有状态应用
- 2、解决Pod独立生命周期,保持Pod启动顺序和唯一性
- 3、稳定,唯一的网络标识符,持久存储(例如:etcd配置文件,节点地址发生变化,将无法使用)
- 4、有序,优雅的部署和扩展、删除和终止(例如:mysql主从关系,先启动主,再启动从),滚动更新
- 5、应用场景:数据库
- 3、DaemonSet :
- 1、在每一个Node上运行一个Pod
- 2、新加入的Node也同样会自动运行一个Pod
- 3、应用场景:Agent
- 4、Job:
- 1、Job分为普通任务(Job)和定时任务(CronJob)
- 2、一次性执行
- 3、应用场景:离线数据处理,视频解码等业务
- 5、CronJob :
- 1、周期性任务,像Linux的Crontab一样。
- 2、周期性任务
- 3、应用场景:通知,备份
- 1、Deployment:
更多推荐
已为社区贡献6条内容
所有评论(0)