使用 Jenkins 和 Spinnaker 构建 Kubernetes CI CD_spinnake软件

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Golang全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注go)
img

正文

另一方面,Spinnaker 专注于简化软件应用程序的代码部署过程。它提供了一种集中式方法来管理 Kubernetes的部署管道,从而可以有效地提升和回滚版本。

Kubernetes 是一种开源容器管理工具,用于管理容器化应用程序和服务。应用程序开发人员、DevOps 工程师和系统管理员使用此工具跨集群自动构建、扩展、部署和维护容器化应用程序。

使用 Spinnaker 简化持续集成和部署

每个采用DevOps实践的组织都希望快速采用“持续”的一切,无论是集成、部署、测试还是监控。对于成功的 DevOps 操作,CI/CD 对于任何小型或大型组织来说都非常重要,它可以缩短开发周期并加快创新速度、减少部署失败、节省回滚并减少 MTTR(平均恢复时间)。

在本文中,我们将揭示一种将应用程序持续集成和持续交付到 Kubernetes 集群的新方法。我们使用 Jenkins 作为 CI 工具,它将轮询 Git 存储库以在提交时构建 Docker 映像并将它们推送到 Docker 注册表。我们将使用 Spinnaker 作为 CD 工具,它持续轮询 Docker 注册表并触发部署管道以更新 Kubernetes 集群中的应用程序。

Image title

上图显示了当开发人员将更改提交到 Github 时,Jenkins 会轮询对已配置分支的提交,并在新提交时触发新的构建。Jenkins 构建 Docker 映像,并使用标记将其推送到 Docker 注册表(您可以选择不同的技术来标记映像,例如使用 build-commit 编号或增量编号)。使用 Spinnaker,我们配置部署管道,以便在注册表中找到新标记(Docker 映像)时触发部署。

Spinnaker 简介

Spinnaker 是由 Netflix 创建的开源多云持续交付工具。它允许我们配置多种部署策略,例如 Highlander 和 Red/Black。它不仅允许我们在发生故障时回滚,还可以触发提升的管道。这意味着我们可以通过定义测试管道来配置复杂的管道,并将它们提升到下一阶段,或者在受控的 Kubernetes 集群中轻松安全地回滚。在本系列的下一篇文章中,我们将详细了解部署策略和管道配置。

Spinnaker 组件

要了解 Spinnaker 的安装,我们需要了解它的工作组件。让我们简要了解一下它的组件及其功能。

Image title

您可以在 
Spinnaker 的官方文档页面查看以下组件的详细依赖矩阵和默认绑定端口。

**Deck:**Spinnaker 的基于浏览器的 UI。

**Gate:**API 调用方和 Spinnaker UI 通过这个名为 Gate 的 API 网关与 Spinnaker 服务器通信。

**Orca:**管道和其他临时操作由这个名为 Orca 的业务流程引擎管理。

**Clouddriver:**已部署资源的索引和缓存由 Clouddriver 负责。它还有助于调用 AWS、GCE 和 Azure 等云提供商。

**Echo:**它负责发送通知,也充当传入的 Webhook。

**Igor:**它用于通过 Jenkins 和 Travis CI 等系统中的持续集成作业触发管道,并允许在管道中使用 Jenkins/Travis 阶段。

**Front50:**它是 Spinnaker 的元数据存储。它保留所有资源的元数据,包括管道、项目、应用程序和通知。

Rosco:Rosco 烘焙计算机映像(AWS AMI、Azure VM 映像、GCE 映像)。

**Rush:**它是 Spinnaker 的脚本执行引擎。

安装 Spinnake
要求:

在开始安装之前,让我们先看看以下要求。Halyard 具有以下要求。在我们的案例中,我们使用了 Ubuntu 16.04。

  • Ubuntu 14.04 或 16.04(Ubuntu 16.04 需要 Spinnaker 1.6.0 或更高版本)
  • Debian 8 或 9
  • 如果要在本地计算机上安装,则仅限 macOS(在 High Sierra 上测试)

设置 Spinnaker 进行 Kubernetes 部署

让我们逐步了解为 Kubernetes 部署设置 Spinnaker 的步骤

1. 设置 Halyard

我们从 Halyard 安装开始。它是 Spinnaker 部署的生命周期管理器。

以下命令将安装最新版本的 Halyard。

curl -O https://raw.githubusercontent.com/spinnaker/halyard/master/install/debian/InstallHalyard.sh
sudo bash InstallHalyard.sh

2. 设置 Spinnaker 版本

之后,设置要使用的 Spinnaker 版本。

hal version list ### This will return avaialable version
hal config version edit --version $VERSION

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-xOVBsxif-1713192667520)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值