使用 GitOps 实现应用持续部署
KubeSphere 3.3.0 引入了一种为云原生应用实现持续部署的理念 – GitOps。GitOps 的核心思想是拥有一个 Git 仓库,并将应用系统的申明式基础架构和应用程序存放在 Git 仓库中进行版本控制。GitOps 结合 Kubernetes 能够利用自动交付流水线将更改应用到指定的任意多个集群中,从而解决跨云部署的一致性问题。
本示例演示如何创建持续部署实现应用的部署。
准备工作
您需要有一个企业空间、一个 DevOps 项目和一个用户 (
project-regular
),并已邀请此帐户至 DevOps 项目中且授予operator
角色。如果尚未准备好,请参考创建企业空间、项目、用户和角色。您需要启用 KubeSphere DevOps 系统。
导入代码仓库
以
project-regular
用户登录 KubeSphere 控制台,在左侧导航树,点击 DevOps 项目。在右侧的 DevOps 项目页面,点击您创建的 DevOps 项目。
在左侧的导航树,点击代码仓库。
在右侧的代码仓库页面,点击导入。
在导入代码仓库对话框,输入代码仓库名称,如
open-podcasts
,并选择代码仓库。您也可以为代码仓库设置别名和添加描述信息。在选择代码仓库对话框,点击 Git,在代码仓库地址区域,输入代码仓库地址,如
https://github.com/kubesphere-sigs/open-podcasts
,点击确定。备注
此处导入的是公共仓库,因此不需要创建凭证。如果您添加的是私有仓库,则需要创建凭证。更多关于如何添加凭证的信息,请参阅凭证管理。
创建持续部署
在左侧的导航树,点击持续部署。
在右侧的持续部署页面,点击创建。
在基本信息页签,输入持续部署名称,如
open-podcasts
,并选择上一步创建的代码仓库,您也可以设置别名和添加描述信息,点击下一步。在部署设置页签,选择持续部署的部署集群和项目。
在代码仓库设置区域,设置代码仓库的分支或标签以及 kustomization 清单文件路径,如
config/default
。在同步策略区域,您可以选择手动同步或自动同步。当选择自动同步时,会出现清理资源和自恢复选项,请根据您的实际需要选择。
- 清理资源:自动同步时,自动删除 Git 中不存在的资源。
- 自恢复:时刻保证与 Git 中定义的状态同步。
在同步设置区域,按照实际需要选择以下设置项:
- 跳过规范校验:不校验资源规范性。
- 自动创建项目:在同步的过程中,自动创建项目。
- 最后清理:直到所有的资源都已经同步且处于健康状态才删除不存在的资源。
- 仅应用未同步:仅应用未同步的资源。
在依赖清理策略区域,选择一个清理策略:
- foreground:先删除附属资源,再删除主资源。
- background:先删除主资源,再删除附属资源。
- orphan:删除主资源之后,附属资源仍然存在。
在替换资源区域,选择是否需要替换已存在的资源,点击创建。
您可以在持续部署页面上查看到已创建的持续部署的信息,如下表所示:
参数 描述信息 名称 持续部署的名称。 健康状态 持续部署的健康状态。主要包含以下几种状态: - 健康:资源健康。
- 已降级:资源已经被降级。
- 进行中:资源正在同步。默认返回该状态。
- 暂停:资源已经被暂停并等待恢复。
- 未知:资源健康状态未知。
- 丢失:资源已缺失。
同步状态 持续部署的同步状态。主要包含以下几种状态: - 已同步:资源同步已完成。
- 未同步:资源的实际运行状态和期望状态不一致。
- 未知:资源同步状态未知。
部署位置 资源部署的集群和项目。 更新时间 资源更新的时间。 点击持续部署右侧的 ,您可以执行以下操作:
- 编辑信息:编辑别名和描述信息。
- 编辑 YAML:编辑持续部署的 YAML 文件。
- 同步:触发资源同步。
- 删除:删除持续部署。
警告
删除持续部署的同时会删掉和该持续部署关联的资源。请谨慎操作。
- 点击已创建的持续部署进入详情页面,可以查看同步状态和同步结果。
访问已创建的应用
进入持续部署所在的项目,在左侧导航栏,点击服务。
在右侧的服务区域,找到已部署的应用,并点击右侧 ,选择编辑外部访问。
在访问模式中选择 NodePort,点击确定。
在服务列表页面的外部访问列,查看暴露的端口,通过 {Node IP}:{NodePort} 访问此应用。
备注
在访问服务之前,请确保安全组中的端口已打开。