JFrog帮助中心

我们的新传送门很快就要来了!
文档+知识库





JFrog帮助中心-一个全新的知识体验即将到来!



概述

HelmBlueGreenRoleSwitchstep翻转由a部署的Helm release所扮演的角色HelmBlueGreenDeploy的一步。

此角色切换可用于向用户提供新版本或回滚以前发布的版本。

页面内容


蓝/绿部署策略

蓝/绿部署是一种发布新软件的策略,它使用两个尽可能相同的生产环境,轮流为用户请求提供服务,而另一个用于执行测试的最后阶段。

HelmBlueGreenDeployStep将这两个环境称为蓝色的而且绿色.这些环境可以是游戏闲置生活角色,这取决于用户的请求被转发到哪个环境。当前处理用户请求的环境被认为是Live环境,而另一个被认为是Idle环境。为了推出一个新版本,我们首先将它部署到扮演Idle角色的环境中。在那里,我们可以验证新版本,以检查它是否适合用户使用。如果这是正确的,我们可以转换环境角色,使以前的Idle环境变成Live并开始处理用户请求,而以前的Live环境变成Idle。这种策略的主要优点之一是回滚新版本就像再次翻转环境角色一样简单。

在Helm的上下文中,蓝色和绿色环境都表示为两个单独的版本,它们共存于同一个名称空间中。的HelmBlueGreenDeploystep通过为每个角色创建专用的公共服务副本,将空闲或活动角色分配给这些版本。通过这样做,我们可以通过将这些服务更新为来自特定环境的服务的副本来轻松地更改发布角色。管道创建的角色服务可以用于提供额外的入口点组件,如DNS记录、入口规则或服务网格。

为了实现完整的蓝/绿部署策略工作流,管道提供了三个本地步骤:

  • HelmBlueGreenDeploy从运行时发现哪个版本正在扮演空闲角色,将图表部署到它,并创建或更新空闲角色服务。
  • HelmBlueGreenRoleSwitch从运行时发现哪个版本正在扮演每个角色,并通过创建或更新角色服务来翻转它们。
  • HelmBlueGreenCleanup从运行时发现哪个版本正在扮演Idle角色并卸载它。

YAML模式

HelmBlueGreenRoleSwitch本机步骤的YAML模式如下:

HelmBlueGreenRoleSwitch
管道:- name: 步骤:- name: 类型:HelmBlueGreenRoleSwitch配置:#继承所有的标签从bash;//www.si-fil.com/confluence/display/JFROG/Bash deployStep:  integrations: - name:  # required execution: onStart: - echo“Preparing for work…”onSuccess: - echo“Job well done!”onFailure: - echo“uh oh, something went wrong”onComplete: #always - echo“清理一些东西”

标签

名字

一个字母数字字符串(允许使用下划线),用于标识步骤。

类型

必须HelmBlueGreenRoleSwitch对于这个步骤类型。

配置

指定步骤执行环境的所有配置选择。该步骤继承Bash/PowerShell步骤配置标签,包括这些相关的标签:

标签

使用说明

必需的/可选

集成

必须指定Kubernetes集成

要求


此外,可以定义这些标记来支持该步骤的本机操作:

从Bash派生的标记

所有本机步骤都派生自Bash的一步。这意味着所有步骤共享来自Bash的相同基本标记集,而本机步骤也有自己的附加标记,这些标记支持该步骤的特定功能。所以熟悉这个很重要Bash步骤定义,因为它是所有其他步骤定义的核心。

标签

使用说明

必需的/可选
deployStep HelmBlueGreenDeploy部署Helm Chart的步骤名,以及配置蓝色/绿色策略的位置。引用的部署步骤必须在同一个Pipeline中声明。 要求

执行

声明在执行前和执行后阶段执行的shell命令序列集合:

标签

使用说明

必需的/可选
onStart 在本机操作之前执行的命令 可选
调用onSuccess 成功完成后执行的命令 可选
onFailure 在完成失败时执行的命令 可选
onComplete 在任何补全时执行的命令 可选

对象执行的操作onExecute阶段是此步骤类型固有的,不能被覆盖。


例子

以下示例展示如何配置HelmBlueGreenRoleSwitch步骤。

示例1

这个管道展示了如何使用蓝色/绿色策略部署Helm图表,并将其提升到Live角色。

HelmBlueGreenDeploy
管线:—name: helmBlueGreenDeployPipeline步骤:—name: helmDeployStep type: HelmBlueGreenDeploy配置:helmVersion: 3 namespace: app-namespace blueReleaseName: app-blue greenReleaseName: app-green roleServices:—blueReferenceName: app-blue-service greenReferenceName: app-green-service idleName: app-idle-service liveName: app-service integrations:—name: kubernetes_integration inputResources:—name: helmChartResour2022世界杯阿根廷预选赛赛程ce -name: helmRoleSwitch type:HelmBlueGreenRoleSwitch配置:deployStep: helmDeployStep集成:—name: kubernetes_integration inputSteps:—name: helmDeployStep

工作原理

当你使用HelmBlueGreenRoleSwitch管道中的本机步骤,它在后台执行以下功能:

  • restore_pipeline_files(恢复引用的HelmBlueGreenDeploy步骤配置)
  • kubectl get service(获取Live Services来读取注释并发现当前环境所扮演的角色)
  • kubectl get service(获取helm部署的服务,用于创建或更新角色服务)
  • 清理和更新角色服务定义(使用金桥在Bash节点和金桥而且ConvertFrom-JsonPowerShell节点上)
  • kubectl apply(创建或更新角色服务)

管道管理服务

由pipeline管理的角色Services可以通过以下标签和注释元数据来标识:

名字 类型 价值
app.kubernetes.io /管理 标签 “管道”
pipelines.www.si-fil.com/pipeline 注释 管道的名字
pipelines.www.si-fil.com/deploy-step 注释 步骤名称
pipelines.www.si-fil.com/run 注释 最后一次运行更新服务的编号
pipelines.www.si-fil.com/reference 注释 服务名称
pipelines.www.si-fil.com/environment 注释 目前环境扮演着这个角色
  • 没有标签
版权所有©2023 JFrog Ltd。