管理集群应用
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
GitLab 提供了一个集群管理项目模板,你可以用它来创建项目。该项目包含与 GitLab 集成并扩展 GitLab 功能的集群应用。你可以使用项目中展示的模式来扩展你的自定义集群应用。
该项目模板在 GitLab.com 上无需修改即可使用。如果你使用的是 GitLab 自托管实例,则必须修改 .gitlab-ci.yml 文件。
为代理和清单使用一个项目
如果你尚未使用代理将集群连接到 GitLab:
- 从集群管理项目模板创建项目。
- 为代理配置项目。
- 在项目设置中,创建一个名为
$KUBE_CONTEXT的 环境变量,并将其值设置为path/to/agent-configuration-project:your-agent-name。 - 根据需要配置文件。
为代理和清单使用独立的项目
如果你已经配置了代理并将集群连接到 GitLab:
- 从集群管理项目模板创建项目。
- 在你配置代理的项目中, 授予代理对新项目的访问权限。
- 在新项目中,创建一个名为
$KUBE_CONTEXT的 环境变量,并将其值设置为path/to/agent-configuration-project:your-agent-name。 - 在新项目中,根据需要配置文件。
基于集群管理项目模板创建项目
要从集群管理项目模板创建项目:
- 在左侧边栏顶部,选择 Create new( )和 New project/repository。
- 选择 Create from template。
- 从模板列表中,找到 GitLab Cluster Management,选择 Use template。
- 输入项目详情。
- 选择 Create project。
- 在新项目中,根据需要配置文件。
配置项目
使用集群管理模板创建项目后,你可以配置:
.gitlab-ci.yml 文件
.gitlab-ci.yml 文件:
- 确保你使用的是 Helm 版本 3。
- 部署项目中启用的应用。
你可以编辑和扩展流水线定义。
流水线中使用的基础镜像由 cluster-applications 项目构建。 该镜像包含一组 Bash 实用脚本,用于支持 Helm v3 发布。
如果你使用的是 GitLab 自托管实例,则必须修改 .gitlab-ci.yml 文件。
具体来说,以 Automatic package upgrades 注释开头的部分在 GitLab 自托管实例上不起作用,
因为 include 引用的是 GitLab.com 项目。如果你删除此注释下的所有内容,流水线将成功运行。
主要的 helmfile.yml 文件
模板包含一个 Helmfile,你可以用它来管理 使用 Helm v3 的集群应用。
该文件列出了每个应用的其他 Helm 文件的路径。默认情况下,所有路径都被注释掉,因此你必须取消注释 要在集群中使用的应用的路径。
默认情况下,这些子路径中的每个 helmfile.yaml 都具有属性 installed: true。这意味着,根据你的集群状态和 Helm 发布情况,
每次流水线运行时,Helmfile 都会尝试安装或更新应用。如果你将此属性更改为 installed: false,Helmfile 会尝试从你的集群中卸载此应用。
了解更多 关于 Helmfile 的工作原理。
内置应用
模板包含一个 applications 目录,其中为模板中的每个应用配置了一个 helmfile.yaml。
内置支持的应用 有:
每个应用都有一个 applications/{app}/values.yaml 文件。
对于 GitLab Runner,文件是 applications/{app}/values.yaml.gotmpl。
在这个文件中,你可以为应用的 Helm chart 定义默认值。 有些应用已经定义了默认值。