图解kubernetes控制器Deployment核心机制
图解kubernetes控制器Deployment核心机制
Deployment是k8s中部署更新的关键实现,今天我们一起初探下其关键机制包括: 暂停、回滚、扩缩容、更新策略的实现
1. 基础概念
Deployment本质上其实只是一种部署策略,在了解其实现之前,先简单介绍一下部署系统里面常见的概念,Deployment里面的各种参数和设计其实也都是围绕着这些展开的
1.1 ReplicaSet
Deployment本身并不直接操作Pod,每当其更新的时候通过构建ReplicaSet来进行版本更新,在更新的过程中通过scale up(新的RS)和scale down(旧的RS)来完成
1.2 部署状态
在k8s的官方文档中主要是介绍了Deployment的三种状态, 对应的Condition分别为Available、Progressing、ReplicaFailure三种状态, 并且每个状态下面又会很有导致对应状态切换的不同的Reson,Reson可能是运维过程中最需要关注的点
1.3 部署策略
部署策略是Deployment控制ReplicaSet更新的策略,通过对新旧ReplicaSet的扩缩容,再满足部署策略的情况下,将系统更新至最新的目标状态,Deployment本身并没有太多可选的策略,默认只有两种Recreate和RollingUpdate 在一些大版本产品更新的时候,新旧版本的数据库模型都不一致的情况下,通常会选择停服操作,此时可以选择Recreate即将所有老的副本都干掉,然后重新创建一批。当然默认情况下大部分业务还是RollingUpdate即滚动更新即可
1.4 可用性与高低水位
部署过程中最常被提到的可能就是可用性问题了,即在更新的过程中(RollingUpdate策略下)需要保证系统中可用的Pod在一个指定的水位,保证对应服务的可用性 高低水位(deployment并没有这个词)其实就是对应的上面的可用性来说的,Deployment通过一些参数让我们可以自由控制在滚动更新的过程中,我们可以创建的Pod的最多数量(高水位)和可以删除的最多的Pod(低水位), 从而达到可用性保护的目标
部署的概念就介绍到这里, 接下来就一起看看Deployment中这些关键机制的具体实现
- 大连软件行业概况
- Http Digest 认证
- android studio 打包cocos creator项目
- 智源社区AI周刊No.101:DeepMind推出AlphaTensor登Nature封面;stateof.ai发布AI情况报告...
- 网络安全和黑客技能:15本必读书籍推荐
- Unity数据可视化 温度图效果(一)
- 职场杂谈
- 朴素贝叶斯、贝叶斯网络分类器
- gallery3D(3)
- 如何下载并使用HTK工具包
- mmap。
- VSS使用技巧
- SAP 启动物料帐后不可更改物料价格的处理方法
- check(check out)
- Idea 打包JAVA项目
- (Python)异常处理try...except、raise
- PHP使用header实现文件下载功能