翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Argo CD
Argo CD は、Kubernetes 用の広く使用されている GitOps 継続的デリバリー (CD) ツールで、いくつかの主要な GitOps 原則に準拠しています。
GitOps のサポート
| [面積] | ツール機能 |
|---|---|
宣言型設定 |
Argo CD は、Git リポジトリに保存されている宣言型設定を使用します。アプリケーションとインフラストラクチャの望ましい状態は、YAML ファイルで定義されます。これらの設定は、デプロイ方法ではなく、デプロイする内容を記述します。 |
信頼できる単一のソースとしてのバージョン管理システム |
Git リポジトリは、システム全体の唯一の信頼できるソースとして機能します。アプリケーションとインフラストラクチャに対するすべての変更は、Git を通じて行われます。これにより、完全な監査証跡と、以前の状態にロールバックできます。 |
自動同期 |
Argo CD は Git リポジトリの変更を継続的にモニタリングします。変更が検出されると、クラスターの実際の状態と Git で定義されている目的の状態が自動的に同期されます。これにより、クラスターにリポジトリで説明されている状態が常に反映されます。 |
Kubernetes ネイティブ |
Argo CD は、Kubernetes 環境専用に設計されています。Kubernetes の宣言的な性質とカスタムリソースを活用してアプリケーションを管理します。 |
自己修復とドリフト検出 |
Argo CD は、クラスターのライブ状態と Git の希望する状態を定期的に比較します。ドリフト (実際の状態と目的の状態の相違) が検出されると、これらの不一致を自動的に修正できます。 |
マルチクラスターとマルチテナンシーのサポート |
Argo CD は、1 つのインスタンスから複数の Kubernetes クラスターを管理できます。マルチテナンシーをサポートしているため、さまざまなチームがアプリケーションを個別に管理できます。 |
アプリケーション定義 |
Argo CD のアプリケーションは、Application CRD (カスタムリソース定義) を使用して定義されます。これにより、デプロイする対象とその方法を定義する Kubernetes ネイティブな方法が可能になります。 |
デプロイとリリースの分離 |
Argo CD は、リリースからユーザーへのコードのデプロイを分離します。これは、ブルー/グリーンデプロイや Canary デプロイなどのさまざまなデプロイ戦略を通じて実現されます。 |
オブザーバビリティと監査可能性 |
Argo CD は、アプリケーションとクラスターの状態を監視するためのウェブ UI と CLI を提供します。変更とデプロイの明確な監査証跡を提供するために、すべてのアクションがログに記録されます。 |
セキュリティと RBAC |
Argo CD は、Kubernetes ロールベースのアクセスコントロール (RBAC) と統合されています。認証と認可のためのシングルサインオン統合をサポートしています。 |
プラグ可能なアーキテクチャ |
Argo CD は、さまざまなソース管理システム、Helm チャート、Kustomize、およびその他の Kubernetes マニフェスト形式をサポートしています。この柔軟性により、さまざまな環境やワークフローに対応できます。 |
継続的デリバリー (CD) |
Argo CD は継続的デリバリーに焦点を当てていますが、継続的インテグレーション (CI) ツールと統合して、完全な CI/CD パイプラインを作成できます。 |
これらの GitOps の原則に従うことで、Argo CD は Kubernetes デプロイを管理するための堅牢でスケーラブル、安全な方法を提供します。これにより、システムの運用状態が Git リポジトリで定義されている目的の状態と常に同期され、複雑な Kubernetes 環境での一貫性、信頼性、管理が容易になります。
Argo CD が対処できるシナリオと要件については、このガイドの後半にある「Argo CD のユースケース」を参照してください。Argo CD と Flux の比較については、このガイドの後半にある「特徴の比較」を参照してください。
詳細については、「Argo CD ドキュメント
アーキテクチャ
次の図は、EKS クラスター内で Argo CD を使用する GitOps 駆動型 CD ワークフローを示しています。詳細については、「Argo CD ドキュメント
各パラメータの意味は次のとおりです。
-
ステップ 1: プルリクエスト (PR) マージ。開発者は、Git リポジトリに保存されている Kubernetes マニフェストまたは Helm チャートに変更をコミットします。PR がレビューされ、メインブランチにマージされると、アプリケーションの望ましい状態がソース管理で更新されます。
-
ステップ 2: リポジトリ同期。Argo CD は EKS クラスター内の専用名前空間 (
argocd) 内で実行され、設定された Git リポジトリを継続的にモニタリングします。変更を検出すると、最新の更新がプルされ、宣言された状態が調整されます。 -
ステップ 3: ターゲット名前空間へのデプロイ。Argo CD は、Git から必要な状態をクラスター内のライブ状態と比較します。次に、ターゲットワークロード名前空間に必要な変更を適用して、それに応じてアプリケーションをデプロイまたは更新します。これには、デプロイ、サービス、ConfigMaps、シークレットなどの Kubernetes リソースを管理し、Git の信頼できるソースとのクラスターの一貫性を維持することが含まれます。