码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【云原生之k8s】K8s 管理工具 kubectl 详解(三)


    文章目录

    • 金丝雀发布/灰度发布(Canary Release)
      • 1、金丝雀发布简介
      • 2、更新deployment的版本,并配置暂停deployment
        • 2.1 创建pods
        • 2.2 发布服务
        • 2.3 查看nginx版本
        • 2.4 定义版本change-cause
        • 2.4.1 查看历史版本
        • 2.4.2 定义版本
        • 2.4.3 再次查看历史版本
        • 2.4.4 更新nginx版本为1.15并配置暂停
        • 2.4.5 观察更新状态
        • 2.4.6 监控更新的过程
        • 2.4.7 查看nginx版本
        • 2.4.8 查看并更新历史版本change-cause
        • 2.4.9 resume继续更新
        • 2.4.10 查看最后的更新情况

    在这里插入图片描述

    金丝雀发布/灰度发布(Canary Release)

    1、金丝雀发布简介

    Deployment控制器支持自定义控制更新过程中的滚动节奏,如“暂停(pause)”或“继续(resume)”更新操作。比如等待第一批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主体部分还是旧的版本。然后,在筛选一小部分的用户请求路由到新版本的Pod应用,继续观察能否稳定地按期望的方式运行。确定没问题之后再继续完成余下的Pod资源滚动更新,否则立即回滚更新操作。这就是所谓的金丝雀发布。

    2、更新deployment的版本,并配置暂停deployment

    2.1 创建pods

    kubectl create deployment nginx-test --image=nginx:1.14 --replicas=3
    kubectl get pods,deploy -o wide
    
    • 1
    • 2

    在这里插入图片描述

    2.2 发布服务

    kubectl expose deploy nginx-test --port=80 --target-port=80 --name=nginx-service --type=NodePort
    kubectl get svc -o wide
    
    • 1
    • 2

    在这里插入图片描述

    2.3 查看nginx版本

    curl -I 192.168.109.11:31811
    kubectl describe deployment nginx-test | grep Image
    
    • 1
    • 2

    在这里插入图片描述

    2.4 定义版本change-cause

    2.4.1 查看历史版本

    在不定义CHANGE-CAUSE的情况下,缺省值为,当历史版本较多时,不便于咱们回滚时辨认版本号。因此,建议定义CHANGE-CAUSE为服务版本以帮助咱们辨认当前服务。

    kubectl rollout history deploy/nginx-test
    
    • 1

    在这里插入图片描述

    2.4.2 定义版本

    一般通过修改配置的方式定义change-cause

    [root@master ~]# kubectl edit deploy/nginx-test
    
    ......
    kind: Deployment
    metadata:
      annotations:
    #下行可定义历史版本revision
        deployment.kubernetes.io/revision: "1"
    #在Deployment的matadata项下的annotations中如下行定义change-cause
        kubernetes.io/change-cause: "nginx1.14"
    ......
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述

    2.4.3 再次查看历史版本

    kubectl rollout history deploy/nginx-test
    
    • 1

    在这里插入图片描述

    2.4.4 更新nginx版本为1.15并配置暂停

    kubectl set image deploy/nginx-test nginx=nginx:1.15 && kubectl rollout pause deploy/nginx-test
    
    • 1

    在这里插入图片描述

    2.4.5 观察更新状态

    kubectl rollout status deploy/nginx-test
    
    • 1

    在这里插入图片描述

    2.4.6 监控更新的过程

    可以看到已经新增了一个pod,但是并未按照预期的状态去删除一个旧的资源,就是因为使用了pause暂停命令

    kubectl get pods -w
    
    • 1

    在这里插入图片描述

    2.4.7 查看nginx版本

    kubectl get pod -o wide
    
    • 1

    在这里插入图片描述

    2.4.8 查看并更新历史版本change-cause

    kubectl rollout history deploy/nginx-test
    
    • 1

    在这里插入图片描述

    [root@master ~]# kubectl edit deploy/nginx-test
    
    kind: Deployment
    metadata:
      annotations:
    #下行的revison自动更新为2
        deployment.kubernetes.io/revision: "2"
    #修改下行的change-cause为nginx1.15
        kubernetes.io/change-cause: nginx1.15
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述
    在这里插入图片描述

    2.4.9 resume继续更新

    测试新版本没问题继续更新

    kubectl rollout resume deploy/nginx-test
    
    • 1

    在这里插入图片描述

    2.4.10 查看最后的更新情况

    kubectl get pods -w
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    高级人工智能系列(一)——贝叶斯网络、概率推理和朴素贝叶斯网络分类器
    2.【openCV常用函数模板】
    不相交集类 (并查集)
    LeetCode75——Day13
    windows平台下的mysql启动等基本操作
    Angular知识点系列(1)-每天10个小知识
    【尚品汇】项目笔记
    来看下这篇文章,教你如何实现一个SpringBoot的Mybatis分库分表组件
    Docker搭建Redis集群
    【语义分割】13、SegNeXt | 只要卷积用得好 提升语义分割没烦恼
  • 原文地址:https://blog.csdn.net/qq_45088125/article/details/126076864
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号