Spinnaker 基于 docker registry 触发部署

news2024/10/5 3:36:50

docker registry 触发部署

Spinnaker可以通过Docker镜像的变化来触发部署,这种方法允许你在Docker镜像发生变化时自动启动新的部署流程。

示例原理如下图所示:
在这里插入图片描述
以下是如何在Spinnaker中实现基于Docker Registry触发部署的配置流程。最终实现的效果如下:

  1. 基于jenkins CI构建docker镜像,推送到阿里云ACR镜像仓库;
  2. spinnaker pipeline跟踪镜像仓库中指定镜像tag变化,检测到新tag则使用新的镜像tag更新kubernetes yaml文件image字段;
  3. spinnaker pipeline将yaml文件部署到kubernetes集群。

前置要求:

  • 已在kubernetes集群中部署spinnaker
  • 准备可用的docker镜像仓库,由于阿里云ACR镜像仓库个人版可免费使用,并且国内访问比较流畅,以下以阿里云镜像仓库为例。

镜像仓库默认存在一个latest标签的nginx官方镜像。
在这里插入图片描述

启用 docker-registry provider

官方文档:https://spinnaker.io/docs/setup/install/providers/docker-registry/

配置spinnaker,启用docker-registry提供程序:

hal config provider docker-registry enable

假设您的注册表具有地址 $ADDRESS 、存储库 $REPOSITORIES 、用户名 $USERNAME 和密码 $PASSWORD

ADDRESS=registry.cn-shenzhen.aliyuncs.com
REPOSITORIES=cnmirror/nginx
USERNAME=xxx@mail.com
PASSWORD=xxxxxx

运行以下 hal 的帐户添加到 Docker 注册表帐户列表中:

hal config provider docker-registry account add aliyun-acr \
    --address $ADDRESS \
    --repositories $REPOSITORIES \
    --track-digests=true \
    --username $USERNAME \
    --password $PASSWORD

注意:参数–track-digests=true是一个重要的参数,因此即使标签已经存在但内容随摘要(哈希值)更改,管道也可以自动触发。

重新部署spinnaker,以使配置生效。

hal deploy apply

创建spinnaker应用

创建应用

点击右侧Create Application
在这里插入图片描述
配置名称和邮箱
在这里插入图片描述

创建PIPELINES

在这里插入图片描述

修改Configuration 阶段

选择Automated Triggers,点击Add Trigger
在这里插入图片描述
在Type选框中搜索Docker Registry,并选择以下参数
在这里插入图片描述

在下方Artifact Constraints中,定义一个新的Artifact
在这里插入图片描述

填写的相关参数:

Docker image: registry.cn-shenzhen.aliyuncs.com/cnmirror/nginx
Object path:registry.cn-shenzhen.aliyuncs.com/cnmirror/nginx:${parameters['VERSION']}

创建deploy阶段

点击 Add stage
在这里插入图片描述
选择Type类型为Deploy(Manifest),选择Account及应用部署的Namespace,最后配置Manifest。
在这里插入图片描述
示例Manifest如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx-app
  name: nginx-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-app
  template:
    metadata:
      labels:
        app: nginx-app
    spec:
      containers:
        - image: registry.cn-shenzhen.aliyuncs.com/cnmirror/nginx
          name: nginx-app
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-app
  labels:
    run: nginx-app
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx-app

选择Required Artifacts to Bind
在这里插入图片描述

点击右下方的Save Changes。

测试触发部署

这里准备一个nginx镜像作为示例应用,jenkins镜像构建部分省略,作为演示使用手动方式上传镜像到镜像仓库。

docker pull docker.io/library/nginx:latest
docker tag docker.io/library/nginx:latest registry.cn-shenzhen.aliyuncs.com/cnmirror/nginx:v1.0
docker push registry.cn-shenzhen.aliyuncs.com/cnmirror/nginx:v1.0

等待片刻,点击PIPELINES,查看部署是否成功
在这里插入图片描述
连接到kubernetes集群,查看部署的nginx-app pods以及service

root@node40:~# kubectl get pods
NAME                         READY   STATUS    RESTARTS   AGE
nginx-app-7bf7d4d4cd-hhrtj   1/1     Running   0          26s
root@node40:~# 
root@node40:~# kubectl get svc
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   74m
nginx-app    ClusterIP   10.96.3.41   <none>        80/TCP    63m

查看镜像

root@node40:~# kubectl get pods -l app=nginx-app -o yaml | grep image:
    - image: registry.cn-shenzhen.aliyuncs.com/cnmirror/nginx:v1.0
      image: registry.cn-shenzhen.aliyuncs.com/cnmirror/nginx:v1.0

