【KubeCon Day 3】ArgoCon 2024参加レポート
#SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。
本記事は、KubeCon NA 2024のCo-Located Event ArgoCon 2024のセッション紹介と要約です。
ArgoConについてArgoCon会場の雰囲気おすすめセッション要約ArgoCon | Welcome + Project Update - Pratik Wadher, IntuitBuilding a Cutting-Edge Kubernetes Internal Developer Platform at NVIDIA - Carlos Santana, AWS & Feng Zhou, Nvidia CorpEnhancing Compliance and Safety with Argo CD Ephemeral Access - Leonardo Luz Almeida & Vijay Agrawal, IntuitSpace Age GitOps: Lifting off with Argo Promotions (Live Demo!) - Michael Crenshaw & Zach Aller, IntuitGitOps Safety: Rendering Accurate ArgoCD Diffs Directly on Pull Requests - Dag Bjerre Andersen, Doubble & Regina Voloshin, Codefresh by Octopus DeployManaging Application Dependencies in Argo CD - Christian Hernandez, AkuityEphemeral Environment Practices - the Good, Bad, and Ugly - Luke Philips & David Grizzanti, The New York TimesStop Deploying Blind! Using Observability and Argo Rollouts to Light the Way - Kostis Kapelonis, Codefresh by Octopus Deploy⚡ Lightning Talk: Ranking Argo CD Settings in a Tier List - Gerald Nunn, Red Hat終わりに
ArgoConについて
ArgoConは、KubeConのCo-locatedイベントの一つとして、Argoプロジェクトに関する協力や議論、知識共有を目的に開催されるイベントです。Argoプロジェクトには、Argo CD、Argo Workflows、Argo Rollouts、Argo Eventsの4つが含まれ、このイベントはベンダーニュートラルで行われます。主催は、CodefreshやRed Hat、Intuitといった企業が参加するCloud Native Computing FoundationのArgoコミュニティです。
ArgoConは2021年にバーチャルイベントとしてスタートし、初回から好評を博しました。その後もCNCFの主催で継続され、2022年にはカリフォルニア州マウンテンビューのコンピュータ歴史博物館で対面イベントが実施されました。2023年からは北米とヨーロッパでKubeConのCo-locatedイベントとして年に2回開催されており、複数のトラックが設けられ、Argoプロジェクトの高い人気を物語っています。
実際、KubeCon 2024 NAで開催されたCo-locatedイベントの中、ArgoConが一番セッション数が多く、早朝のKeynoteから夕方のLTまであります。また、出展ブースも人気が高く、通路を塞ぐほど人が多かったです。
ArgoCon会場の雰囲気
フライトキャンセルなど色々ありまして、ArgoCon前日の夜に、ソルトレイクシティに到着しました。
時差ぼけの影響であまり眠れず、早めにバッジを発行するために朝8時半ごろ会場に到着しました。気温は5度前後で、予報では霧雨となっていたものの、実際には大雪になっていました。
今回の会場も綺麗です。
今回のArgoConのスポンサー企業は以下の通りです。
会場は2つに分かれており、特にKeynote会場は非常に広いです。Keynoteはほぼ満席の状態でした。
ArgoConのブースも朝から混雑しており、目玉のぬいぐるみはこちらです。
おすすめセッション要約
今回は、朝のKeynoteから夕方までフル参加しました。本編セッションは2つの部屋で同時進行していたため、私はArgoCDとArgoRolloutsを中心にしたセッションを選びました。
また、昼間のLTについては、ブースでデモを見ていたため、一部見逃したセッションもありました。
以下は私のおすすめのセッションです。KubeCon NA 2024終了後、Youtubeで視聴することができます。
ArgoCon | Welcome + Project Update - Pratik Wadher, Intuit
Argoプロジェクトの今後の方向性は、大きく以下の3つにまとめられます。
- 大規模エンタープライズ向けのキャパシティ拡張
- Kubernetesおよびエコシステムとの連携強化
- ユーザー体験のさらなる向上
また、今後の注目ポイントとして、ArgoプロジェクトとAIの活用が挙げられます。ちなみにケース募集サイトでは、「We don’t use AI☺️」がトップリスト入りしていました(笑)。
Building a Cutting-Edge Kubernetes Internal Developer Platform at NVIDIA - Carlos Santana, AWS & Feng Zhou, Nvidia Corp
IDP(Internal Developer Platform)におけるBackstageとArgoプロジェクトの活用についての話です。
スピーカーの英語は非常に聞き取りづらかったものの、NVIDIAのIDPの構成と運用について紹介がありました。特に、gitops-bridgeを利用した共通のIaCテンプレートと、自動生成されるCLIの仕組みが非常に興味深い内容でした。
関連リポジトリはこちらです。
Enhancing Compliance and Safety with Argo CD Ephemeral Access - Leonardo Luz Almeida & Vijay Agrawal, Intuit
ArgoCDにおけるEphemeral Accessに関する話です。
ArgoCDの運用における難点として、以下が指摘されました。
- 細かい権限管理が不足している
- エンタープライズ環境ではセキュリティリスクがある
- UI上の操作が追跡不能である
- デプロイのフリーズなどの調整が難しい
これに対するIntuitのソリューションとして、Ephemeral Access用のArgo UI Extensionが導入されています。
詳細はこちらのリポジトリで確認できます:
さらに、このExtension内のAccessRequestControllerを利用することで、承認ベースのChangeRequest機能も実現できるようです。
Space Age GitOps: Lifting off with Argo Promotions (Live Demo!) - Michael Crenshaw & Zach Aller, Intuit
ArgoCDを活用した環境間Promotionに関する話です。CyberAgentではここまで複雑な事例はないため、内容の半分ほどしか理解できませんでしたが、ArgoCDのUI上でPRの作成・承認・環境間のPromotionが可能である点は非常に興味深く感じました。
関連リポジトリはこちらです。
GitOps Safety: Rendering Accurate ArgoCD Diffs Directly on Pull Requests - Dag Bjerre Andersen, Doubble & Regina Voloshin, Codefresh by Octopus Deploy
ArgoCDのDiffプレビューにもう一つの方法として、軽量なCLIツールである「argocd-diff-preview」が提供されています。
Managing Application Dependencies in Argo CD - Christian Hernandez, Akuity
ArgoCD Application間の依存関係解決について、Akuity社が提示した三つのソリューションです。
- Eventual consistency
にてを設定し、一時的に依存関係エラーを無視します。その後、再実行やReconcileプロセスで依存関係が解決されるのを待ちます。
- App of Appパターン
初期設定段階で一つのPrimary ArgoCD Applicationを立ち上げ、他のすべてのArgoCD Applicationを一括で管理します。このPrimary Application内でを利用して、依存関係のあるApplication間で同期の優先度を調整するパターンです。
- ApplicationSets Progressive Syncs
ではを設定できませんが、Applicationの順序を定義することで依存関係の管理が可能です。ただし、この方法にはを有効化できないというデメリットがあります。
Ephemeral Environment Practices - the Good, Bad, and Ugly - Luke Philips & David Grizzanti, The New York Times
New York TimesのIDPとArgoCDの運用実践について、多くの点で私が担当しているAmebaBlogの運用と共通点があり、親近感を感じました。
New York TimesではEphemeral Environmentを重視しており、IDPの一部として、IaCの自動生成や関連するWorkflowを構築しています。
また、スケーラビリティに関しても、New York TimesがShardingに注力する必要があると述べていました。ArgoCDのスケーラビリティ最適化については、過去に私が執筆した記事をご参照ください。
Stop Deploying Blind! Using Observability and Argo Rollouts to Light the Way - Kostis Kapelonis, Codefresh by Octopus Deploy
Argo Rolloutsのベストプラクティスを紹介するセッションでした。Argo Rolloutsを検討している方にはぜひ視聴をおすすめします。
Codefreshは、Argo Rolloutsにおいてトラフィックの切り替えも自動化すべきだと指摘しており、そのためにはUSEとREDの基準でメトリクスを選定する必要があると説明していました。
- USE
- U: Utilization(サービスが稼働していた時間の割合)
- S: Saturation(キューの長さ)
- E: Count(エラーの数)
- RED
- R: Rate(1秒あたりのリクエスト数)
- E: Errors(失敗したリクエスト数)
- D: Duration(リクエスト処理にかかる時間)
⚡ Lightning Talk: Ranking Argo CD Settings in a Tier List - Gerald Nunn, Red Hat
LTということで、非常に活発な雰囲気でした。
スピーカーと視聴者による投票で、ArgoCD設定のTierランクが決まったようです。しかし時間が限られていたため、すべてをカバーすることはできませんでした。
- Tier 1(絶対必須、むしろデフォルト設定にすべき)
- Resrouce Tracking method: Annotation
- Persist Health in redis
- Tier 2(常に有用)
- ignore differences
- respect ignore differneces
- auto create namespace
- resource custom labels
- ui banner
- ignore resource updates
- Tier 3(特定のケースで有効)
- Label Key
- ignore aggregated roles
- Selective sync
- kustomize buildOptions
- ui.cssurl
- Tier 4(あまり興味がない)
- 時間のため、並べられませんでした
- Tier 5(要らない子)
- Resrouce Tracking method: label
終わりに
時差ボケの中、集中力を保つのはかなり大変でしたが、会場で提供されているコーヒーのおかげでなんとかフル参加できました。
明日からの本編が楽しみです。
SRG では一緒に働く仲間を募集しています。
ご興味ありましたらぜひこちらからご連絡ください。