当前位置: 首页 > article >正文

K8S命令部署后端(流水线全自动化部署)

前言

本文为链接: 云效流水线+k8s半自动部署java(保姆级)的补充,本文起初的目的是为了补充完善k8s流水线的全自动化部署,但是也适用于k8s的一键重启,因为使用k8s的web页面容易出现漏点的情况,因此也可以把代码保存为shell脚本,同样可以实现一键重启。关于流水线的搭建和k8s的搭建请移步上方的链接,本文主要作为差缺补漏。

一、云效

云效这一步较为简单,进入项目后,点击新的任务-部署-主机部署
在这里插入图片描述
因为只需要执行k8s的命令即可,因此无需下载制品,因此把下载制品勾选掉
在这里插入图片描述
主机组可以参考 云效+小皮(nginx) vue项目部署(保姆级)内的主机组创建

在这里插入图片描述
创建完成之后就可以在这边选择到,最终界面应当如上图所示,脚本的话,根据自己的情况调整下方的代码即可。

二、k8s

下方的代码需要修改的地方仅有下面的
NAMESPACE
EXCLUDE_DEPLOYMENTS
两个变量
第一个变量需要填写的为容器的命名空间
在这里插入图片描述
当处于这个界面的时候,下方英文名称即为NAMESPACE 的值,切记是名称不是别名,不要填写的时候把括号里的值也填写上,因为名称是唯一值,即使是不同的环境,也不允许使用同一的名称。

EXCLUDE_DEPLOYMENTS是需要填写不需要重启的服务名称,因为有时候像是mysql,xxljob这样的中间件和数据库和nginx代理,因为是同一个项目都会塞到一起,这些服务一般是不需要重启的,因此需要规避掉这些的重启,此时需要填写第二个参数,并按照空格分隔开,此处是模糊匹配,即便是名称不完全重复,也可以匹配上。
在这里插入图片描述
如上图所示,因为项目中包含nginx,和xxljob,我的xxljob只填写xxl依旧可以匹配上排除掉。
修改好后填写到云效的部署脚本处即可。

三、代码

# 定义命名空间
NAMESPACE="xxxx"

# 定义要排除的部署名称列表,用空格分隔不同的名称
EXCLUDE_DEPLOYMENTS="nginx mysql redis xxl"
#遍历查询所有pod,并排除上方需要排除的名称
DEPLOYMENT_NAMES=$(kubectl get deployments -n "$NAMESPACE" | while read line; do
    should_include=true
    for excluded in $EXCLUDE_DEPLOYMENTS; do
        if [[ "$line" == *"$excluded"* ]]; then
            should_include=false
            break
        fi
    done
    if $should_include; then
        echo "$line" | awk '{print $1}'
    fi
done | sed '1d')

# 循环遍历获取到的部署名称列表,对每个部署执行重启操作
for name in $DEPLOYMENT_NAMES
do
    kubectl rollout restart deployment/"$name" -n "$NAMESPACE"
done


http://www.kler.cn/a/429812.html

相关文章:

  • OpenCV相机标定与3D重建(48)对三台相机进行极线校正(rectification)函数rectify3Collinear()的使用
  • 计算机网络(六)应用层
  • P2249 【深基13.例1】查找
  • 2.linux中调度kettle
  • React - useActionState、useFormStatus与表单处理
  • 小迪笔记 第四十五天 sql 注入进阶 :二次注入,堆叠注入,数据读取(load_file)加外带
  • 适配器模式——设计模式
  • 数据分析:学习指南
  • DDR的跨4K问题
  • java的23种设计模式使用场景
  • 一文详解java中的方法
  • # issue 8 TCP内部原理和UDP编程
  • unity 让文字呈现弧度变化
  • 什么是MMD Maximum Mean Discrepancy 最大均值差异?
  • 《网络安全编程基础》之Socket编程
  • 【软件安装】Linux服务器中部署gitlab-runner实现CICD流水线
  • SSM01-MyBatis框架(一文学会MyBatis)
  • 微信小程序从后端获取的图片,展示的时候上下没有完全拼接,有缝隙【已解决】
  • JS 偏移量和鼠标位置
  • RabbitMQ中Fanout交换机的深入探讨
  • 高质量阅读微信小程序ssm+论文源码调试讲解
  • C# 中的静态构造函数和实例构造函数的区别