(Translated by https://www.hiragana.jp/)
ASCII.jp:「Argo CD」を使ってAKSにGitOpsを導入する

このページの本文ほんぶん

FIXER Tech Blog - Development

FIXER cloud.config Tech Blog

「Argo CD」を使つかってAKSにGitOpsを導入どうにゅうする

2023ねん07がつ06にち 1000ふん更新こうしん

ぶん藤野ふじのもとぶんまわし/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷
FIXER

 ほん記事きじはFIXERが提供ていきょうする「cloud.config Tech Blog」に掲載けいさいされた「[Argo CD]AKSにGitOpsを導入どうにゅうする」をさい編集へんしゅうしたものです。

 みなさんこんにちは、FIXER2ねん藤野ふじのです。今回こんかい業務ぎょうむ一環いっかんとしてArgo CDの採用さいよう検討けんとうする機会きかいがありましたので、そのきっかけとフローの構成こうせいあん備忘録びぼうろくとして記事きじにしてみようとおもいます。

背景はいけい問題もんだいてん

 今回こんかいArgo CDの導入どうにゅう検討けんとうしているプロジェクトでは、フロント・バックエンドはGitベースで管理かんりされ、CI/CDが確立かくりつされていましたが、インフラようのGitリポジトリでは、CI/CDがまれていませんでした。

FIXER

問題もんだいてん
・Gitとじつ環境かんきょう差分さぶんしょうじる
人為じんいてきミスの発生はっせい
・デグレの発生はっせい

 これらの問題もんだいてんから、GitOpsを導入どうにゅうしようということになりました。

Argo CDとは?

 Argo CDは、KubernetesマニフェストをGitOpsで管理かんりするためのオープンソースCDツールです。​

メリット
・Argoが自動的じどうてきにmanifestを更新こうしんするため、人為じんいてきミスをなくすことができます。​​
・Web UIから変更へんこう前後ぜんこう差分さぶん確認かくにんできるため、観測かんそくせい向上こうじょうします。
・ACRやGitの変更へんこう検知けんちして、自動的じどうてき同期どうきしたり変更へんこうPRをしたりできるため、AKSじょうとインフラリポジトリとの差分さぶんをなくすことができます。

なぜArgo CDなのか?
・ArgoにはGitリポジトリのマニフェストのdiffを検知けんちする機能きのうがあります。​また、diffを自動的じどうてき同期どうきさせるself-healing機能きのうがあります。「flux」というGitOpsがありますが、こちらにはその機能きのうがありません。​
やすいWeb GUIがあります。こちらもおなじく、fluxにはありません。

FIXER

構成こうせい

 ここからdev, st, pr環境かんきょうのそれぞれの構成こうせいと、そのフローにした理由りゆう解説かいせつしていきます。

dev環境かんきょう

 Argo CD Image Updater利用りようすることで、インフラリポジトリのdevelopブランチにコミットされるたびに、自動的じどうてきにAKSじょう適用てきようされるようにします。

 コミットごとにPRを作成さくせいすることもできますが、​マージするのが手間てまだしコミット履歴りれきよごれてうれしくありません。したがって、フローは以下いかのようにしました。

FIXER

st環境かんきょう

 st環境かんきょうではpr環境かんきょうわせる意味いみふくめて、まずdevelopへのPRを作成さくせいしたのち、それをマージすることでst環境かんきょう適応てきおうします。

 GitHub Actionsと連携れんけいすることでPRを作成さくせいできます。また、kustomize利用りようすることで、dev, st, prの差分さぶん管理かんりでき、stagingブランチを必要ひつようがなくなります(6がつ20日はつか編集へんしゅう)。

FIXER

pr環境かんきょう

 pr環境かんきょうではmasterへマージするためのPRを毎回まいかい用意よういして、差分さぶんとうをよく理解りかいしたうえで安全あんぜんにデプロイします。

FIXER

大変たいへんだったこと

 Argo CDとACRあいだ認証にんしょうとおのが大変たいへんでした。趣旨しゅしとずれるので詳細しょうさいはぶきますが、最終さいしゅうてきには以下いかのコマンドを使用しようすることで解決かいけつできました。

az aks check-acr --name <ACRめい> --resource-group <リソースグループ> --acr <ACRめい>.azurecr.io

 これでとおるなんてだれおもわんやん、、、。

最後さいご

 今回こんかいはArgo CDの導入どうにゅう事例じれい紹介しょうかいしました。フローのみで内容ないようすこうすくなってしまいましたが、それぞれの実装じっそう方法ほうほうとか、いたらまた記事きじこうとおもいます。

藤野ふじのもとぶんまわし/FIXER
2022年度ねんどからFIXERに入社にゅうしゃしました。きな言語げんごはTypeScriptのComposition APIです。フルスタックエンジニアを目指めざして、日々ひび精進しょうじんしていきたいです(願望がんぼう

カテゴリートップへ

この連載れんさい記事きじ