k8s中使用Deployment控制器实现升级、回滚、弹性伸缩

前置条件:linux机器已安装k8s集群

  1. 基于yaml文件创建pod,本次创建pod使用的web.yaml如下

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: web
  name: web
spec:
  replicas: 2
  selector:
    matchLabels:
      app: web
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: web
    spec:
      containers:
      - image: nginx:1.14
        name: nginx
        resources: {}
status: {}

注:replicas: 2表示创建两个pod;

nginx:1.14表示使用的nginx镜像版本号是1.14

创建命令

kubectl apply -f web.yaml
  1. 此时我们已经创建好了两个pod,如果想升级nginx镜像的版本,例如从1.14升级到1.15,执行命令

kubectl set image deployment web nginx=nginx:1.15

当新升级后的pod成功启动后,原来的pod才会停止服务

可以执行如下命令,查看镜像是否升级成功

kubectl rollout status deployment web

执行命令查看历史版本

kubectl rollout history deployment web

序号1表示nginx镜像没升级前的1.14版本,序号2表示最新版本

  1. 当我们升级过nginx镜像之后,如果新版本的镜像问题很多,此时我们需要回滚,执行命令

kubectl rollout undo deployment web

表示回滚到上一个版本,即回滚到nginx镜像为1.14

如果我们想回滚到指定的某个版本,执行如下命令

kubectl rollout undo deployment web --to-revision=2
  1. 弹性伸缩

刚我们创建了两个pod,如果我们想pod弹性扩展到5个,可以执行命令

kubectl scale deployment web --replicas=5

然后我们执行kubectl get pods查看,共有5个pod

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.youkuaiyun.com/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.youkuaiyun.com/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、付费专栏及课程。

余额充值