

 **協助改進此頁面** 

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

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

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

# 使用 Argo CD
<a name="working-with-argocd"></a>

使用 Argo CD，您可以在 Git 儲存庫中定義應用程式，Argo CD 會自動將其同步到 Kubernetes 叢集。這可透過自動偏離偵測來啟用宣告式、版本控制的應用程式部署。

## 先決條件
<a name="_prerequisites"></a>

在使用 Argo CD 之前，您需要：
+ 建立 Argo CD 功能的 EKS 叢集 （請參閱 [建立 Argo CD 功能](create-argocd-capability.md))
+ 包含 Kubernetes 資訊清單的 Git 儲存庫
+  `kubectl` 設定為與您的叢集通訊

## 一般任務
<a name="_common_tasks"></a>

下列主題會引導您完成常見的 Argo CD 任務：

 ** [設定儲存庫存取](argocd-configure-repositories.md) ** - 設定 Argo CD 以使用 AWS Secrets Manager、 AWS CodeConnections 或 Kubernetes Secrets 存取您的 Git 儲存庫。

 ** [註冊目標叢集](argocd-register-clusters.md) ** - 註冊 Argo CD 將部署應用程式的目標叢集。

 ** [使用 Argo CD 專案](argocd-projects.md) ** - 使用適用於多租戶環境的專案來組織應用程式並強制執行安全界限。

 ** [設定 Argo CD 設定](argocd-configure-settings.md) ** - 使用 ConfigMap `argocd-cm` 設定 Argo CD 行為，包括自訂資源的自訂運作狀態檢查。

 ** [建立應用程式](argocd-create-application.md) ** - 使用自動或手動同步政策，建立從 Git 儲存庫部署的應用程式。

 ** [使用 ApplicationSets](argocd-applicationsets.md) ** - 使用 ApplicationSets，使用 範本和產生器在多個環境或叢集中部署應用程式。

## 存取 Argo CD UI
<a name="_access_the_argo_cd_ui"></a>

透過 EKS 主控台存取 Argo CD UI：

1. 開啟 Amazon EKS 主控台

1. 選取您的叢集

1. 選擇**功能**索引標籤

1. 選擇 **Argo CD** 

1. 選擇**開啟 Argo CD UI** 

UI 提供視覺化應用程式拓撲、同步狀態和歷史記錄、資源運作狀態和事件、手動同步控制和應用程式管理。

## Argo CD 端點 URL
<a name="argocd-endpoint-url"></a>

當您建立 Argo CD 功能時，您會同時收到 Argo CD UI 和 API 的唯一端點。端點主機名稱是*確定性的*：它使用您已知道的值，例如您的功能名稱、叢集名稱、 AWS 帳戶 ID 和 AWS 區域。如果您刪除功能並使用相同的叢集名稱和功能名稱重新建立它，您會取得相同的端點。由於主機名稱是可預測的，您可以事先建構它。例如，您可以在功能完成佈建之前預先設定 DNS、自動化或 Git Webhook 整合。對於任何功能， `serverUrl`的值`describe-capability`是最終端點。

**注意**  
由於端點是重複使用的，指向先前功能的整合 - Git Webhook、字符和 DNS 記錄 - 會自動連接到新的功能，而不表示執行個體已變更。重新建立功能後，請重新驗證這些整合，並輪換與先前執行個體共用的任何 Webhook 秘密或字符。

### 擷取端點
<a name="_retrieve_the_endpoint"></a>

若要取得功能的確切端點，請使用 `describe-capability`命令並讀取 `serverUrl`值。將 {{region-code}}、{{my-cluster}} 和 {{my-argocd}} 取代為您的值：

```
aws eks describe-capability \
  --region {{region-code}} \
  --cluster-name {{my-cluster}} \
  --capability-name {{my-argocd}} \
  --query 'capability.configuration.argoCd.serverUrl' \
  --output text
```

**注意**  
欄位`serverUrl`和端點的 DNS 記錄會在功能狀態變更為 後提供`ACTIVE`。

### 端點格式
<a name="_endpoint_format"></a>

Argo CD 端點使用以下格式：

```
https://{{capability-name}}-{{hash}}-{{account-id}}.eks-capabilities.{{region-code}}.amazonaws.com
```

主機名稱包含下列元件：
+  {{capability-name}} – Argo CD 功能的名稱，標準化為小寫，每個底線 (`_`) 以連字號 () 取代`-`。如果標準化名稱超過 41 個字元，則會截斷為 41 個字元。
+  {{hash}} – 使主機名稱唯一的 8 個字元十六進位值。這是功能名稱和叢集名稱 SHA-256 雜湊的前 8 個字元。名稱會以正斜線 () 聯結` capability-name/cluster-name `。使用您在建立 功能時指定的確切名稱。此值僅提供唯一性，並非安全性控制項。
+  {{account-id}} – 您的 12 位數 AWS 帳戶 ID。
+  `eks-capabilities.region-code.amazonaws.com` – 您 AWS 區域的 EKS 功能服務網域。

例如，`111122223333`在 `us-west-2` 區域中 `my-cluster`帳戶中叢集`my-argocd`上名為 的功能具有類似如下的端點：

```
https://my-argocd-dc855fdf-111122223333.eks-capabilities.us-west-2.amazonaws.com
```

主機名稱使用標準化功能名稱，但雜湊使用您指定的原始名稱。例如，叢集`Payments_GitOps`上的 功能會在主機名稱`payments-gitops`中`my-cluster`標準化為 ，其雜湊來自原始字串 `Payments_GitOps/my-cluster`：

```
https://payments-gitops-4ce0b382-111122223333.eks-capabilities.us-west-2.amazonaws.com
```

**注意**  
使用`describe-capability`輸出來確認 AWS 區域的確切端點。

您可以自行計算{{雜湊}}元件。`sha256sum` 在 Linux 或 macOS `shasum -a 256`上使用 。下列命令會在叢集 `my-argocd`上使用範例功能`my-cluster`。取代您在建立 功能時指定的確切名稱：

```
# Linux
printf '%s' "my-argocd/my-cluster" | sha256sum | cut -c1-8

# macOS
printf '%s' "my-argocd/my-cluster" | shasum -a 256 | cut -c1-8
```

這兩個命令都會傳回 `dc855fdf`。

### 端點存取和安全性
<a name="_endpoint_access_and_security"></a>

端點主機名稱不是秘密，而且知道它不會授予對 Argo CD 執行個體的存取權。主機名稱會公開已在功能 Amazon Resource Name (ARN) 中出現的相同非秘密資訊。`create-capability`、 `describe-capability`和 `list-capabilities`操作會傳回此 ARN. AWS Identity Center 身分驗證和 Argo CD 角色型存取控制 (RBAC) 控制對 Argo CD UI 和 API 的存取。

如果您設定私有端點存取，主機名稱只會解析為與您的 VPC 端點相關聯的私有 IP 地址。您只能從 VPC 或連線網路存取端點。如需詳細資訊，請參閱[設定 Argo CD 的私有端點存取](argocd-private-access.md)。

## 上游文件
<a name="_upstream_documentation"></a>

如需 Argo CD 功能的詳細資訊：
+  [Argo CD 文件](https://argo-cd.readthedocs.io/) - 完整使用者指南
+  [Application Spec](https://argo-cd.readthedocs.io/en/stable/user-guide/application-specification/) - 完整應用程式 API 參考
+  [ApplicationSet 指南](https://argo-cd.readthedocs.io/en/stable/user-guide/application-set/) - ApplicationSet 模式和範例
+  [Argo CD GitHub](https://github.com/argoproj/argo-cd) - 原始程式碼和範例