编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

使用 Spinnaker 部署应用程序(spinnaker安装)

wxchong 2024-10-18 14:32:16 开源技术 8 ℃ 0 评论

今天我给大家介绍的一款用于软件持续部署的产品,也是我工作经常使用的,

它由Netflix开发并在2015年开源,面向企业的多云持续交付系统, 它结合了一个强大而灵活的管道管理系统,并集成了主要的云提供商(AWS、 Google Cloud Platform、 Kubernetes),它旨在帮助开发团队更快速、更可靠地交付软件,并在Google的大力支持下继续发展。

下面介绍如何使用Spinnaker来部署一个java应用程序

第一步 创建应用

  1. 在Spinnaker 页面上点击 Create Application 按钮
  1. 在弹出来的窗口填写应用的信息
  1. 填好后点击 Create 按钮,将会看到下面的界面

想要修改刚刚创建的应用配置信息和删除应用,可以点击左侧导航 CONFIG 按钮进行操作即可。

第二步 创建并配置流水线

Spinnaker 中是以流水线的方式来描述和执行软件交付的流程和执行步骤,流水线(pipeline)是由一系列阶段(stage)组成的,每个阶段代表了一个特定的操作或任务,例如构建、测试、部署等。通过定义配置流水线,可以实现自动化的持续部署流程。另外Spinnaker还提供直观的可视化界面,以通过拖拽、配置等方式轻松地定义和配置流水线。使用者可以在界面上添加、删除、调整各个阶段,以构建符合实际需求的持续部署流程。

  1. 创建流水线,在spinnaker中创建流水线非常简单,点击 Configure a new pipeline 即可创建
  1. 创建新的pipeline后就可以来配置流水线,一般情况一个服务对应创建一条pipeline,每一条pipeline都有若干个stage(阶段)组成,每个阶段Spinnaker都提供了页面来配置其行为,Spinnaker 内置了若干多常用的stage,使用的时候根据部署的需要进行简单的配置即可使用,下面创建一条简单的java服务的流水线:
  • Configuration Stage:这个阶段主要是对pipeline 的配置,比如:参数配置、触发配置、消息通知配置等。
  • Bake Stage: 点击 Add stage 按钮 ,进入页面后选择 type 为 Bake(Manifest),我在这里面用helm 来制作部署清单文件
  • Deploy Stage : 点击 Add stage 按钮 ,进入页面后选择 type 为 Deploy(Manifest),在这个阶段会把上面 Bake 好的构建进行部署


第三步、执行流水线,进行部署操作

一旦在Spinnaker中创建了一条pipeline后,有两种方式触发pipeline的执行:

  • 手动执行 : 直接点击 Start Manual Execution 按钮执行部署

在弹出来的窗口选择需要部署的Jenkins 构建,这里 Spinnaker 会列出Jenkins上所有构建成功的都会显示出来,然后点击 Run 按钮即可。

  • 自动执行: 是通过 Jenkins,shell、webhook或者设置为其他的pipleline(执行之前后)后自动执行。在上面例子 Configuration Stage阶段中已经配置了Jenkins,Spinnaker会监听Jenkins,在Jenkins Job构建完成后,自动执行。

需要注意下,当Pipeline 是自动执行的时候,会显示 Trigger:enabled

当Pipeline 禁止自动执行的时候,会显示 Trigger:enabled

执行部署成功后,Spinnaker会显示本次部署的状态(成功、失败),以及部署的耗时情况

Spinnaker 中是通过流水线来配置软件交付的行为,除了基本的流水线配置外,还提供了丰富的高级功能,如:

  1. 并行阶段:可以同时进行多个任务,加速整个部署流程。
  2. 部署策略:支持滚动部署(Rolling Deployment)、蓝绿部署(Blue/Green Deployment)、金丝雀部署(Canary Deployment)。
  3. 人工审核可以在流水线中引入人工干预,例如在关键步骤需要人工确认时,暂停流水线的执行等待审核人员进行操作。
  4. 定时触发:可以根据预定的时间或周期性地触发流水线的执行,实现定时发布等需求。
  5. 通知和报警:可以配置流水线在关键事件发生时发送通知或触发报警,比如部署失败或者部署成功后通知相关团队成员。
  6. 参数化配置:可以在流水线中定义和使用参数,以实现更灵活的流水线配置和执行

更多关于Spinnaker的使用方面的问题可以留言和私信我。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表