argo-cd基於Kubernetes的聲明式持續部署


argo-cd基於Kubernetes的聲明式持續部署

什么是argo-cd?

Argo CD是一個基於Kubernetes的聲明式GitOps持續交付工具。

為什么CD ?

應用程序定義、配置和環境應該是聲明性的,並且應該是版本控制的。應用程序部署和生命周期管理應該是自動化的、可審計的、易於理解的。

argo-cd功能

  • 將應用程序自動部署到指定的目標環境
  • 支持多種配置管理/模板工具(Kustomize、Helm、Ksonnet、Jsonnet、plain-YAML)
  • 能夠管理和部署到多個集群
  • SSO集成(OIDC, OAuth2, LDAP, SAML 2.0, GitHub, GitLab, Microsoft, LinkedIn)
  • 授權的多租戶和RBAC策略
  • 回滾/回滾到Git存儲庫中提交的任何應用程序配置
  • 應用程序資源的健康狀態分析
  • 自動配置漂移檢測和顯示
  • 將應用程序自動或手動同步到所需的狀態
  • Web UI,提供應用程序活動的實時視圖
  • 用於自動化和CI集成的CLI
  • Webhook集成(GitHub, BitBucket, GitLab)
  • 用於自動化的訪問令牌
  • PreSync、Sync、PostSync鈎子支持復雜的應用程序發布(例如,blue/green & canary升級)
  • 應用程序事件和API調用的審計跟蹤
  • Prometheus指標
  • 在Git中重寫ksonnet/helm參數的參數覆蓋

Argo 如何工作的CD?

Argo CD遵循GitOps模式,使用Git存儲庫存儲所需應用程序的配置。
Kubernetes清單可以通過以下幾種方式指定:

  • kustomize應用程序
  • helm圖表
  • ksonnet應用程序
  • jsonnet文件
  • 基於YAML/json配置
  • 配置管理插件配置的任何自定義配置管理工具

Argo CD實現為kubernetes控制器,它持續監視運行中的應用程序,並將當前的活動狀態與期望的目標狀態進行比較(如Git repo中指定的那樣)。如果已部署的應用程序的活動狀態偏離了目標狀態,則認為是OutOfSync。Argo CD報告和可視化這些差異,同時提供了方法,可以自動或手動將活動狀態同步回所需的目標狀態。在Git repo中對所需目標狀態所做的任何修改都可以自動應用並反映到指定的目標環境中。

快速開始:

這將創建一個新的名稱空間argocd, Argo CD服務和應用程序資源將駐留在這里。

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

下載 Argo CD CLI

VERSION=$(curl --silent "https://api.github.com/repos/argoproj/argo-cd/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/') 
curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/download/$VERSION/argocd-linux-amd64

chmod +x /usr/local/bin/argocd
現在你就可以運行argocd

開源代碼:

https://github.com/argoproj/argo-cd/
https://argoproj.github.io/argo-cd/
https://cd.apps.argoproj.io/applications


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM