AKS および Azure Arc 対応 Kubernetes 用の GitOps (Argo CD) を使用したアプリケーションのデプロイ

Azure Kubernetes Service (AKS) クラスターと Azure Arc 対応 Kubernetes クラスターで GitOps に Argo CD を使用すると、Git リポジトリがアプリケーションとクラスター構成の望ましい状態の信頼できるソースになります。 このアプローチには、いくつかの利点があります。

  • 継続的同期: Argo CD はクラスター内でネイティブに実行され、マニフェスト、Helm チャート、または Kustomize 構成が Git から直接プルされます。
  • ドリフト検出と修復: システムは、Git の目的の状態に対してクラスターのライブ状態を常に監視します。 ドリフトを即座に検出し、特定の自動化ポリシーに基づいて調整します。
  • セキュリティ優先プル モデル: 従来の CI/CD とは異なり、Argo CD は純粋なプルベースのアーキテクチャを使用します。 クラスターによって接続が開始されるため、受信ファイアウォール ポートを開いたり、Git リポジトリにプライベート クラスターへのネットワーク アクセスを許可したりする必要はありません。 このアーキテクチャにより、Argo CD は、高セキュリティ環境、エッジ コンピューティング、大規模なハイブリッド クラウド スケールに最適です。 

Argo CD クラスター拡張機能

管理を効率化するために、Azure はマネージド クラスター拡張機能 (Microsoft.KubernetesConfiguration/extensions/microsoft.argocd) として Argo CD を提供します。 GitOps を使用してアプリケーションを管理するには、 Argo CD 拡張機能 をクラスターにデプロイします。

マネージド コンポーネントとコントローラー

Argo CD 拡張機能パッケージは、エンタープライズ レベルの GitOps に必要なコア コンポーネントを管理します。

コンポーネント名 Kubernetes サービス名 主な責任
アプリケーション コントローラー argocd-application-controller 実行中のアプリケーションを継続的に監視し、Git の目的のターゲット状態とライブ状態を比較します。
API サーバー argocd-server Web UI、CLI、および外部 CI/CD システムで使用される API を公開する gRPC/REST サーバーとして機能します。
リポジトリ サーバー argocd-repo-server Git リポジトリのローカル キャッシュを保持し、ソース (Helm、Kustomize など) から Kubernetes マニフェストを生成する役割を担います。
Redis argocd-redis マニフェスト生成の結果とアプリケーションの状態をキャッシュするために使用されるエフェメラルなメモリ内データ ストアを提供します。
Dex と通知 argocd-dex-server GitHub、SAML、LDAP などの外部プロバイダーからの ID を仲介するオープンソースの OpenID Connect プロバイダー。
通知コントローラー argocd-notifications-controller アプリケーションの状態の変化を監視し、Slack、電子メール、Webhook などの外部サービスにアラートをトリガーします。
ApplicationSet コントローラー argocd-applicationset-controller 複数のクラスターにまたがる複数のアプリケーションの作成を自動化します。

Argo CD 構造

Argo CD 拡張機能をクラスターにデプロイした後は、次のような Argo CD コンストラクトを使用してワークロードを管理できます。

  • Application and ApplicationSet: 単一ターゲットデプロイ用に個々のアプリケーションを定義するか、または ApplicationSet を使用して、テンプレートに基づいて異なるクラスターと環境間で複数のアプリケーションの作成を自動化します。

  • 管理インターフェイス: Argo CD Web UI を使用してクラスターの正常性を視覚的に表現するか、ターミナル ベースの操作と自動化に Argo CD CLI を使用してリソースを管理および監視します。

詳細については、 Argo CD のドキュメントを参照してください

ID とアクセス

エンタープライズ セキュリティ要件に合わせて、Argo CD 拡張機能は、AKS と Azure Arc 対応 Kubernetes クラスターの両方の Azure ID と統合されます。

この拡張機能ではワークロード ID フェデレーションがサポートされています。これにより、Argo CD は、有効期間の長いシークレットに依存することなく、Azure Container Registry (ACR) や Azure DevOps などの Azure リソースに安全にアクセスできます。 Argo CD 拡張機能では、Microsoft Entra ID を使用したシングル サインオン (SSO) もサポートされています。これにより、ユーザーは既存のエンタープライズ ID を使用して Argo CD に対する認証を行えます。 このモデルを使用すると、Azure は資格情報とアクセス ポリシーをクラスター構成または Git リポジトリに直接埋め込むのではなく、一元的に管理します。

次のステップ

  • Argo CD 拡張機能をデプロイし、Argo CD GitOps チュートリアルで GitOps を使用してアプリケーションを管理する方法について説明します。