次のレベルのカオスエンジニアリングはこちらです! Kubernetesクラスター内のポッドを運命に撃って殺してください!
これは、psdoomからフォークされたhttps://github.com/gideonred/dockerdoomからフォークされた、わずかに変更された運命を使用した優れたGideonred/dockerdoomdのフォークです。

ローカルで実行するには、する必要があります
ghcr.io/storax/kubedoom:latest with dockerをローカルに実行します。
$ docker run -p5901:5900
--net=host
-v ~/.kube:/root/.kube
--rm -it --name kubedoom
ghcr.io/storax/kubedoom:latestオプションで、 -e NAMESPACE={your namespace}を設定すると、Kubedoomを単一の名前空間で削除するように制限できます
ghcr.io/storax/kubedoom:latestローカルに実行します。
$ podman run -it -p5901:5900/tcp
-v ~/.kube:/tmp/.kube --security-opt label=disable
--env "KUBECONFIG=/tmp/.kube/config" --name kubedoom
ghcr.io/storax/kubedoom:latestVNCビューアを開始し、 localhost:5901に接続します。パスワードはidbeholdです。
$ vncviewer viewer localhost:5901あなたは今Doomを見るはずです!今、あなたが仕事をやりたいなら、すぐにチートidspispopdに入り、右側の壁を歩いてください。あなたはあなたのポッドに小さなピンクのモンスターとして迎えられるべきです。 CTRLを押して発射します。ピストルがあなたのものではない場合は、 idkfaとチートして5押して驚くべきことをしてください。 ESCでゲームを一時停止します。
Kubedoomは、あまりにも多くの名前がある場合に備えて、名前空間を殺すこともサポートしています。 -modeフラグをnamespacesに設定するだけです。
$ docker run -p5901:5900
--net=host
-v ~/.kube:/root/.kube
--rm -it --name kubedoom
ghcr.io/storax/kubedoom:latest
-mode namespaces/manifestディレクトリの例を参照してください。 Kindを使用してすばやくテストできます。このリポジトリからのサンプル構成を使用してクラスターを作成します。
$ kind create cluster --config kind-config.yaml
Creating cluster "kind" ...
✓ Ensuring node image (kindest/node:v1.23.0) ?
✓ Preparing nodes ? ?
✓ Writing configuration
✓ Starting control-plane ?️
✓ Installing CNI ?
✓ Installing StorageClass ?
✓ Joining worker nodes ?
Set kubectl context to "kind-kind"
You can now use your cluster with:
kubectl cluster-info --context kind-kind
Not sure what to do next? ? Check out https://kind.sigs.k8s.io/docs/user/quick-start/これにより、Docker内の2ノードクラスターがスピンアップし、ポート5900がワーカーノードから露出します。次に、このリポジトリで提供されているマニフェストを適用して、クラスター内でKubedoomを実行します。
$ kubectl apply -k manifest/
namespace/kubedoom created
deployment.apps/kubedoom created
serviceaccount/kubedoom created
clusterrolebinding.rbac.authorization.k8s.io/kubedoom created実行するには:
$ vncviewer viewer localhost:5900Kubedoomは、すべてのポッドをリストして削除する権限を備えたサービスアカウントを必要とし、kubectl 1.23.2を使用します。
リポジトリには、Kubedoom画像を構築するDockerFileが含まれています。 TARGETARCH構築引数として、システムアーキテクチャを指定する必要があります。たとえば、 amd64またはarm64 。
$ docker build --build-arg=TARGETARCH=amd64 -t kubedoom .デフォルトのVNCパスワードを変更するには、 --build-arg=VNCPASSWORD=differentpw使用します。