首页 > 其他分享 >在K8S中,RS资源如何实现升级和回滚?

在K8S中,RS资源如何实现升级和回滚?

时间:2024-02-25 09:03:49浏览次数:26  
标签:kubectl 回滚 ReplicaSet RS Deployment deployment K8S

在Kubernetes中,ReplicaSet(简称RS)是工作负载API对象,用于确保指定数量的Pod副本在集群中运行。当需要升级或回滚RS管理的Pod时,可以通过修改ReplicaSet的配置来实现。下面是如何实现RS资源的升级和回滚的步骤:

升级RS资源
  1. 修改ReplicaSet的配置
    要升级RS,您需要修改其对应的Deployment或直接修改ReplicaSet的配置。通常,我们会修改Deployment的配置,因为Deployment控制器会管理其对应的ReplicaSet。

    例如,您可以增加容器的镜像版本、修改环境变量、更改资源限制等。一旦修改了Deployment的配置,Deployment控制器会检测到这个变化,并相应地更新其管理的ReplicaSet。

    apiVersion: apps/v1  
    kind: Deployment  
    metadata:  
      name: my-deployment  
    spec:  
      template:  
        spec:  
          containers:  
            - name: my-container  
              image: my-image:new-version  # 修改镜像版本以实现升级
    
  2. 应用修改
    使用kubectl apply命令应用修改后的配置。

    kubectl apply -f deployment.yaml
    
  3. 滚动更新
    Kubernetes会执行滚动更新策略,逐步替换旧的Pod副本为新的Pod副本,确保服务在升级过程中仍然可用。

回滚RS资源
  1. 查看Deployment历史记录
    在执行回滚之前,您可以使用kubectl rollout history命令查看Deployment的历史记录,以确定要回滚到的版本。

    kubectl rollout history deployment/my-deployment
    
  2. 执行回滚操作
    使用kubectl rollout undo命令执行回滚操作。如果您想回滚到特定的历史版本,可以指定--to-revision参数。

    # 回滚到上一个版本  
    kubectl rollout undo deployment/my-deployment  
     
    # 回滚到指定版本  
    kubectl rollout undo deployment/my-deployment --to-revision=3
    
  3. 监视回滚进度
    您可以使用kubectl rollout status命令来监视回滚操作的进度。

    kubectl rollout status deployment/my-deployment
    

综上所述,升级和回滚操作通常是通过修改和管理Deployment来间接完成的,因为Deployment控制器会管理其对应的ReplicaSet。如果您直接操作ReplicaSet,需要更加谨慎,并确保您了解这样做的影响。此外,升级和回滚操作期间,建议对集群进行监控,以确保服务可用性和性能。

标签:kubectl,回滚,ReplicaSet,RS,Deployment,deployment,K8S
From: https://www.cnblogs.com/huangjiabobk/p/18031916

相关文章

  • 在K8S中,SVC资源是否支持在K8S集群外部访问?
    在Kubernetes(K8S)中,Service资源可以通过特定类型支持在集群外部访问。以下是一些可以提供外部访问能力的Service类型:NodePort:NodePort服务会将服务映射到每个节点上的一个静态端口(范围默认为30000-32767)。通过这个端口,集群外部可以直接通过任意节点的IP地址和该NodePort来......
  • 在K8S中,如何实现金丝雀发布(灰度发布)?蓝绿发布?
    在Kubernetes(K8s)中,可以通过不同的策略来实现金丝雀发布(灰度发布)和蓝绿发布。以下是两种发布方式在K8s中的基本实现方法:金丝雀发布(灰度发布)金丝雀发布是一种逐步将新版本应用推送给部分用户群体,以收集反馈并监控新版本表现的方式。在K8s中,可以通过以下步骤实现:基于Deploym......
  • 在K8S中,如何让Pod运行一次?如何解决一次性任务?
    在Kubernetes(K8S)中,要让Pod运行一次并完成一次性任务,可以使用Job资源。Job是Kubernetes中用于运行一次性任务的工作负载API对象。它创建一个或多个Pod,并确保指定数量的Pod成功终止。当Pod成功完成后,Job将跟踪成功完成的情况。当达到指定的成功完成次数时,任务(即Job)就完成了。以下是......
  • 在K8S中,如果解决周期性任务?
    在Kubernetes(K8S)中,解决周期性任务可以使用CronJob资源。CronJob是Kubernetes提供的一种工作负载API对象,它允许你根据预定的时间表(类似于Unix系统的cron作业)来周期性地运行任务。以下是如何使用CronJob来解决周期性任务的步骤:创建CronJob资源配置文件:创建一个YAML文件(例如cron......
  • Java RSA 加解密工具类,直接用
    importorg.junit.Test;importjavax.crypto.Cipher;importjavax.crypto.NoSuchPaddingException;importjava.io.ByteArrayOutputStream;importjava.nio.charset.Charset;importjava.nio.charset.StandardCharsets;importjava.security.*;importjava.security.i......
  • Shrink-Reverse
    题目传送门有趣的字符串题!抢在官方题解之前写一篇题解。思路因为需要使字符串代表的整数最小化,所以我们显然要删除前导零后的最终序列长度尽可能小。我们发现为了达成这个目的,可以把所有的\(1\)都聚集到一个区间内,不妨设这个区间是\([l,r]\)。那么\(1\dotsl-1\)和\(r......
  • Erase First or Second Letter
    先来看一下官方解答首先对任意一个操作序列,如果存在某次操作二排在相邻的操作一前面,那我们把这两次操作换成连续的两次操作一,得到的字符串显然不变所以我们可以先一直进行操作一,然后在进行操作二,我们把一种操作序列记为\((i,j)\),表示进行了\(i\)次操作一之后进行了\(j\)次操作二......
  • powershell 获取 CPU RAM DISK 序列号
    PowerShell中获取CPU序列号可以通过WMI(WindowsManagementInstrumentation)来实现。下面是一个示例代码,演示如何在PowerShell中获取CPU序列号:powershellCopyCode#使用WMI获取CPU信息$cpu=Get-WmiObject-ClassWin32_Processor|Select-ObjectName,Processo......
  • C# 的显示转换 *.Parse(string) Convert.ToInt32(double value)
    //显式转换(类型)///(int)表示使用强制的显示转换,是一种类型转换,C#默认的整形是int32,///因此使用此方法转成int32不遵循四舍五入,直截取整数部分///(int)5.12结果是5///Int.Parse()指把string类型转换int......
  • 【论文随笔】会话推荐系统综述(A Survey on Conversational Recommender Systems)
    前言今天读的论文为一篇于2021年5月发表在《ACM计算机调查》(ACMComputingSurveys)的论文,文章提供了对话式推荐系统(CRS)的全面综述,探讨了CRS的定义、概念架构、交互方式、知识元素、计算任务以及评估方法。文章还讨论了CRS在不同应用环境中的实现,如智能家居助手和聊天机器人,并指......