pod控制器

1、定义

又称工作负载,用于管理pod的中间层,确保pod资源符合预期的状态(副本数、容器的重启策略、镜像拉取策略、pod出现故障时的重启等)

2、控制器类型

replicaSet

指定pod副本的数量。三个组件:①pod的副本数②标签选择器(判断哪个pod归自己管理)③扩缩容

Deployment

工作在replicaSet之上的。目前最好的控制器,支持滚动更新和回滚,并提供声明式配置。管理无状态的应用

statefulSet

可以设置副本数、扩缩容,pod的序号是固定的,重启后pod的名称不会发生变化。管理有状态的应用

DaemonSet

可以在所有节点部署一个相同的pod,没有副本数,可以限制部署的节点,服务必须是守护进程。管理无状态的应用

job

工作pod控制器。执行完成即刻退出,不需要重启,也不需要重建

cronjob

周期性的定时任务控制器。无需在后台持续运行

无状态应用:pod名称是无序的,所有pod都是一体的,所有deployment下的pod共享一个存储

有状态应用:pod名称是有序的(0到N),所有pod都是独立的,存储卷也是独立的,删除也不会改变pod的序号,扩缩容也是有序扩缩容

3、pod与控制器的关系

pod通过标签label与selector进行关联

(1)DaemonSet控制器

无状态应用:pod名称是无序的,所有pod都是一体的,所有deployment下的pod共享一个存储建议web终端不要加此字段,否则会导致服务中断,也会中断业务

Deployment的默认策略(一般不动)

maxSurge: 25%

升级过程中,新启动的pod数量不能超过期望pod数的25%

maxUnavailable: 25%

升级过程中,新pod启动成功后,销毁的旧的pod数量不能超过期望pod的25%

(2)statefulSet控制器(结合动态pv)

有状态应用:pod名称是有序的(0到N),所有pod都是独立的,存储卷也是独立的,删除也不会改变pod的序号,扩缩容也是有序扩缩容

扩容:

缩容:

statefulSet控制器的特点

 headless service无头服务

没有clusterIP,是k8s集群中一种特殊的服务类型,不分配ClusterIP给service,也不会负载均衡到后端pod,由DNS来提供服务的发现和访问,由于ClusterIP是空的,所以k8s集群会给每个headless service中的pod创建一个DNS记录

格式:pod-name.headless-service-name.namespace.svc.cluster.local

web-0

nginx-web

defaults

本地地址(pod的IP地址)

通过DNS直接解析访问pod的IP地址

web-0 10.244.1.10

 必须有动态pvc

有状态的副本集群都会涉及持久化存储,每个pod是独立个体,每个pod都有一个自己的专用的存储点,statefulSet在定义时已规定每个pod不能使用同一个存储卷,所以需要动态pv

为什么用headless service无头服务?

有序、独立个体。deployment的pod是无序的,没有名称的随机字符串,需要一个集中的clusterIP来集中统一为这些pod提供一个网络服务。statefulSet是有序的,且pod名称是固定的,重建之后pod的标识符也不变(pod名称是唯一的标识符),系统直接通过pod名称解析pod的IP地址(pod名称不变,类似于访问百度一样,即便有多个IP地址,访问域名即可访问IP地址)

②应用场景

 不是固定节点的应用,不是固定IP的应用

 更新、发布较频繁

 支持自动伸缩。节点的资源不够时可以自动扩

(3)daemonSet控制器(用于后台运行的网络)

作用:确保每个节点上都会创建一个pod,无法指定副本数。若有node加入集群,也会为它新增一个pod;当node节点从集群中移除时,pod也会被回收

①节点随机部署pod

注:daemonset无法指定副本数

注:即便没有指定副本数,也会在每个节点上创建一个pod

②指定节点标签部署pod

注:不需要指定调度策略,默认会在每个节点创建一个pod,除非节点上设置了污点,不会在此节点上创建pod。可以通过指定的方式把daemonset部署在指定的节点基于控制器创建的pod,delete相当于重启,要彻底删除pod必须删除控制器

在delete pod容器之前要查看是基于控制器创建的,还是自主式创建pod。基于控制器创建的pod可以delete相当于重启,dalete删除自主式创建的pod是真的删除(慎重)

(4)job控制器(普通任务)

作用

适用于只需要执行一次的任务。比如脚本、数据库迁移、视频解码等业务

②特点

• 必须指定容器的重启策略OnFailure或Never;

• 失败次数默认是6次;

• 更新yaml文件,必须先删除任务再更新,无法动态更新

对于k8s系统来说,既然已定义job,即只需要执行一次或指定次数,不能一直运行

(5)cronjob控制器(定时任务)

周期性任务定时执行。与linux的crontab语法一样

①格式:分 时 日 月 周

②应用场景:定时备份、通知、定时检测(结合探针一起)

③特点

• 失败次数默认是3次

• 必须设置pod的重启策略

  • 25
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
K8s中的Pod控制器是用来管理和控制Pod的一种机制。Pod控制器负责创建、启动、停止、重启和删除Pod,以及监控和调节Pod的状态。Pod和Controller之间是通过label标签来建立关系,Controller又被称为控制器工作负载。Pod控制器可以根据需要创建多个Pod实例,以满足应用程序的需求。 常见的Pod控制器包括Deployment、ReplicaSet、StatefulSet和DaemonSet等。Deployment控制器是K8s中最常用和最重要的Pod控制器之一。它通过创建和管理ReplicaSet来实现对Pod的控制。Deployment控制器可以定义应用的副本数、升级和回滚策略,以及弹性伸缩等功能。通过使用Deployment控制器,可以方便地部署和管理应用程序。 在使用K8s时,可以使用yaml文件来定义Pod控制器的配置和参数。通过指定不同的字段和数值,可以实现对Pod控制器的定制化配置。例如,可以在yaml文件中指定应用程序的镜像、资源需求、副本数等信息。 总结来说,K8s中的Pod控制器是用来管理和控制Pod的机制,通过label标签与Pod建立关系。常见的Pod控制器包括Deployment、ReplicaSet、StatefulSet和DaemonSet。使用yaml文件可以对Pod控制器进行配置和定制化。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [k8s技术交流,包括Pod概念和特点Pod种类Pod镜像拉取策略Pod重启策略Pod控制器Pod探针、Pod调度](https://download.csdn.net/download/lingmeng447/85358750)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【k8s】6、pod控制器](https://blog.csdn.net/hancoder/article/details/118064163)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值