KubeCon共催のLinkerd Dayからマルチクラスターモニタリングに関するセッションを紹介
KubeCon+CloudNativeCon Europe 2023の共催でサービスメッシュのLinkerdに特化したイベントLinkerd Dayから、マルチクラスターにおけるモニタリングのユースケースを解説するセッションを紹介する。セッションを行ったのはBWI GmbHのCaroline Dohmen氏だ。
このセッションで解説されたユースケースは、finleap Connectという金融サービス企業における実装例だ。Dohmen氏の所属はBWIだが、今回は前職で手掛けた事例を紹介している。
アカウントの集約(アグリゲーション)やペイメントの接続などがfinleapのサービスの中核であると説明し、そのサービスのモニタリングにはアラートや障害時のメトリクスなどが必要要件として挙げられている。
ここではアラートなどのメトリクス監視が必須となっているが、データの保存に関しては2日間という短期で良いとして、長期間のストレージ機能は必要ないことが説明されている。
finleapの当初は本番用と開発用の2つの環境においてベアメタルのオンプレミスクラスターが用意され、それぞれPrometheusがデータ収集、可視化はGrafana、プラットフォームはKubernetesという標準的な組み合わせだった。
しかしビジネスの拡大に伴ってプラットフォーム自体も拡大し、バーレインではAWSが、ドイツとスペインではGCPが使われ、その上でVMwareのTanzuとOpenStackでの実装が求められていったと説明した。
そしてプラットフォームごとに同じ構成をコピー&ペーストして複製するという発想では、すぐに行き詰まることは明らかだったとして、プラットフォームごとに実装されるPrometheusを連携させてデータを連携させる方式が検討されたことを説明。
この方式では各プラットフォームから転送されるデータの量が膨大になるとして、提案されたのが中央のPrometheusにデータを集約させるのではなく、各プラットフォームのPrometheusに中央のGrafanaからデータを可視化に必要な分だけ取りに行く方式だ。
そしてモニタリングの対象となるクラスター間の通信も、LinkerdのMulti-Cluster Extensionを使って容易に実装できたと説明。
Pod間の通信はmTLSで暗号化され、金融サービスとして必須の要件が満足できていることを示した。
サービスミラーリングという発想でLinkerdとPrometheusを連携し、サービスディスカバリーが実装されていることを説明した。
その際に認証情報を生成するためにはTrust Anchorというサービスを利用して各Podが使う認証情報を連携させる必要があることにも言及して、Podのセキュリティを上げるために認証情報をどうやって管理するのか? という面倒な仕事が発生することをコメントした。
この実装にはHelmを使っていると説明したが、Linkerdが提供する公式のHelmチャートがまだ存在せず、Dohmen氏自身が作成したチャートを紹介。ここではLinkerdのマルチクラスターのためのコマンドを最大限に活用していることがわかる。
●GitHubのDohmen氏の個人リポジトリ:https://github.com/maresac/linkerd-multicluster-link
このセッションのまとめとして、マルチクラスターのモニタリングにはクラスターごとのモニタリングデータを1箇所で集約するとデータ転送にかかるコストが増大することから、各クラスター内でデータを保存し、中央のGrafanaから必要に応じてデータをプルする方式が良いことを紹介している。同時にマルチクラスター間の通信にはLinkerdのマルチクラスターエクステンションを使うことで容易に実装できること、Helmチャートを使うことでライフサイクルの管理も容易になることが紹介された。
Istioのユースケースセッションでマルチクラスター間通信をIstioで実装する難しさや苦労話は良く聞く話だが、Linkerdにおいてはその苦労は必要ないというのがこのセッションの隠れたテーマであったように思える。マルチクラスターでアプリケーションを実装しようと考えているエンジニアには参考になるセッションだった。
●動画:Cost-Efficient Multi-Cluster Monitoring with Prometheus
余談だが、ユースケースの対象となったfinleapのAPIドキュメントサイトが非常に良くできているので紹介したい。APIのパラメータからレスポンスの例など非常にインタラクティブに理解を進めることができるサイトになっている。システムのAPIドキュメント公開の際のベストプラクティスとして活用して欲しい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- KubeCon NA 2021からサービスメッシュの2セッションを紹介
- KubeCon EU、Linkerdでマルチクラスターを実装するセッションを紹介
- KubeCon Europe 2023共催のLinkerd Dayからアディダスの事例セッションを紹介
- CI/CDから障害の復旧までハイレベルの運用自動化を実現するKeptnとは
- サービスメッシュのLinkerd 2.9を紹介。EWMA実装のロードバランサー機能とは
- KubeCon NA 2020 LinkerdとAmbassadorを使ったマルチクラスター通信を紹介
- Kubernetesをサービスメッシュ化するIstioとは?
- CNCFのサンドボックスプロジェクト、カオスエンジニアリングのLitmus Chaosを紹介
- Kubernetesアプリケーションのモニタリングことはじめ
- KubeCon NA 2020、サービスメッシュのLinkerdの概要とユースケースを紹介