Kubernetes上でわざと障害発生、復旧のテストができる「Chaos Mesh」がバージョン1.0に
「Chaos Mesh」がバージョン1.0に到達。Kubernetes上のシステムに対してわざと障害を発生させることで、システムの耐障害性のテストを行うためのソフトウェア。実際に障害が発生したとしても、エンジニアが問題なく対処できるようにする。
この記事は新野淳一氏のブログ「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のサンドボックスプロジェクトに採用されているオープンソースのソフトウェアです。
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にも対応しますので、プログラマーのローカルマシンなどで試すことも可能でしょう。
関連記事
- Kubernetesの登場後、コンテナ型仮想化はどう発展した? 技術トレンドの変遷を振り返る
コンテナ型仮想化の技術は現在、DockerコンテナそのものからKubernetesを軸としたオーケストレーションツールへと主役が移ってきている。そうしたコンテナ型仮想化技術のここ2年半ほどの動向を、ITジャーナリストの新野淳一氏が解説する。 - コンテナ、Kubernetes、サーバレスは日本にどれくらい普及した? IDCのアナリストが解説
コンテナ、Kubernetes、サーバレスなどの“クラウドネイティブ”な技術は、日本でどの程度普及したのか。IDC Japanがこのほど記者説明会を開催し、国内企業を調査した結果を発表した。 - ダイムラーがIBM Cloud導入 Kubernetesで顧客向けポータル強化
ダイムラーが顧客向けポータルサイトにIBM Cloudを導入。セキュリティ対策を行いつつ新サービスを展開しやすくする。 - Google、クラウド型の専用ゲームサーバをリリース Kubernetes環境で実行、大規模・多人数参加型ゲームの基盤に
Googleが、Google Cloud上の専用ゲームサーバサービス「Google Cloud Game Servers」をリリース。大規模多人数参加型オンラインゲームなどを実現する。GoogleのKubernetes環境上で実行され、全体がマネージドサービスとして提供される。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.