13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

在Kubernetes环境中采用Spinnaker的意义

 Spinnaker是最初由Netflix设计和开发的开源多云连续交付工具。它有助于将应用程序部署到各种云提供商,例如Google Cloud Platform(GCP),Amazon Web Services(AWS)和Microsoft Azure。

该博客的目的是帮助开发人员,架构师和商业从业人员了解采用Kubernetes环境时使用Spinnaker的重要性。您将了解:

Spinnaker在Kubernetes环境中的作用

由于其在管理多容器环境中的简便性,各种组织都采用Kubernetes。但是,Kubernetes不是像Jenkins或Spinnaker这样的持续交付或部署工具。早期,Kubernetes生态系统缺少一个简单的持续交付工具来自动构建Kubernetes清单,测试这些工件并部署这些工件。Jenkins支持在Kubernetes集群上持续交付应用程序,但是增加了复杂性。

Spinnaker支持在Kubernetes集群上部署应用程序。它简化了此过程,并帮助组织在Kubernetes集群上部署了生产级的构建工件。

Spinnaker还通过其图形用户界面(GUI)用于管理Kubernetes集群上部署的应用程序。可以编辑和更新Kubernetes清单文件,以提供动态编辑Kubernetes特定属性的功能。借助Spinnaker GUI,您还可以监控Kubernetes对象的运行状况。

在Kubernetes环境中使用Spinnaker

Spinnaker得到了各种云提供商的支持,例如App Engine,Amazon Web Services(AWS),Azure,Google Cloud Platform(GCP),Cloud Foundry,Oracle和Kubernetes。在云上将Spinnaker与Kubernetes一起安装时,它将提供Kubernetes本机,基于清单的部署。Spinnaker使用一个帐户对Kubernetes集群进行身份验证。

在Kubernetes环境中Spinnaker的关键功能是应用程序管理和应用程序部署。应用程序管理功能有助于管理和查看Kubernetes集群对象。可以使用Spinnaker在Kubernetes对象上执行各种操作,例如扩展,缩小,回滚和前进。Spinnaker的此功能有助于从单个点(即Spinnaker GUI)管理多个Kubernetes集群。

Spinnaker的应用程序部署功能用于在Kubernetes集群中部署各种对象。Spinnaker在Kubernetes集群中部署应用程序时支持各种部署策略,例如Blue/Green,滚动更新,canary部署等。要执行应用程序部署,Spinnaker使用管道和阶段。借助Spinnaker管道,您可以创建持续的交付流程,以将代码从源代码管理工具自动部署到Kubernetes集群。您还可以使用Spinnaker阶段在将任何内容部署到生产Kubernetes集群上之前执行代码验证。

了解Spinnaker的架构

Spinnaker由独立的微服务组件组成。下面提到其中一些组件:

使用Spinnaker设计持续交付管道

创建了一个持续交付管道,以在两个不同的Kubernetes命名空间(即DEV和UAT)上部署Kubernetes清单和应用程序构建(docker镜像)。要创建一个持续交付管道,您需要一个Helm Charts作为Kubernetes清单文件的模板,Spinnaker正在使用该清单创建最终可部署的Kubernetes清单工件。

您可以创建五个单独的Spinnaker管道,如下所述:

  1. DEV-Kubernetes集群的YAML文件更改部署流水线:此管道用于在Kubernetes集群的DEV名称空间上部署,触发条件是Kubernetes清单文件发生了更改(dev.yaml)。
  2. UAT-Kubernetes集群的YAML文件更改部署流水线:此管道用于在Kubernetes集群的UAT名称空间上部署,触发条件是Kubernetes清单文件发生了更改(uat.yaml)。
  3. DEV – Docker镜像–应用程序部署流水线:此管道用于代码更改后构建Docker镜像并部署在Kubernetes集群的DEV名称空间上。
  4. UAT – Docker镜像–应用程序部署流水线:此管道用于代码更改后构建Docker镜像并部署在Kubernetes集群的UAT名称空间上。
  5. UAT-Jenkins手动Docker镜像部署流水线:此管道用于代码更改后构建Docker镜像并手动部署在Kubernetes集群的UAT命名空间上。它使用户可以在UAT名称空间上手动部署所需的应用程序代码(Docker镜像)。上面提到的两个Spinnaker管道分别在DEV和UAT名称空间上自动部署代码。它使用户可以控制在UAT名称空间上部署的应用程序代码(Docker镜像)。

 解释Spinnaker管道的工作流程

计划部署的Kubernetes清单文件和应用程序代码(Docker镜像)现在应该推送到GitHub存储库。

让我们详细讨论每个管道。

用于DEV和UAT的Kubernetes集群管道的YAML文件更改部署流水线

该Spinnaker管道包括四个阶段-配置、Jenkins、Bake(清单)和Deploy(清单)。

稍后,文本文件将传递到下一个Spinnaker阶段,即Bake(清单)。

然后,Spinnaker创建一个最终的构建工件,其中包含清单值和Jenkins作业记录的Docker镜像标签值。

DEV – Docker镜像-应用程序部署管道

此Spinnaker管道包括三个阶段:配置,烘焙(清单)和部署(清单)。

UAT – Docker镜像-应用程序部署管道

该管道使用与上述相同的流程从现有的Helm模板和已定义的uat.yml值文件创建最终工件。唯一的区别是,在此阶段,将自动触发器配置为“ DEV – Docker镜像–应用程序部署”管道的执行结果。“ DEV – Docker镜像–应用程序部署”管道的成功执行/完成将开始管道的执行。如果“ DEV-Docker镜像-应用程序部署”管道的执行进入失败状态,则该管道将永远不会开始执行,这将防止在Kubernetes集群的UAT名称空间中部署失败的工件。

UAT-Jenkins手动Docker镜像部署管道

该管道可帮助用户根据需要在UAT名称空间中部署旧的Docker镜像工件。用户提供所需的Docker镜像标签,该标签将通过参数化的Jenkins作业进行部署,该作业会创建文本文件(例如build.properties),并将用户提供的Docker镜像作为内容。例如– IMAGE_TAG = v15。这里,v15是用户提供的镜像标签。

将build.properties文件作为输入传递到Spinnaker管道。

使用Spinnaker设计持续交付管道的最佳实践

Spinnaker是一个强大的持续交付工具,用于自动在Kubernetes集群上部署应用程序。Spinnaker管道也可以配置为在执行实际部署之前对构建工件执行单元测试和功能测试。因此,Spinnaker可以帮助组织更快地将代码获取到生产环境。


网站题目:在Kubernetes环境中采用Spinnaker的意义
标题来源:http://cdbrznjsb.com/article/cdhcods.html

其他资讯

让你的专属顾问为你服务