Red HatがOpenShift向けカオスエンジニアリングツールKrakenを発表

2021年1月21日(木)
松下 康之 - Yasuyuki Matsushita
Red HatがKubernetes/OpenShift向けのカオスエンジニアリングツールKrakenを発表した。

Red Hatは、KubernetesおよびOpenShift向けにカオスエンジニアリングを実装するツールであるKrakenを発表した。これはKubernetesのResiliencyを高めるために、Kubernetesの各コンポーネントを外部からランダムに停止/再起動させるためのツールだ。

Krakenは、2017年に金融サービスのBloombergがオープンソース化したツールPowerfulSealとKubernetes/OpenShiftのノードの死活監視を行うツールCerberusを組み合わせたものとなっている。Krakenに関するRed Hatのブログは以下を参照されたい。

Red Hatのブログ:Introduction to Kraken, a Chaos Tool for OpenShift/Kubernetes

Krakenの概要

Krakenの概要

Red HatがOpenShiftに取り入れるツールの常として、Krakenも当然オープンソースソフトウェアだ。すでにGitHubにリポジトリーが存在し、ソースの公開とコミュニティへの参加を促している。

GitHubのリポジトリー:https://github.com/cloud-bulldozer/kraken

この概要に示されているように、KrakenはKubernetes/OpenShiftのクラスターに対して停止などのFailureをインジェクトすることでクラスターに対して変化を与える。そしてその状態から自律的にシステムが立ち直るのか? を確認するというのがKrakenのシンプルな機能となる。その機能を実装しているのが、Bloombergが2017年に公開したPowerfulSealだ。

PowerfulSealの概要

PowerfulSealの概要

PowerfulSealはBloombergが自社システム向けに開発したテストツールで、オープンソースソフトウェアとして2017年に公開された。2017年の12月にテキサス州オースチンで開催されたKubeCon NAのセッションとして概要を紹介する動画が公開されている。

BloombergのエンジニアによるPowerfulSealのデモ動画:Testing Distributed Software on Kubernetes with PowerfulSeal [I] - Mikolaj Pawlikowski

ここではロンドンをベースに開発を行うBloombergのエンジニアMikolaj Pawlikowski氏がPowerfulSealの概要を20分程度で紹介しており、このセッションの前日にPowerfulSealがオープンソースとして公開されたことを語っている。

PowerfulSealを紹介するPawlikowski氏

PowerfulSealを紹介するPawlikowski氏

このスライドに書かれているように、カオスエンジニアリングの発祥地はAWSをベースに動画配信サービスを開発しているNetflixだ。そのNetflixでシステムのResiliencyを上げるために考案されたのがChaosMonkeyだ。PowerfulSealはChaosMonkeyを参考にして開発されたことが解説されている。主な機能は、仮想マシンとその上に乗るKubernetesのPodを停止させることだ。

PowerfulSealの概要

PowerfulSealの概要

PowerfulSealはChaosMonkeyと似てはいるものの、「Kubernetesに特化していること」「オートモード以外にも対話型にテストを行うことができること」「データベースやCIツールであるSpinnakerへの依存がないこと」などがChaosMonkeyとの違いだという。この時点ではOpenStackしかサポートされていなかったが、パブリッククラウドへの対応は完了しているようだ。

対象となるクラスターに対してランダムに停止させるということは、クラスターを監視するツールが実装されるPodなども対象になる可能性があるため、KrakenとモニタリングツールであるCerberusは別のクラスターの中で実装することが推奨されている。

PowerfulSealのアーキテクチャー

PowerfulSealのアーキテクチャー

PowerfulSealがクラスターの外部からAPIを通じてノードやPodの停止・削除などを指示し、それが確実に行われたか、復帰ができているかをCerberusを使って監視するというのがKrakenの基本動作だ。停止させる対象となるPodの指定には名前の他にDeploymentやLabelなどでも指定できるために、「あるnamespaceに存在するPodをすべて停止させる」などということも可能だ。

PowerfulSealの動作は「Match~Filter~Action

PowerfulSealの動作は「Match~Filter~Action

このBloombergのエンジニアのセッションでは、停止させる対象をYAMLに書かれた定義に従って検索し、条件にマッチしたものをフィルターし、それに対してSSHなどで停止させるという例が紹介されている。

自動モードでのPowerfulSealの適用例

自動モードでのPowerfulSealの適用例

Krakenの要素技術についても紹介しよう。まずはPowerfulSealである。このセッションが開催された時点ではまだロゴもできておらず、OpenStackだけがサポートされていることがわかる。2020年11月の段階ではすべてのパブリッククラウドへの対応が終わっているようだ。

PowerfulSealに関する情報はBloombergのGitHubリポジトリーへ

PowerfulSealに関する情報はBloombergのGitHubリポジトリーへ

Cerberusに関しても紹介しておこう。CerberusはKraken(実体はPowerfulSeal)が停止させる対象となる仮想マシンやPodを監視するためにPythonで書かれたツールで、Red Hatが開発をリードしているようだ。

Cerberusの概要

Cerberusの概要

ここではCerberusは「クラスターのヘルスチェックを行うツール」として紹介されている。ノードの停止などのFailureを適用した後にノードがちゃんと復帰しているのか? をチェックするために、Cerberusが使われているというのがこの部分の説明だ。

Cerberusのワークフロー

Cerberusのワークフロー

Cerberusのワークフローは対象となるクラスターに対してHTTPによる死活監視を行い、結果をレポートやSlackなどにアラートを上げるというものだ。Cerberusについての詳細は以下のブログを参照されたい。

Reinforcing Cerberus: Guardian of OpenShift/Kubernetes Clusters

パブリッククラウドが提供するマネージドのKubernetesに対してオンプレミスでの実装を考えた際に、サポートやアップデートの頻度などを考慮すると、OpenShiftはエンタープライズ企業が選択すべきKubernetesのディストリビューションとしては最適だろう。

そのOpenShiftにカオスエンジニアリングが含まれたということは、システムの信頼性を保つための方策として「壊しても直るかどうかを確かめる」というクラウドネイティブな考え方が取り込まれたということであり、これは歓迎すべき動きだ。

日本のエンタープライズ企業は往々にして二重化やマニュアル化など「壊れないように作る」ことを障害の対策とするが、これに対して「壊しても直るようにシステムを構築する」という発想をRed Hatが示したことを評価したい。Kraken自体はまだ停止などのFailureにしか対応していないが、今後はシナリオベースのFailureや性能劣化などのFailureを実装できるように進化していくことを期待したい。

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

連載バックナンバー

システム開発イベント

OpenShift Commons Gatheringで語られたOpenShiftに最適なCI/CDとは

2021/3/2
レッドハット株式会社のクラウドソリューションアーキテクト、北山晋吾氏によるCI/CDのセッションを紹介。
働き方イベント

オンラインならではの工夫でリアル開催を凌ぐ盛り上がりに! 「3年後の未来を描け! 悩み爆発 クリエイター1000人祭り」レポート

2021/2/9
2020年12月にオンラインで開催された「3年後の未来を描け!悩み爆発クリエイター1000人祭り」を紹介します。
ITインフライベント

ビルドからリリースまでを抽象化するWaypointにディープダイブ

2021/2/4
HashiCorpがリリースしたWaypointの内部構造など詳細について解説されたセッションを紹介する。

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

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

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

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