图解kubernetes控制器Deployment核心机制

本文详细解析了Kubernetes中的Deployment控制器,涵盖基础概念如ReplicaSet、部署状态和策略,核心实现包括暂停、回滚、扩缩容及RollingUpdate策略的详细步骤,旨在揭示Deployment确保服务可用性和更新流畅性的机制。
摘要由CSDN通过智能技术生成

Deployment是k8s中部署更新的关键实现,今天我们一起初探下其关键机制包括: 暂停、回滚、扩缩容、更新策略的实现

1. 基础概念

Deployment本质上其实只是一种部署策略,在了解其实现之前,先简单介绍一下部署系统里面常见的概念,Deployment里面的各种参数和设计其实也都是围绕着这些展开的

1.1 ReplicaSet

image.png 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 image.png 在一些大版本产品更新的时候,新旧版本的数据库模型都不一致的情况下,通常会选择停服操作,此时可以选择Recreate即将所有老的副本都干掉,然后重新创建一批。当然默认情况下大部分业务还是RollingUpdate即滚动更新即可

1.4 可用性与高低水位

部署过程中最常被提到的可能就是可用性问题了,即在更新的过程中(RollingUpdate策略下)需要保证系统中可用的Pod在一个指定的水位,保证对应服务的可用性 image.png 高低水位(deployment并没有这个词)其实就是对应的上面的可用性来说的,Deployment通过一些参数让我们可以自由控制在滚动更新的过程中,我们可以创建的Pod的最多数量(高水位)和可以删除的最多的Pod(低水位), 从而达到可用性保护的目标

部署的概念就介绍到这里, 接下来就一起看看Deploym

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值