ブログ

Openshift で Chaos Mesh を動かしてみた

初めに

Chaos Engineering を支援するツールであるChaos MeshをOpenshift上で動かしてみましたので、ご紹介します。
Chaos EngineeringやChaos Meshの詳細については、さまざま情報がInternet上で公開されているので、そちらをご参照ください。

Chaos Mesh の OpenShift へのインストール

基本的には、公式ドキュメント(https://chaos-mesh.org/docs/production-installation-using-helm/)
の手順に従って、導入していきます。

1. 導入先プロジェクトの作成

$ oc project chaos-testing

2. SCCの付与
公式ドキュメントのFAQ(下記URL)に記載の通り、OpenShift上に導入するには、SCC権限の付与が必要になります。
https://chaos-mesh.org/docs/faqs/#q-while-trying-to-install-chaos-mesh-in-openshift-the-problems-regarding-authorization-blocked-the-installation-process

$ oc adm policy add-scc-to-user privileged -n chaos-testing -z chaos-daemon

3. HELMレポジトリの追加

$ helm repo add chaos-mesh https://charts.chaos-mesh.org

4. Chaos Mesh の導入

$ helm install chaos-mesh chaos-mesh/chaos-mesh -n=chaos-testing --set chaosDaemon.runtime=crio --set chaosDaemon.socketPath=/var/run/crio/crio.sock --version 2.3.0

5. OpenShift Route の作成

$ oc expose svc chaos-dashborad
route.route.openshift.io/chaos-dashboard exposed
$ oc get route chaos-dashboard
NAME              HOST/PORT                                     PATH   SERVICES          PORT   TERMINATION   WILDCARD
chaos-dashboard   chaos-dashboard-chaos-testing.xxxxxxx.xxxxx          chaos-dashboard   http                 None

Chaos Mesh Token 設定

1. ブラウザで上記で作成したrouteにアクセス
image.png

2. 「Click here to generate」をクリック
image.png

3. 「cluster scoped」にチェックをつけ、「Role」をManagerにします。
画面下の指示に従い、Tokenを取得します。
※最後のkubectl describe secretのコマンドは、最後に「-n default」のオプションをつけて実行してください。
image.png

4. 最初に出てきた画面に戻り、「Name」に任意の値を入れ、Tokenに上記で取得したTokenの値を入れ、Submitをクリックします。
image.png

障害の注入

今回は、Pod障害の注入を行ってみます。

1. Chaos Mesh の画面から、「Experiments」→「+ New experiment」を選択します。
image.png

2. Kubernetes」→「Pod Fault」→「Pod Failure」を選択します。
image.png

3. 「Experiment Info」に障害を注入するPODの情報等をしていて、「Submit」をクリックします。
image.png

4. Submitエリアが現れるので、「Submit」をクリックし、障害を注入させます。
image.png

5. 一部Podで障害が発生し、RESTARTSの数が0から増えていることが確認できます。
image.png

pagetop