ITmedia NEWS > 製品動向 >

Kubernetes上でわざと障害発生、復旧のテストができる「Chaos Mesh」がバージョン1.0に

» 2020年10月13日 11時08分 公開
[新野淳一ITmedia]

この記事は新野淳一氏のブログ「Publickey」に掲載された「KubernetesのPodやネットワークをわざと落としまくってカオスエンジニアリングのテストができる「Chaos Mesh」がバージョン1.0に到達」(2020年10月13日掲載)を、ITmedia NEWS編集部で一部編集し、転載したものです。

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

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

photo カオスエンジニアリングのテストができる「Chaos Mesh」

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

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

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

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

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

関連記事?:サービス障害を起こさないために、障害を起こし続ける。逆転の発想のツールChaos Monkeyを、Netflixがオープンソースで公開

関連記事?:クラウドのリージョンを丸ごと落とす過酷な試験を実現する「Chaos Kong」、Netflixが発表。「カオスエンジニアリング」の指針も表明

 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にも対応しますので、プログラマーのローカルマシンなどで試すことも可能でしょう。

Copyright © ITmedia, Inc. All Rights Reserved.