本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
GitLab CI/CD
GitLab CI/CD 是 GitLab 平台的整合部分,可提供持續整合、交付和部署功能。雖然 GitLab CI/CD 不只是 GitOps 工具,但您可以設定它來實作 GitOps 原則,尤其是當您將其用於 Kubernetes 部署時。
GitOps 支援
| 區域圖 | 工具功能 |
|---|---|
Git 作為單一事實來源 |
GitLab CI/CD 使用 Git 儲存庫來存放應用程式程式碼和基礎設施組態。系統的所有變更都是透過 Git 進行,以確保完整的歷史記錄和稽核線索。 |
宣告式組態 |
GitLab CI/CD 管道在 .gitlab-ci.yml 檔案中定義,這是存放在 Git 儲存庫中的宣告式組態。Kubernetes 資訊清單、Helm Chart 或其他基礎設施即程式碼 (IaC) 檔案可以存放在相同的儲存庫中,以定義基礎設施的所需狀態。 |
自動化管道 |
將變更推送至儲存庫時,GitLab CI/CD 會自動觸發管道。這些管道可以包含建置、測試和部署應用程式的階段。 |
Kubernetes 整合 |
GitLab CI/CD 提供原生 Kubernetes 整合,並支援將 GitOps 樣式部署到 Kubernetes 叢集。它可以根據 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 包含內建的安全掃描工具,可整合到 CI/CD 管道中,以在 GitOps 工作流程中強制執行安全性。 |
容器登錄檔 |
GitLab CI/CD 包含內建容器登錄檔,可在 GitOps 工作流程中無縫整合容器映像管理。 |
Auto DevOps |
GitLab CI/CD 中的 Auto DevOps 功能可以自動設定遵循 Kubernetes 部署 GitOps 原則的 CI/CD 管道。 |
核准工作流程 |
GitLab CI/CD 支援部署的核准程序,可在環境之間提供受控制的提升。 |
秘密管理 |
GitLab CI/CD 提供在 CI/CD 管道內安全地管理和使用秘密的功能。 |
版本控制和版本 |
GitLab CI/CD 支援自動版本控制和發行管理,作為 CI/CD 程序的一部分。 |
轉返 |
如果在部署後偵測到問題,GitLab CI/CD 可讓您輕鬆轉返至先前的版本。 |
稽核日誌 |
GitLab CI/CD 為所有動作提供全面的稽核日誌,以支援 GitOps 的可追蹤性方面。 |
多專案管道 |
GitLab CI/CD 支援跨多個專案或儲存庫的複雜 GitOps 工作流程。 |
ChatOps |
GitLab CI/CD 支援 ChatOps 整合,透過聊天介面提供協作和操作。 |
Kubernetes 叢集管理 |
GitLab CI/CD 提供直接從 GitLab 介面管理 Kubernetes 叢集的功能。 |
雖然 GitLab CI/CD 並非專門為 GitOps 設計,但它可以有效地用於實作 GitOps 實務,尤其是已使用 GitLab 作為其主要開發平台的團隊。其整合方法結合了來源控制、CI/CD 和 Kubernetes 管理,使其成為實作 GitOps 工作流程的強大工具。
GitLab CI/CD 和專用 GitOps 工具如 Argo CD 或 Flux 之間的主要區別在於,GitLab 提供更全面的平台,其中包括來源控制管理、問題追蹤和其他開發工具及其 CI/CD 功能。這使得它特別適合需要在更廣泛的開發系統中實作 GitOps 實務all-in-one解決方案的團隊。
如需 GitLab CI/CD 及其架構的詳細資訊,請參閱 GitLab CI/CD 文件