首页 > 其他分享 >kubernetes版本回滚

kubernetes版本回滚

时间:2024-08-26 12:37:07浏览次数:5  
标签:kubectl 回滚 rollback name kubernetes VERSION 版本 deployment test

1.创建待测试的Deployment。 echo " --- # Deployment apiVersion: apps/v1 kind: Deployment metadata:   name: rollback-test   labels:     app: rollback-test spec:   replicas: 1   selector:     matchLabels:       app: rollback-test   template:     metadata:       labels:         app: rollback-test     spec:       containers:       - name: rollback-test         image: registry.k8s.io/ingress-nginx/e2e-test-echo@sha256:6fc5aa2994c86575975bb20a5203651207029a0d28e3f491d8a127d08baadab4         ports:         - containerPort: 80         env:           - name: NODE_NAME             valueFrom:               fieldRef:                 fieldPath: spec.nodeName           - name: POD_NAME             valueFrom:               fieldRef:                 fieldPath: metadata.name           - name: POD_NAMESPACE             valueFrom:               fieldRef:                 fieldPath: metadata.namespace           - name: POD_IP             valueFrom:               fieldRef:                 fieldPath: status.podIP           - name: VERSION             value: "v1" " | kubectl apply -f - 2.获取POD的IP,并执行curl请求,查看响应结果。

#获取POD的IP
kubectl get pod -o wide
NAME                                READY   STATUS    RESTARTS   AGE     IP             NODE           NOMINATED NODE   READINESS GATES
rollback-test-56cd4bc4bc-m4vm4      1/1     Running   0          14s     10.43.0.12   192.168.1.20   <none>           <none>
#执行curl语句
curl 10.43.0.12|grep --regexp="\"VERSION\":\"\w\+\"" -o
"VERSION":"v1"
3.更改版本(VERSION)环境变量,并重复执行步骤2。
kubectl patch deployment rollback-test -p '{"spec":{"template":{"spec":{"containers":[{"name":"rollback-test", "env":[{"name": "VERSION", "value": "v2"}] }] }}}}'
kubectl get pod -o wide
[root@VM-16-12-tlinux ~]# kubectl get pod -o wide
NAME                                READY   STATUS    RESTARTS   AGE     IP             NODE           NOMINATED NODE   READINESS GATES
rollback-test-5fc7d8dbcb-67c2c      1/1     Running   0          23s     10.43.0.13   192.168.1.20 <none>           <none>
curl 10.43.0.13|grep --regexp="\"VERSION\":\"\w\+\"" -o
"VERSION":"v2"
4.重复步骤3,依次将版本设置为v3、v4、v5。
kubectl patch deployment rollback-test -p '{"spec":{"template":{"spec":{"containers":[{"name":"rollback-test", "env":[{"name": "VERSION", "value": "v3"}] }] }}}}'
deployment.apps/rollback-test patched
kubectl get pod -o wide
NAME                                READY   STATUS    RESTARTS   AGE     IP             NODE           NOMINATED NODE   READINESS GATES
rollback-test-79f9f664b5-2v9dw      1/1     Running   0          80s     10.43.0.14   192.168.1.20   <none>           <none>
curl 10.43.0.13|grep --regexp="\"VERSION\":\"\w\+\"" -o
"VERSION":"v3"

kubectl patch deployment rollback-test -p '{"spec":{"template":{"spec":{"containers":[{"name":"rollback-test", "env":[{"name": "VERSION", "value": "v4"}] }] }}}}' deployment.apps/rollback-test patched kubectl get pod -o wide NAME                                READY   STATUS    RESTARTS   AGE     IP             NODE           NOMINATED NODE   READINESS GATES rollback-test-58d697cd74-vdklk      1/1     Running   0          15s     10.43.0.15   192.168.1.20   <none>           <none> curl 10.43.0.15|grep --regexp="\"VERSION\":\"\w\+\"" -o "VERSION":"v4"
kubectl patch deployment rollback-test -p '{"spec":{"template":{"spec":{"containers":[{"name":"rollback-test", "env":[{"name": "VERSION", "value": "v5"}] }] }}}}' deployment.apps/rollback-test patched kubectl get pod -o wide NAME                                READY   STATUS    RESTARTS   AGE     IP             NODE           NOMINATED NODE   READINESS GATES rollback-test-79445d67bc-n6hv6      1/1     Running   0          6s      10.43.0.16   192.168.1.20   <none>           <none> curl 10.43.0.16|grep --regexp="\"VERSION\":\"\w\+\"" -o "VERSION":"v5" 5.查看历史版本并恢复到上一个版本。
kubectl rollout history deployment rollback-test
deployment.apps/rollback-test
REVISION  CHANGE-CAUSE
1         <none>
2         <none>
3         <none>
4         <none>
5         <none>

kubectl rollout undo deployment rollback-test
deployment.apps/rollback-test rolled back
kubectl get pod -o wide
NAME                                READY   STATUS    RESTARTS   AGE     IP             NODE           NOMINATED NODE   READINESS GATES
rollback-test-58d697cd74-xg45g      1/1     Running   0          6s      10.43.0.17   192.168.1.20   <none>           <none>
curl 10.43.0.17|grep --regexp="\"VERSION\":\"\w\+\"" -o
"VERSION":"v4"

