CNCFのサンドボックスプロジェクト、カオスエンジニアリングのLitmus Chaosを紹介

2021年7月1日(木)
松下 康之 - Yasuyuki Matsushita
CNCFのサンドボックスプロジェクトで、Kubernetesに特化したカオスエンジニアリングのLitmus Chaosを紹介する。

Litmus Chaosのユースケース

Litmus Chaosのユースケース例

Litmus Chaosのユースケース例

次に紹介したのはLitmus Chaosのユースケースだ。ここでは、CD(Continuous Delivery)の中での利用、GitOpsの一貫としてテストの一部としての利用、そしてテストの一貫としての利用などが挙げられている。ここでもCI/CDの一部として使うこと、デベロッパーおよび運用担当者がテストの一部に取り入れることが推奨されていると言える。

Litmus Chaosのコンポーネント概略

Litmus Chaosのコンポーネント概略

Litmus Chaosのコンポーネントは、HelmのチャートとKubernetesの上で稼働するオペレータおよびYAMLファイルで構成されており、それ以外にはChaosHubと称されるリポジトリーが必要となる。パブリックなChaosHubとしてはLitmus Chaosの公式サイトが挙げられるが、プライベートにも構築できることがポイントだろう。またKubernetes以外のベアメタル、仮想マシンのインフラにも対応していることが書かれているのは、まだKubernetesに100%移行できていないユーザーに対するメッセージだ。

参考:Litmus Chaosの公式サイトにあるChaosHub:Chaos Experiments for Kubernetes

ChaosHubはいわゆるKubernetesのノウハウ集であるOperatorHubのカオスエンジニアリング版と言える。

オンプレミスのKubernetes、ベアメタル&仮想マシン、パブリッククラウドに対応

オンプレミスのKubernetes、ベアメタル&仮想マシン、パブリッククラウドに対応

より詳細にLitmus Chaosの中身を解説したのが次のスライドだ。

Litmus Chaosの詳細。Kubernetesに特化しているのがわかる

Litmus Chaosの詳細。Kubernetesに特化しているのがわかる

ChaosHubからダウンロードされたExperiment(障害を起こす実験の名称)がYAMLファイルとして記述され、それがChaos CRDとして定義され、ネームスペースを生成してスケジューラー、メトリクスデータのExporter、イベントのExporterがPodとして稼働するという構成だ。

カオスエンジニアリングの種類

カオスエンジニアリングの種類

Experimentの種類としては、Podに障害を起こすPod Chaosをはじめ、ノード、ネットワーク、ストレスなど多様である。Gremlinがシナリオベースのカオスエンジニアリングを指向しているのとは異なり、コンポーネントごとのExperimentとなっているのは興味深いと言えるだろう。運用担当者としてはシナリオベース、デベロッパーからみればコンポーネントベースのほうがわかりやすいという発想だろうか。

CIの途中にLitmus Chaosを組み込む例

CIの途中にLitmus Chaosを組み込む例

ここではデベロッパーが行うCIのプロセスの途中にLitmus Chaosを組み込む例を解説している。GitLab、GitHub Actions、Spinnaker、Keptnなどとの連携が解説されている。具体的には「開発」-「ステージング」-「本番」という環境の途中に「カオスエンジニアリングを実験するための環境」を挿入してテストを行うという発想だ。GitLab、GitHub Actions、Spinnaker、Keptnという名前が挙がる辺りに、レガシーなシステムよりもクラウドネイティブなシステムを指向している姿勢が見える。

Kubernetes以外のプラットフォームにも対応

Kubernetes以外のプラットフォームにも対応

Kubernetes以外の環境にもAPIを通じて対応できることを訴求し、Kubernetesに特化しつつもそれ以外のプラットフォームにも適用できることを解説した。

クラウドネイティブなコンポーネントにも対応

クラウドネイティブなコンポーネントにも対応

またすでに利用しているプロジェクト(ArgoCDやKeptn)以外にも、MySQL互換でありながらホリゾンタルなスケーラビリティを保証するVitessやKuberentesのポリシーエンジンOPA、マルチクラスターのKuberentesをコントロールするCrossplaneなどにも対応することを解説した。

ChaosNativeのサービスはサポートとコンサルティング

ChaosNativeのサービスはサポートとコンサルティング

Mukkara氏の最後のスライドはChaosNativeが提供するサービスの概略となったが、Guided Trial Pack、Enterprise Supportなどについては価格が提示されておらず、まだ試行錯誤中という状況が透けて見える内容となった。

セッション後半はQ&Aとデモ

後半はQ&Aとデモの紹介

後半はQ&Aとデモの紹介

このセッションの残り2/3は、Q&Aとデモという内容だ。Litmus Chaosのインストレーション、ダッシュボードの紹介、パブリッククラウドでの実装などをエンジニアのSatchitanand氏が紹介した。

Litmus Chaos自体を理解するには前半の20分が適切だが、インストレーションやダッシュボード、ワークフローなどを理解するためにはデモを見るほうが良いだろう。デプロイされたPodがどのように動いているのかを知るために、Kubernetesのコマンドラインを操作しながら、やや冗長とも言える丁寧な解説である。またGrafanaやPrometheusと言ったObservabilityのツールからどのようにシステムが可視化されるのか? を知ることもできる。

インストールされたPodのダッシュボード

インストールされたPodのダッシュボード

GrafanaからKafkaのクラスターを観察

GrafanaからKafkaのクラスターを観察

このセッションではソフトウェアの解説が主体で、Litmus Chaosの導入にどのような効果があるのか? などについてはユーザーが語るというフェーズにならないと知り得ないという段階だろう。先行するGremlinやサンドボックスプロジェクトであるChaos Meshなどとどう差別化していくのか、今後のLitmus Chaosに注目したい。

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

サーバー技術解説

Tigeraのアドボケイトが、x86とARMのマルチアーキテクチャークラスターを解説

2022/4/7
ARMの優位性を解説しながら、ARMをx86クラスターに追加するマルチアーキテクチャークラスターを、デモを用いて解説。
システム開発イベント

KubeCon NA 2021からサービスメッシュの2セッションを紹介

2022/3/18
KubeCon NA 2021からサービスメッシュのLinkerdの最新情報とIstioを使ったユースケースのセッションを紹介する。
セキュリティイベント

KubeCon NA 2021、ソフトウェア開発工程のタンパリングを防ぐSLSAを解説

2022/3/9
KubeCon NA 2021のプレカンファレンスから、ソフトウェアサプライチェーンを実装するフレームワークSLSAを取り上げたセッションを紹介する。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています