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

K8S学习之基础十四:k8s中Deployment控制器概述

Deployment控制器概述:

Deployment控制器是k8s中最常用的资源对象,为Replicaset和Pod创建提供了一种声明式的定义方法,在Deployment对象中描述一个期望的状态,Deployment控制器就会按照一定的控制速率把实际状态改成期望状态,通过定义一个Deployment控制器会创建一个新的ReplicaSet控制器,通过ReplicaSet创建Pod。删除Deployment控制器,也会删除Deployment控制器下对应的Replicaset控制器和Pod资源。

使用Deployment控制器而不是直接使用ReplicaSet,是因为Deployment对象拥有很多ReplicaSet没有的特性,比如滚动升级、金丝雀发布、蓝绿部署和回滚等。

声明式定义是指直接修改资源清单yaml文件,然后通过 kubectl apply -f *.yaml的方式,就可以更改资源

Deployment是建立在rs之上的一个控制器,可以管理多个rs,每次更新镜像版本,都会生成一个新的rs,把旧的rs替换掉,多个rs同时存在,但是只有一个rs运行

rs v1控制三个pod,删除一个pod,在rs v2上重新建立一个,依次类推,直到全部都是由rs v2控制,如果rs v2有问题,还可以回滚,Deployment是建构在rs之上的,多个rs组成一个Deployment,但是只有一个rs处于活跃状态.

Deployment工作原理:如何管理rs和pod

通过Deployment对象,可以轻松做到以下事情:

  1. 创建ReplicaSet和Pod
  2. 滚动升级和回滚应用
  3. 平滑扩容和缩容
  4. 暂停和继续Deployment

更新策略中的rollingupdate计算:

maxSurge(默认25%):最大允许个数(直接用)或百分比(往上加), 如 5+5*25%计算为 7

maxUnavailable(默认25%):最小允许个数(直接用)或百分比(往下减), 如 5-5*25%  计算为 4

Deployment的yaml文件:

vi deploy-demo.yaml
kind: Deployment
metadata:
  name: myapp-v1
spec:
  replicas: 2
  selector:
    matchLabels:
      app: myapp
      version: v1
  template:
    metadata:
      labels:
        app: myapp
        version: v1
    spec:
      containers:
      - name: myapp
        image: 172.16.80.140/myapp/myapp:v1
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80

三者的名字也有关系:deploy-->replicas-->pod

访问pod返回v1版本

相关文章:

  • 推荐一个基于Koin, Ktor Paging等组件的KMM Compose Multiplatform项目
  • 机器学习之无监督学习
  • 一文解锁基于 MemryX 与 RK3588 的边缘 AI “王炸” 组合解决方案
  • 【网络安全】——协议逆向与频繁序列提取:从流量中解码未知协议
  • BasicToolNode(tools=[search_tool, lookup_policy, query_sqldb])的内部执行逻辑
  • 珈和科技亮相CCTV-13《新闻直播间》,AI多模态农业大模型引领智慧农业新变革
  • conda的作用
  • C#调用Ni板卡进行实现采集任务(模拟量输入输出)示例2
  • 基于java,SpringBoot和Vue的医院药房药品管理系统设计
  • 【YOLOv12改进trick】多核Inception网络PKINet,替换YOLO骨干网络,创新涨点优化,含创新点Python代码,方便发论文
  • C语言常用的头文件,include文件
  • 【Maven】基于IDEA学习 Maven依赖 与 工程继承、聚合关系
  • Java面试总结
  • Linux Shell脚本-分隔符问题
  • java应用终止进程方式
  • Spring提供的SPEL表达式
  • Linux - 工具
  • 【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(七) -> JS动画(二)
  • 计算机毕业设计SpringBoot+Vue.js青年公寓服务平台(源码+文档+PPT+讲解)
  • MySQL 唯一索引下先事务A插入再事务B当前读是否阻塞问题
  • 公司做社交网站诈骗/2022年搜索引擎优化指南
  • 简单的网站开发工具/电脑培训网上课程
  • 怎么用链接提取视频保存/seo谷歌外贸推广
  • 用爱站工具包如何做网站地图/下载百度极速版
  • 焦作会计做继续教育在哪个网站/软件外包公司
  • 做百度手机网站优化点/湖南有实力seo优化哪家好