全部产品

Kubernetes发布和运维职责分离

在实际的发布中由于一些安全和管理因素分离开发人员和运维人员的职责。本文将介绍在云效 Kubernetes 发布中如何分离开发和运维人员。

基于代码库分离发布和运维权限

当用户采用 Kubernetes YAML 方式部署应用时,应用的所有配置实际由 YAML 进行描述其中包含了应用的所有运行时配置信息。 在这种模式下为了分离发布和运维的权限,需要将应用代码库和 Kubernetes YAML 分离到不同的代码仓库中并通过对代码库的权限控制确保只有运维人员能够修改 YAML 文件的内容:

  • 应用代码库:该代码库中主要包含应用的源码以及用于构建镜像的 Dockerfile 文件。并且主要由开发人员负责维护

  • 部署配置库:该代码库中主要包含 Kubernetes 发布所需的所有 YAML 源文件(或模板文件)。并且主要由运维人员负责维护

在一条流水线中分别添加应用代码库和部署配置库作为流水线的输入源。在前序的任务中基于应用代码库完成应用代码的编译构建等工作,并生成发布所需的 Docker 镜像,在部署任务中管理部署配置库中的 YAML,并将前序任务生成的镜像作为发布的入参完成最终的发布动作。

该模式通过代码库让应用开发人员专注于应用的开发与发布,而无需关心应用的部署配置。当需要进行配置更新时,由运维人员对 YAML 进行更新即可。