View a markdown version of this page

Argo CD の使用 - Amazon EKS

このページの改善にご協力ください

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「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 にアクセスします。

  1. Amazon EKS コンソールを開きます。

  2. クラスターを選択します。

  3. [機能] タブを選択します。

  4. [Argo CD] を選択します。

  5. [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 \ --region region-code \ --cluster-name my-cluster \ --capability-name my-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 機能の詳細については、以下を参照してください。