K8s控制器

一、Replicaset控制器概述  

     RS是kubernetes中的副本控制器,全称Replicaset,主要作用是控制由其管理的pod,使pod的副本数量始终维持在预设的个数。保证一定数量的pod能够在集群中正常运行,rs会持续监听pod的运行状态,在pod发生故障时会自动重启pod,pod不足时,运行新的副本

    kubernetes官方不推荐直接使用,而是用Deployment取而代之,他是比rs更为高级的控制器,它可以管理rs并提供有用的特性,最重要的deployment支持声明式更新,好处就是不会丢失历史变更。所以deployment不会直接管理pod对象,而是由deployment管理replicaset,再由replicaset负责管理pod对象

1.2、Replicaset工作原理

    Replicaset核心是代用户创建指定副本,并确保pod副本一直处于满足用户期望的数量,起到多退少补的作用,并且还具有自动扩缩容机制。

   Replicaset控制器主要由三部分组成:

1、用户期望的副本数:用来指定此控制器管控的pod副本数量

2、标签选择器:指定哪些pod是自身管理的,如果通过标签选择器选到的pod副本数量少于用户指定数量,就要用到下面组件:

3、pod资源模板:如果集群中现存的pod数量不够用户定义的期望数量,控制器会新建pod

1.3Deployment概述

  Deployment是kubernetes常用控制器,为Reployment和pod的创建提供声明式定义,在Deployment中描述资源对象的期望状态,Deployemt会按照一定速率把实际状态改为期望状态,定义一个Deployment控制器会创建一个Repliaset控制器,通过Replicaset在创建pod。

  使用Deployment而不是直接使用Reployment,是因为Deployment拥有好的特性,如滚动升级和回滚等。

   声明式定义可以直接修改资源清单yaml文件,通过kubecat apply -f name.yaml命令就可以更改资源状态。

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

1.4Deployment工作原理

     典型的用例如下:

    使用 Deployment 来创建 ReplicaSet。ReplicaSet 在后台创建 pod。检查启动状态,看它是成功还是失败。然后,通过更新 Deployment 的 PodTemplateSpec 字段来声明 Pod 的新状态。这会创建一个新的 ReplicaSet,Deployment 会按照控制的速率将 pod 从旧的 ReplicaSet 移动到新的 ReplicaSet 中。如果当前状态不稳定,回滚到之前的 Deployment revision。每次回滚都会更新Deployment 的 revision。

    nginx的yaml简单定义

 

 

 对执行后的pod数量进行扩容

kubectl scale deployment nginx-deployment --replicas 10     

对其镜像版本进行升级

kubectl set image deployemt/nginx-deployemt nginx=nginx:1.19.6

对镜像版本进行回滚

kubectl rollout undo deployment/nginx-deployment

Deployment典型应用场景包括:

    定义Deployment来创建pod和replicaset

    滚动升级和回滚应用

    扩容和缩容

    暂停和继续Deployment

posted @   寻仙阁  阅读(151)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示