このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
Argo CD の使用
Argo CD では、Git リポジトリでアプリケーションを定義し、Argo CD はそれらを Kubernetes クラスターに自動的に同期します。これにより、自動ドリフト検出による宣言型のバージョン管理されたアプリケーションのデプロイが可能になります。
前提条件
Argo CD を使用する前に、以下が必要です。
-
EKS クラスターに Argo CD 機能が作成されていること (「Argo CD 機能を作成する」を参照)
-
Git リポジトリに Kubernetes マニフェストが含まれていること
-
クラスターと通信できるように
kubectlが設定されていること
一般的なタスク
以下のトピックでは、一般的な Argo CD タスクについて説明します。
リポジトリアクセスを設定する – AWS Secrets Manager、AWS CodeConnections、または Kubernetes Secrets を使用して、Git リポジトリにアクセスするように Argo CD を設定します。
ターゲットクラスターを登録する – Argo CD がアプリケーションをデプロイするターゲットクラスターを登録します。
Argo CD プロジェクトを操作する – マルチテナント環境向けにプロジェクトを使用してアプリケーションを整理し、セキュリティ境界を適用します。
Argo CD 設定を構成する – カスタムリソースのカスタムヘルスチェックなど、argocd-cm ConfigMap を使用して Argo CD の動作を設定します。
Application を作成する – 自動または手動の同期ポリシーを使用して Git リポジトリからデプロイするアプリケーションを作成します。
ApplicationSet を使用する – テンプレートとジェネレーターを利用し、複数の環境またはクラスターにアプリケーションをデプロイするために ApplicationSets を使用します。
Argo CD UI にアクセスする
EKS コンソールから Argo CD UI にアクセスします。
-
Amazon EKS コンソールを開きます。
-
クラスターを選択します。
-
[機能] タブを選択します。
-
[Argo CD] を選択します。
-
[Argo CD UI を開く] を選択します。
UI は、アプリケーションのトポロジを視覚的に表示し、同期のステータスと履歴、リソースのヘルスとイベント、手動同期コントロール、アプリケーション管理を提供します。
Argo CD エンドポイント URL
Argo CD 機能を作成すると、Argo CD UI と API の両方に対して一意のエンドポイントを受け取ります。エンドポイントのホスト名は決定論的です。機能名、クラスター名、AWS アカウント ID、AWS リージョンなど、既に知っている値を使用します。機能を削除し、同じクラスター名と機能名で再作成すると、同じエンドポイントが得られます。ホスト名は予測可能であるため、事前に構築できます。例えば、機能のプロビジョニングが完了する前に、DNS、オートメーション、または Git Webhook 統合を事前に構成できます。どの機能でも、describe-capability の serverUrl 値が正式なエンドポイントです。
注記
エンドポイントが再利用されるため、以前の機能を指していた統合 (Git Webhook、トークン、DNS レコード) は、インスタンスが変更されたことを示すことなく、新しい機能に自動的に接続します。機能を再作成した後は、これらの統合を再確認し、以前のインスタンスと共有していた Webhook シークレットまたはトークンをローテーションしてください。
エンドポイントを取得する
機能の正確なエンドポイントを取得するには、describe-capability コマンドを使用し、serverUrl 値を読み取ります。region-code、my-cluster、および my-argocd を実際の値に置き換えます。
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-namemy-argocd\ --query 'capability.configuration.argoCd.serverUrl' \ --output text
注記
serverUrl フィールドとエンドポイントの DNS レコードは、機能のステータスが ACTIVE に変わると使用可能になります。
エンドポイントフォーマット
Argo CD エンドポイントは次の形式を使用します。
https://capability-name-hash-account-id.eks-capabilities.region-code.amazonaws.com
ホスト名は次のコンポーネントで構成されます。
-
capability-name– Argo CD 機能の名前。小文字に正規化され、各アンダースコア (_) がハイフン (-) に置き換えられます。正規化された名前が 41 文字を超える場合は、41 文字に切り詰められます。 -
hash– ホスト名を一意にする 8 文字の 16 進数値。これは、機能名とクラスター名の SHA-256 ハッシュの最初の 8 文字です。名前はフォワードスラッシュ (capability-name/cluster-name) で結合されます。機能の作成時に指定した正確な名前を使用してください。この値は一意性を提供するだけであり、セキュリティ制御ではありません。 -
account-id– 12 桁の AWS アカウント ID。 -
eks-capabilities.region-code.amazonaws.com– AWS リージョンの EKS 機能サービスドメイン。
例えば、us-west-2 リージョンのアカウント 111122223333 にあるクラスター my-cluster 上の my-argocd という名前の機能には、次のようなエンドポイントがあります。
https://my-argocd-dc855fdf-111122223333.eks-capabilities.us-west-2.amazonaws.com
ホスト名は正規化された機能名を使用しますが、ハッシュは指定した未加工の名前を使用します。例えば、クラスター my-cluster 上の機能 Payments_GitOps はホスト名では payments-gitops に正規化され、そのハッシュは未加工の文字列 Payments_GitOps/my-cluster から生成されます。
https://payments-gitops-4ce0b382-111122223333.eks-capabilities.us-west-2.amazonaws.com
注記
AWS リージョンの正確なエンドポイントを確認するには、describe-capability 出力を使用します。
hash コンポーネントは自分で計算できます。Linux では sha256sum を、macOS では shasum -a 256 を使用します。次のコマンドでは、クラスター my-cluster 上の機能 my-argocd の例を使用します。機能の作成時に指定した正確な名前に置き換えてください。
# 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 を返します。
エンドポイントのアクセスとセキュリティ
エンドポイントのホスト名はシークレットではなく、それを知っているからといって Argo CD インスタンスへのアクセスが許可されるわけではありません。ホスト名は、機能の Amazon リソースネーム (ARN) に既に含まれているのと同じ非シークレット情報を公開します。create-capability、describe-capability、および list-capabilities の操作はこの ARN を返します。AWSアイデンティティセンター認証と Argo CD のロールベースアクセスコントロール (RBAC) が、Argo CD UI と API へのアクセスを制御します。
プライベートエンドポイントアクセスを設定すると、ホスト名は VPC エンドポイントに関連付けられたプライベート IP アドレスにのみ解決されます。エンドポイントには、VPC または接続されたネットワークからのみアクセスできます。詳細については、「Argo CD のプライベートエンドポイントアクセスを設定する」を参照してください。
アップストリームドキュメント
Argo CD 機能の詳細については、以下を参照してください。
-
Argo CD ドキュメント
– 完全なユーザーガイド -
アプリケーション仕様
– フルアプリケーション API リファレンス -
ApplicationSet ガイド
– ApplicationSet のパターンと例 -
Argo CD GitHub
– ソースコードと例