

 **協助改進此頁面** 

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Argo CD 持續部署
<a name="argocd"></a>

Argo CD 是一種適用於 Kubernetes 的宣告式 GitOps 持續交付工具。使用 Argo CD，您可以自動化跨多個叢集和環境的應用程式部署和生命週期管理。Argo CD 支援多種來源類型，包括 Git 儲存庫、Helm 登錄檔 (HTTP 和 OCI) 和 OCI 映像，為具有不同安全和合規要求的組織提供靈活性。

透過 EKS 功能，Argo CD 完全由 管理 AWS，無需在叢集上安裝、維護和擴展 Argo CD 控制器及其相依性。

## Argo CD 的運作方式
<a name="_how_argo_cd_works"></a>

Argo CD 遵循 GitOps 模式，其中您的應用程式來源 (Git 儲存庫、Helm 登錄檔或 OCI 映像） 是定義所需應用程式狀態的事實來源。當您建立 Argo CD `Application` 資源時，您可以指定包含應用程式資訊清單的來源，以及目標 Kubernetes 叢集和命名空間。Argo CD 會持續監控叢集中的來源和即時狀態，自動同步任何變更，以確保叢集狀態符合所需的狀態。

**注意**  
使用適用於 Argo CD 的 EKS 功能，Argo CD 軟體會在 AWS 控制平面中執行，而不是在您的工作者節點上執行。這表示您的工作者節點不需要直接存取 Git 儲存庫或 Helm 登錄檔，此功能會處理來自 AWS 帳戶的來源存取。

Argo CD 提供三種主要資源類型：
+  **應用程式**：定義從 Git 儲存庫到目標叢集的部署
+  **ApplicationSet**：從多叢集部署的範本產生多個應用程式
+  **AppProject**：提供應用程式的邏輯分組和存取控制

 **範例：建立 Argo CD 應用程式** 

下列範例示範如何建立 Argo CD `Application` 資源：

```
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: guestbook
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/argoproj/argocd-example-apps.git
    targetRevision: HEAD
    path: guestbook
  destination:
    name: in-cluster
    namespace: guestbook
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
```

**注意**  
`destination.name` 使用 與您在註冊叢集時使用的叢集名稱 （例如`in-cluster`本機叢集的 )。`destination.server` 欄位也適用於 EKS 叢集 ARNs，但建議使用叢集名稱以提高可讀性。

## Argo CD 的優點
<a name="_benefits_of_argo_cd"></a>

Argo CD 實作 GitOps 工作流程，您可以在 Git 儲存庫中定義應用程式組態，Argo CD 會自動同步您的應用程式以符合所需的狀態。這種以 Git 為中心的方法提供所有變更的完整稽核線索，可讓您輕鬆復原，並自然地與您現有的程式碼檢閱和核准程序整合。Argo CD 會自動偵測並協調 Git 中所需狀態與叢集中實際狀態之間的偏離，確保您的部署與您的宣告組態保持一致。

使用 Argo CD，您可以從單一 Argo CD 執行個體跨多個叢集部署和管理應用程式，簡化多叢集和多區域環境中的操作。Argo CD UI 提供視覺化和監控功能，可讓您檢視應用程式的部署狀態、運作狀態和歷史記錄。UI 與 AWS Identity Center （先前稱為 AWS SSO) 整合，以實現無縫身分驗證和授權，讓您能夠使用現有的身分管理基礎設施來控制存取。

作為 EKS 受管功能的一部分，Argo CD 由 完全管理 AWS，無需安裝、設定和維護 Argo CD 基礎設施。 會 AWS 處理擴展、修補和操作管理，讓您的團隊專注於應用程式交付，而不是工具維護。

## 與 AWS Identity Center 整合
<a name="integration_with_shared_aws_identity_center"></a>

EKS 受管功能可在 Argo CD 和 AWS Identity Center 之間提供直接整合，為您的使用者啟用無縫身分驗證和授權。啟用 Argo CD 功能時，您可以設定 AWS Identity Center 整合，將 Identity Center 群組和使用者映射至 Argo CD RBAC 角色，讓您控制誰可以存取和管理 Argo CD 中的應用程式。

## 與其他 EKS 受管功能整合
<a name="_integration_with_other_eks_managed_capabilities"></a>

Argo CD 與其他 EKS 受管功能整合。
+  ** AWS Kubernetes (ACK) 控制器**：使用 Argo CD 管理跨多個叢集的 ACK 資源部署，為您的 AWS 基礎設施啟用 GitOps 工作流程。
+  **kro (Kube Resource Orchestrator)**：使用 Argo CD 跨多個叢集部署 kro 組合，在您的 Kubernetes 資產中實現一致的資源組合。

## Argo CD 入門
<a name="_getting_started_with_argo_cd"></a>

若要開始使用適用於 Argo CD 的 EKS 功能：

1. 建立並設定具有 Argo CD 必要許可的 IAM 功能角色，以存取您的來源和管理應用程式。

1.  透過 AWS 主控台、 AWS CLI 或您偏好的基礎設施做為程式碼工具，在您的 EKS 叢集上[建立 Argo CD 功能資源](create-argocd-capability.md)。

1. 設定儲存庫存取並註冊叢集以進行應用程式部署。

1. 建立應用程式資源，從您的宣告來源部署應用程式。