推送新的镜像到镜像仓库,模拟jenkins镜像构建

docker tag docker.io/library/nginx:latest registry.cn-shenzhen.aliyuncs.com/cnmirror/nginx:v1.1
docker push registry.cn-shenzhen.aliyuncs.com/cnmirror/nginx:v1.1

确认新的PIPELINES部署已自动执行
在这里插入图片描述
查看镜像,已更新为v1.1版本

root@node40:~# kubectl get pods -l app=nginx-app -o yaml | grep image:
    - image: registry.cn-shenzhen.aliyuncs.com/cnmirror/nginx:v1.1
      image: registry.cn-shenzhen.aliyuncs.com/cnmirror/nginx:v1.0

参考:
https://docs.armory.io/continuous-deployment/spinnaker-user-guides/kubernetes-deployments/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1258267.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3D ACIS Modeler和HOOPS Visualize助力鲁班软件打造BIM数字化平台

鲁班软件成立于2001年&#xff0c;始终致力于BIM技术研发和推广&#xff0c;为建筑产业相关企业提供基于BIM技术的数字解决方案&#xff0c;专注打造能够支撑建筑企业集团发展的BIM数字化平台鲁班工程管理数字平台(Luban Builder)&#xff0c;以及可承载园区级或城市级的BIM、C…

