本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
GitLab CI/CD
GitLab CI/CD is an integrated part of the GitLab platform that provides continuous integration, delivery, and deployment capabilities. Although GitLab CI/CD不仅仅是一个 GitOps 工具,你可以对其进行配置以实现 GitOps 原则,尤其是在你将其用于 Kubernetes 部署时。
GitOps 支持
| 区域图 | 工具功能 |
|---|---|
Git 是唯一的真相来源 |
GitLab CI/CD 使用 Git 存储库来存储应用程序代码和基础架构配置。对系统的所有更改均通过 Git 进行,这可确保完整的历史记录和审计跟踪。 |
声明式配置 |
GitLab CI/CD 管道是在.gitlab-ci.yml 文件中定义的,该文件是存储在 Git 存储库中的声明性配置。Kubernetes 清单、Helm 图表或其他基础设施即代码 (IaC) 文件可以存储在同一个存储库中,以定义基础设施的所需状态。 |
自动化管道 |
GitLab 当更改推送到存储库时,CI/CD 会自动触发管道。这些管道可以包括构建、测试和部署应用程序的阶段。 |
Kubernetes 集成 |
GitLab CI/CD 提供原生 Kubernetes 集成,并支持对 Kubernetes 集群进行 GitOps样式部署。它可以根据 Git 中的配置自动创建和管理 Kubernetes 资源。 |
环境管理 |
GitLab CI/CD 支持将多个环境(例如暂存环境和生产环境)定义为代码。根据 GitOps惯例,可以自动部署到这些环境或可能需要手动批准。 |
查看申请 |
GitLab 可以自动为合并请求创建临时环境,类似于其他 GitOps工具中的预览环境。这支持在合并之前轻松查看和测试更改。 |
持续部署 |
GitLab 可以将 CI/CD 配置为在更改合并到特定分支时自动将更改部署到 Kubernetes 集群。 |
IaC |
GitLab CI/CD 支持与 Terraform 等工具集成,并支持将基础设施作为代码 CloudFormation 进行管理。基础设施定义可以与应用程序代码一起进行版本控制。 |
可观察性和监测 |
GitLab CI/CD 提供内置的监控和可观察性功能,包括与 Prometheus 和 Grafana 的集成。 |
安全扫描 |
GitLab CI/CD includes built-in security scanning tools that can be integrated into the CI/CDpipeline,作为 GitOps 工作流程的一部分来强制执行安全性。 |
容器注册表 |
GitLab CI/CD 包括一个内置的容器注册表,用于将容器镜像管理无缝集成到工作流程中。 GitOps |
自动 DevOps |
GitLab CI/CD can automatically configure CI/CD管道中的自动 DevOps 功能遵循 Kubernetes 部署 GitOps 原则。 |
批准工作流程 |
GitLab CI/CD 支持部署批准流程,该流程可在环境之间提供受控的促销。 |
密钥管理 |
GitLab CI/CD provides features to securely manage and use secrets within CI/CD管道。 |
版本控制和发布 |
GitLab CI/CD supports automatic versioning and release management as part of the CI/CD进程。 |
回滚 |
GitLab 如果在部署后检测到问题,CI/CD 可以轻松回滚到以前的版本。 |
审核日志 |
GitLab CI/CD 为所有操作提供全面的审计日志,以支持可追溯性方面。 GitOps |
多项目管道 |
GitLab CI/CD 支持跨多个项目或存储库的复杂 GitOps 工作流程。 |
ChatOps |
GitLab CI/CD 支持 ChatOps 集成,通过聊天界面提供协作和操作。 |
Kubernetes 集群管理 |
GitLab CI/CD 提供了直接从界面管理 Kubernetes 集群的功能。 GitLab |
但是 GitLab CI/CD is not exclusively designed for GitOps, it can be used effectively to implement GitOps practices, especially for teams that already use GitLab as their primary development platform. Its integrated approach, which combines source control, CI/CD,再加上 Kubernetes 的管理,使其成为实现工作流程的强大工具。 GitOps
GitLab CI/CD and dedicated GitOps tools such as Argo CD or Flux is that GitLab provides a more comprehensive platform that includes source control management, issue tracking, and other development tools along with its CI/CD功能之间的关键区别。这使得它特别适合需要能够在更广泛的开发系统中实施 GitOps 实践的 all-in-one解决方案的团队。
有关 C GitLab I/CD 及其架构的更多信息,请参阅 CI/ GitLab C