バージョンアップ情報
Argo CD情報
Argo CDとは
Argo CDは、Argoプロジェクトのサブプロジェクトの一つの Kubernetes向けのGitOpsに則ったCD(Continuous Delivery)ツールです。
2017年に始まったArgoプロジェクトは、Argo Workflows、Argo CD、Argo Events、Argo Rolloutsなどのサブプロジェクトを持っており、2020年4月にはCNCF(Cloud Native Computing Foundation)インキュベータープロジェクトになっています。 Argoという名前はギリシャ神話のアルゴー船から採用されており、そのマスコットは同名のタコの一種をイメージしたものになっています。
Argo CDは"CD"という名前のとおり、継続的デリバリーに特化したツールであり、CI(Continuous Integration)の機能はありません。そのため、CIツールは別途他の方法で統合する必要があります。Argo CDでは、目的とするアプリケーションの状態の定義元(マニフェスト)として、Gitリポジトリを使用するというGitOpsパターンに従います。Argo CDでの、Kubernetesマニフェストは標準のYAML/JSON 以外に、KustomizeやHelm chart、ksonnet、Jsonnet等、複数の方法で指定が可能です。
Argo CDでは、Gitリポジトリの状態に合わせて、アプリケーションのデプロイを自動または手動で行うことができます。アプリケーションの構成がGitで管理されているため、特定のブランチやタグの更新に追従が可能です。また、配備されたアプリケーションに何らかの問題があった場合にも、特定のコミットバージョンに即座に戻したりすることが可能です。
Argo CDは、実行中のKubernetesアプリケーションを継続的に監視しており、現在の状態と、Gitリポジトリの状態を比較するKubernetesコントローラーとして実装されています。現在の状態とGitリポジトリの状態に差がある場合にその違いを視覚化し、自動もしくは手動でアプリケーションの同期を行います。
主な特徴
自動デプロイ |
指定された環境へアプリケーションを自動的にデプロイ |
---|---|
設定管理/テンプレートツールのサポート |
Kustomize、Helm、ksonnet、Jsonnet、plain-YAMLなどをサポート |
マルチクラスター対応 |
複数のKubernetesクラスターを管理、デプロイ可能 |
SSO統合 |
OIDC、OAuth2、LDAP、SAML 2.0、GitHub、GitLab、Microsoft、LinkedInとのSSO統合可能 |
認可機能 |
マルチテナントやRBACポリシーに対応 |
ロールバック |
Gitリポジトリ上にコミットされたアプリケーションのどの時点へもロールバックが可能 |
ヘルスチェック |
アプリケーションリソースのヘルスステータス分析が可能 |
ドリフト検知および可視化 |
設定のドリフト検知および可視化を自動で行うことが可能 |
アプリケーション同期 |
自動もしくは、手動で理想とする状態に同期可能 |
Web UI |
アプリケーションのアクティビティをリアルタイムビューで提供 |
CLI |
自動化およびCI 統合のためのCLIを提供 |
Webhook統合 |
GitHub、BitBucket、GitLabなどのWebhook統合に対応 |
自動化トークン |
自動化のためのアクセストークンをプロジェクト単位で発行 |
PreSync/Sync/PostSync hooks |
複雑なアプリケーション展開をサポートするためのPreSync/Sync/PostSync hooksに対応(ブルーグリーン・デプロイメントや、カナリーリリース等) |
監査証跡 |
アプリケーションイベントや、APIコールの監査が可能 |
Prometheus対応 |
Prometheusメトリックスを標準でサポート |
パラメータオーバーライド |
Git上のHelmのパラメータを上書き可能 |
メリット・デメリット
メリット・必要性
-
自動同期と継続的デリバリー
Gitリポジトリの変更を検出し、Kubernetesクラスターに自動的に適用することにより、手動デプロイによるヒューマンエラーを削減することができます。
-
複数環境管理の効率化
開発、ステージング、本番など複数環境の一元管理をでき、環境間の構成の一貫性を確保することができます。 -
ロールバックの簡素化
問題発生時に以前の状態への素早くロールバックすることができます。
デメリット・注意点・課題
-
初期設定の複雑さ
適切なGitリポジトリ構造の設計が必要であり、特に複数環境・複数クラスターの構成設計にはある程度の経験が必要となります。 -
追加インフラコスト
Argo CD自体をKubernetesクラスター上で実行するために追加のリソースが必要となります。特に高可用性構成にする場合はさらに多くのリソースを必要とします。
類似プロダクト
Kubernetes / GitOpsに対応した類似のオープンソースのCDツールとしては以下のものがあります。
- Jenkins X
- FluxCD
- Spinnaker
ユースケース
-
マイクロサービスのCI/CD
マイクロサービスアーキテクチャでは、複数のサービスを並行してデプロイする必要がありますが、
Argo CDを使うことで、各サービスのデプロイ状態を Gitで管理し、一貫性を維持することができます。 -
複数の Kubernetes クラスターの一元管理
複数のKubernetesクラスター(リージョン別、本番・開発環境など)を統一的に管理することができ、各クラスターの設定をGitに保存し、Argo CDが自動で適用・同期することができます。
動作環境
Argo CDは、Kubernetesのコンポーネントとして動作するため、オンプレミスもしくは、クラウド上のKubernetes環境で動作します。
- オンプレミス/クラウドに独自に構築したKubernetes環境
- クラウドのマネージドサービスのKubernetes環境
Argo CDのライセンス
Argo CDのライセンスは、「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。
製品ダウンロード
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
サポート対象
Kubernetes
クーバネティス。Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。