NX二次开发UF_CURVE_create_arc_3tangent 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_create_arc_3tangent Defined in: uf_curve.h int UF_CURVE_create_arc_3tangent(tag_t tangent_object1, tag_t tangent_object2, tag_t tangent_object3, UF_CURVE_help_…

Sass基础知识详细讲解【附带表图】

文章目录 前言使用 SassRack / Rails / Merb插件缓存选项语法选择编码 Sass CSS扩展Sass 注释输出 Sass 脚本Sass -规则和指令Sass 控制指令和表达式 Sass 混入指令Sass 功能指令命名约定Sass 输出样式:nested:expanded:compact:compressedSass 扩展缓存存储自定义导入 后言 前…

算法-技巧-中等-寻找重复数,环形链表|,||

记录一下算法题的学习13 这次代码中运用到的技巧是「Floyd 判圈算法」&#xff08;又称龟兔赛跑算法&#xff09;&#xff0c;它是一个检测链表是否有环的算法 我们想象乌龟tortoise和兔子rabbit在链表上移动&#xff0c;乌龟爬的慢&#xff0c;兔子爬的快&#xff0c;当乌龟和…

芯片技术前沿:了解构现代集成电路的设计与制造

芯片技术前沿:解构现代集成电路的设计与制造 摘要:本文将深入探讨芯片技术的最新进展,重点关注集成电路的设计与制造。我们将带领读者了解芯片设计的基本流程,包括电路分析、版图设计和验证等步骤,并介绍当前主流的制造工艺。此外,我们还将讨论芯片行业面临的挑战以及未…

【腾讯云云上实验室】探索向量数据库背后的安全监控机制

当今数字化时代&#xff0c;数据安全成为了企业和个人最为关注的重要议题之一。随着数据规模的不断增长和数据应用的广泛普及&#xff0c;如何保护数据的安全性和隐私性成为了迫切的需求。 今天&#xff0c;我将带领大家一起探索腾讯云云上实验室所推出的向量数据库&#xff0c…

大电流和大电压谁对人体伤害大

突然想起以前看的这个&#xff0c; 网上有很多解答了这个问题&#xff0c;答案是大电流比大电压对人体伤害大。 我之所以重新来写些&#xff0c; 是想起一种有趣的比喻&#xff0c; 这个答案不绝对。 先看一个场景&#xff0c; 一群牛和一头老虎对你冲来&#xff0c; 谁对你的…

计算机毕业设计|基于SpringBoot+MyBatis框架的电脑商城的设计与实现(用户上传头像+用户收货管理)

计算机毕业设计|基于SpringBootMyBatis框架的电脑商城的设计与实现&#xff08;用户上传头像&#xff09; 该项目分析着重于设计和实现基于SpringBootMyBatis框架的电脑商城。首先&#xff0c;通过深入分析项目所需数据&#xff0c;包括用户、商品、商品类别、收藏、订单、购物…

每日汇评:黄金有望在美欧通货数据周回升至2020美元上方

金价在2000美元以上占据主导地位&#xff0c;巩固了其2018美元的六个月高点&#xff1b; 美元在避险情绪中暂停下跌&#xff0c;美债收益率小幅上升&#xff1b; 金价本周收于2000美元以上&#xff0c;在关键通胀数据公布之前将有更多涨幅&#xff1b; 黄金价格已经从周一亚洲早…

SOLIDWORKS髙级孔命令及相关问题

本文介绍的是SOLIDWORKS髙级孔的命令应用。髙级孔主要用来做一些模型上的组合孔特征。我们先来看一个典型的例子&#xff0c;如图1所示&#xff0c;将轴侧视图能看到的3个面先进行“更改透明度”操作&#xff0c;以便看到模型内部孔的特征。 添加图片注释&#xff0c;不超过 14…

配电房无人值守监控系统

配电房无人值守监控系统是一种特殊的智能化监控系统&#xff0c;专为无人值守的配电房设计。依托电易云-智慧电力物联网&#xff0c;它采用先进的技术手段&#xff0c;实现对配电房环境、设备等的全方位实时监测和自动控制&#xff0c;确保配电房在无人员在场的情况下仍能安全、…

小波降噪的原理,以及软阈值函数和硬阈值函数的详细定义,应用和区别,以及数学公式的解释!!!看完你就懂了软阈值函数和硬阈值函数

文章目录 前言一、软阈值函数和硬阈值函数是什么&#xff1f;二、软阈值函数和硬阈值函数的区别三、软阈值函数和硬阈值函数的应用四、软阈值函数和硬阈值函数的数学公式总结 前言 小波降噪是一种应用小波理论的信号降噪方法&#xff0c;主要通过减少噪声的干扰&#xff0c;同…

Intellij Idea 断点小圆变成灰色怎么处理

场景1&#xff1a;变成了灰色实心圆 原因 断点变成灰色通常表示该断点处于失效状态。这可能是由于无意中点击了debug调试下方的“mute breakpoints”按钮导致的。 解决方案 依次点击设置小图标->View Options->Mute BreakPoints. 点击后 Mute BrakPoints左侧显示✔ 符号…

亥姆霍兹线圈的组成

亥姆霍兹线圈是由两个半径、匝数、电流★全相同的线圈&#xff0c;距离为半径长度&#xff0c;运行电流方向相同组成。 亥姆霍兹线圈是一种产生均匀磁场的线圈&#xff0c;其磁场特点是在内部产生均匀度较高的磁场&#xff0c;一般长螺线管的均匀度要优于赫姆霍兹线圈&#xf…

2020年06月 Scratch(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共15题,每题2分,共30分) 第1题 执行下图程序后,“花名”列表的第3项是? A:莲花 B:丁香 C:合欢 D:月季 答案:C 列表基本知识,选C。 第2题 执行如下图所示程序后,其结果为? A: B:

Linux(CentOS7.5):新增硬盘分区纪实

一、服务器概述 1、既有一块系统硬盘&#xff0c;新增一块100G硬盘。 2、要求&#xff0c;将新插入硬盘分为&#xff1a;20G、30G、50G。 二、操作步骤 1、确认新硬盘是否插入成功&#xff1a; fdisk -l# 红色框出来的&#xff0c;为识别出来的新硬盘信息 # 黄色框出来的&#…

C语言——输入 10 个数,分别统计其中正数、负数、零的个数

#include <stdio.h> int main() {int numbers[10]; // 存储输入的10个数int positive_count 0; // 正数计数器int negative_count 0; // 负数计数器int zero_count 0; // 零计数器// 输入10个数printf("请输入10个数&#xff1a;\n");for (int i 0; i …

Flask Session 登录认证模块

Flask 框架提供了强大的 Session 模块组件&#xff0c;为 Web 应用实现用户注册与登录系统提供了方便的机制。结合 Flask-WTF 表单组件&#xff0c;我们能够轻松地设计出用户友好且具备美观界面的注册和登录页面&#xff0c;使这一功能能够直接应用到我们的项目中。本文将深入探…

解读向量数据库

不论是RAG&#xff0c;还是Agent&#xff0c;几乎每个LLM 驱动的应用程序都可能会用到向量数据库。那么&#xff0c;向量数据库是什么&#xff1f;与传统数据库有何不同&#xff1f; 又如何选择向量数据库呢&#xff1f; 本文是老码农关于向量数据库的学习笔记。 1. 什么是向量…

PC删除数据,并提示删除成功

<template<el-button size"mini" type"text">分配权限</el-button><el-button size"mini" type"text" click"btnEditRow(row)">编辑</el-button ><el-popconfirmtitle"这是一段内容确定…