kubectl rollout history deployment rollback-test
deployment.apps/rollback-test
REVISION  CHANGE-CAUSE
1         <none>
2         <none>
3         <none>
5         <none>
6         <none>
6.恢复到指定版本。
kubectl rollout undo deployment rollback-test --to-revision 2
deployment.apps/rollback-test rolled back
kubectl get pod -o wide
NAME                                READY   STATUS    RESTARTS   AGE     IP             NODE           NOMINATED NODE   READINESS GATES
rollback-test-5fc7d8dbcb-5j95x      1/1     Running   0          7s      10.43.0.18   192.168.1.20    <none>           <none>
curl 10.43.0.18|grep --regexp="\"VERSION\":\"\w\+\"" -o
"VERSION":"v2"

标签:kubectl,回滚,rollback,name,kubernetes,VERSION,版本,deployment,test
From: https://www.cnblogs.com/brightdays/p/18380805

相关文章

  • 网站提示505 HTTP Version Not Supported:服务器不支持请求的HTTP版本怎么办
    当遇到“505HTTPVersionNotSupported”错误时,这意味着服务器不支持客户端请求中使用的HTTP版本。这种情况通常发生在客户端尝试使用较新的HTTP版本,而服务器仅支持老版本的协议时。解决方案检查客户端使用的HTTP版本确认客户端使用的HTTP版本。如果客户端使用的是HTTP/......
  • 【K8s】专题十二(3):Kubernetes 存储之 PersistentVolumeClaim
    本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发、订阅专栏!专栏订阅入口Linux专栏 | Docker专栏 | Kubernetes专栏往期精彩文章【Docker】(全网首发)KylinV10下MySQL容器内存占用异常的解决方法【Docker】(全网首发)Kyli......
  • conda | 00-批量显示各环境的torch版本
    前言:做科研的时候我们都需要配置各种各样的虚拟环境,如果你的服务器已经有很多虚拟环境了,我想告诉你:不用配置!不用配置!不用配置!秘诀就是在所有环境中找到一个最匹配的环境,直接复制来用。即便你已经对conda的环境配置驾轻就熟,这种方法依然能够节省你大量的时间。批量显示(1)你可......
  • Centos7(最小化安装)系统源代码安装mysql5.7.44版本
    官网下载mysql源代码安装包步骤(旧档案-版本下载方式)-CSDN博客下载cmake操作步骤-CSDN博客下载ncurses操作步骤-CSDN博客下载bison操作步骤-CSDN博客下载boost操作步骤-CSDN博客安装之前由于是最小化安装centos7安装一些开发环境和工具包文章使用国内阿里源cd/etc/yum.r......
  • 06--kubernetes.pod管理与投射数据卷
    前言:上一章记录了部署k8s常用的两个方式,这一章就简单一些,整理一下k8s资源对象的配置和管理命令。1、集群状态检查前天搭建的环境,然后关机了两天今天开启后第一时间需要检查集群环境是否正常[root@k8s-master1~]#kubectlgetnodeNAMESTATUSROLESAGE......
  • Kubernetes 与 dockershim
    dockershim是什么?https://v1-27.docs.kubernetes.io/zh-cn/blog/2022/05/03/dockershim-historical-context/在Kubernetes的早期,只支持一个ContainerruntimesDockerEngine,当时并没有太多其他选择,而Docker是使用容器的主要工具,所以这不是一个有争议的选择。之后kuberne......
  • Kubernetes前提条件准备
    环境条件升级内核修改内核参数配置cgroup安装CRI内核参数配置网络流量转发cat<<EOF|sudotee/etc/modules-load.d/k8s.confoverlaybr_netfilterEOF 启用模块modprobeoverlaymodprobebr_netfilter 调整内核参数net.ipv4.ip_forward......
  • Kubernetes大规模集群
    Kubernetes资源限制Kubernetes单个集群支持的最大节点数为5,000。Kubernetes标准的配置:每个节点的Pod数量不超过110节点数不超过5,000Pod总数不超过150,000容器总数不超过300,000你可以通过添加或删除节点来扩展集群。集群扩缩的方式取决于集群的部署方式以下集......
  • Kubernetes 从0到1
    Kubernetes建设考虑点部署一套Kubernetes集群需要考虑多个方面,包括应用层面、中间件、数据库、流量入口等。以下是一些关键方面:基础设施:选择适当的云提供商或物理硬件来部署Kubernetes集群。确保网络和存储资源的可用性和性能。考虑集群的地理位置和可用性区域。以上综合......
  • Kubernetes v1.28.2 & Calico eBPF
    集群初始化简略步骤初始化集群kubeadminit\--skip-phases=addon/kube-proxy\--apiserver-cert-extra-sans=35.229.220.159,127.0.0.1,10.0.0.3,10.0.0.4,10.0.0.5,10.254.0.2\--control-plane-endpoint=apiserver.unlimit.club\--apiserver-advertis......