KubernetesのPodやネットワークをわざと落としまくってカオスエンジニアリングのテストができる「Chaos Mesh」がバージョン1.0に到達

2020年10月13日

Kubernetes上のシステムに対してわざと障害を発生させることで、システムの耐障害性のテストを行うためのソフトウェア「Chaos Mesh」がバージョン1.0に到達したことを、Chaos Meshの開発チームが明らかにしました

Chaos Meshは、Kubernetesの開発などをホストしているCloud Native Computing Foundationのサンドボックスプロジェクトに採用されているオープンソースのソフトウェアです。

Netflixが提唱するカオスエンジニアリングをKubernetesでも実現

Chaos Meshが実現するのは、いわゆる「カオスエンジニアリング」と呼ばれるシステムテスト。

カオスエンジニアリングは動画配信サービスで知られるNetflixの開発チームが提唱したシステムテストの手法で、分散システムの一部に対してわざとさまざまな障害を発生させることで、システムが備えている復旧機能が本当に機能するかどうかを試すというもの。

日常的にあえて本番環境で障害を起こし、対応し続けることで、実際に本当の障害が発生したとしても何の問題もなく対処できるようになることを目指すわけです。

Netflixはそのためのツールとして「Chaos Monkey」や「Chaos Kong」といったツールも開発し、公開しています。

Chaos MeshはこのカオスエンジニアリングのためのツールをKubernetes向けに開発したものといえます。

さまざまな障害テストの機能を提供

Chaos MeshはKubernetesのクラスタに対して下記のようなさまざまな障害を仕掛けることができます。

「PodChaos」試験は特定のPodの障害をシミュレート、「NetworkChaos」試験はPod間の通信を止めるネットワーク分断や通信の遅延、重複、データの紛失などをシミュレート。「StressChaos」試験はPod群に対する大きな負荷をシミュレート、「TimeChaos」試験は特定の日時などをシミュレート、「IOChaos」試験はファイルシステムなどのI/Oの遅延やエラーをシミュレート、「KernelChaos」ではカーネルを共有するPod群へのエラーをシミュレート(本番環境への適用は非推奨)など。

Kubernetesの標準的な機能であるCustom Resource Definitions(CRD)を用いてこれらの機能を実現するため、対象とするシステムの変更などは不要で、容易に導入可能。

通常のKubernetesだけでなく、MiniKubeやKindにも対応しますので、プログラマのローカルマシンなどで試すことも可能でしょう。

このエントリーをはてなブックマークに追加
follow us in feedly




カテゴリ

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


最新記事10本