APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

Argo CD 超入門

Argo CDとは

Argo CDとは

  • Kubernetes向けの宣言型継続的デプロイメントツール(サービス)
  • CD手法であるGitOpsに対応

GitOpsとは

Gitを信頼できる唯一の情報源とし、インフラやアプリケーションの構成を管理するための一連のプラクティスです。

GitOpsの原則

CDに関するツールはいくつもありますが、GitOpsと呼ばれるツールは次の3つの原則がポイントとなります。

  • 望ましい状態が宣言的に表現されていること
    XXXを実行するといったコマンドを記述するのではなく、こういった状態にすることを記述します。宣言状態になっていない場合は 処理を何度も繰り返し実行します。
  • 望ましい状態がバージョン管理されていること
    状態の記述をバージョン管理することで、いつ・どういった変更がなされたかが後で追跡できるようになります。 またなにか問題が発生した場合には前の状態にロールバックすることも容易になります。
  • 自動的に更新をプルして、継続的にデプロイされること
    この点は次の「GitOpsとCIOpsの違い」で説明します。

GitOpsとCIOpsの違い

CD手法としてCIOpsがあります。CIOpsの場合、変更をトリガーにCIツールがクラスターに対してデプロイを実行します(プッシュ型)。このため、CIツール側にクラスターのデプロイ権限(更新権限)を付与する必要があり、セキュリティ上の考慮が必要です。

対してGitOpsではArgo CDなどのエージェントをクラスターに配置し、そのエージェントから情報をプルして変更を実行します。 クラスター内でデプロイを実行するためデプロイ権限を外部のツールに与える必要がなく、GitHubに対しての参照権限だけが必要となるため、 一般的にCIOpsに比べセキュリティリスクが低下します。

Argo CDの設定

設定

実際にArgo CDでアプリケーションをデプロイできるようにするためには、次の2種類の情報を設定する必要があります。

1) AppProject

  • アプリケーション設定情報の保存先リポジトリ
  • アクセスを許可するクラスターやユーザーRBAC情報

2) Application(ApplicationSet)

  • 実際のアプリケーションをデプロイするための情報

AppProjectはArgo CD側の管理情報、Application(ApplicationSet)はアプリケーション個別の情報となるため、管理主体が異なることが一般的で、 前者がインフラチーム(プラットフォームチーム)、後者は開発チームが管理するものとなります。

その先へ

Argo CDの基礎中の基礎知識は上記のようなものです。この内容を踏まえたうえでさらに詳細ステップへ進んでいただけるとわからなかったことも 少しわかるようになるでしょう。

この先としては

  • Argo CDのインストールとアップデート
  • Argo CDのユーザー管理
  • AppProjectとロール割当
  • Applicationの登録フロー(登録の責任分界)

といった内容になるでしょう。

これらの詳細もご紹介したいところですが、「超入門」というタイトルからは外れてしまうので別の機会とさせてください。

さいごに

弊社ではArgo CDを含め、様々なCloud Native環境の構築支援やその先のPlatform Engineering導入支援なども行っております。 ご興味のある方がいらっしゃいましたらぜひ弊社までご相談ください。よろしくお願いします。

www.ap-com.co.jp www.ap-com.co.jp

弊社では開発者ポータルBackstageのマネージドサービスである「PlaTT」も提供しております。 Backstageに興味があるという方もぜひご連絡をいただけると嬉しいです。

www.ap-com.co.jp