CodeZine(コードジン)

特集ページ一覧

Kubernetesクラスターのノードにカオス挿入してみよう~Azure Kubernetes Serviceでカオスエンジニアリング

クラウドネイティブ時代の実践カオスエンジニアリング 第5回

  • LINEで送る
  • このエントリーをはてなブックマークに追加

 前回は、PaaSであるAzure Web Appsを活用したシステムに対するカオス挿入を紹介しました。今回は、Kubernetesクラスターのマネージドサービスである、Azure Kubernetes Serviceへのカオス挿入について説明します。

目次

はじめに

 Azure Kubernetes Service(AKS)はKubernetesクラスターのマネージドサービスです。今回は、このKubernetesクラスターのノードに対してカオス挿入を行う方法について説明します。なお、Kubernetes上のPodやServiceなどへのカオス挿入については対象外(次回の解説を予定)であることをご了承ください。

 「ノードって?」「Podって?」「Serviceって?」という方は、以下の入門記事などを事前に読んでおきましょう!

Chaos ToolkitによるAKSへのカオス挿入

挿入できるカオス

 AKSに対してChaos Toolkitで挿入可能なカオスは、下記の3つのアクションになります。

AKSに対して挿入可能として用意されているカオス
# アクション名 内容
1 delete_node ノードを削除する。
2 restart_node ノードを再起動する。
3 stop_note ノードを停止する。

 ……と言いたいところなのですが、本記事執筆時点でのChaos Toolkitでは、上記のアクションが用意されているものの動作しない状態となっています。

 ですが、AKSのノードの実体はVMSS(仮想マシンスケールセット)であることから、第3回の仕組みを活用して同様のカオス挿入を行うことができますので、今回はその方法でカオス挿入を行います。

カオスを挿入するシステムの構築

 今回は、「AKSノード上のPodのフェイルオーバー」の動作確認を行います。具体的には、AKSのノードの停止を発生させ、対象のノードで起動していたPodが別のノードで起動することを確認する実験です。

 AKSクラスターの構築は、以下のクイックスタートを参考にしてください。

 1つだけ注意点があります。「AKSクラスターの作成」の手順に記載のノード数(--node-count)は2以上にしておきます。ノードが1台だけだと、そのノードを停止してしまうと新たなPodの起動先が無くなり、実験の確認ができなくなってしまうためです。

az aks create --resource-group chaos-poc-part5 --name chaospocpart5 --node-count 3 --enable-addons monitoring --generate-ssh-keys

 Kubernetesクラスター上で動作するアプリについても、同じくクイックスタートを参考にデプロイしてください。

 デプロイが完了したら、フロントエンドのPod(azure-vote-front)が1個だけ起動していることを確認しておきましょう。READYの箇所が1/1になっていればOKです。

> kubectl get pods
NAME                                READY   STATUS    RESTARTS   AGE
azure-vote-back-6c4dd64bdf-7gh9p    1/1     Running   0          34s
azure-vote-front-85b4df594d-fhhzg   1/1     Running   0          34s

  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:クラウドネイティブ時代の実践カオスエンジニアリング

著者プロフィール

  • 石崎 奏(株式会社NTTデータ)(イシザキ ソウ)

     入社以来、NTTデータグループにおけるWindows/Linuxシステムの技術問合せ、トラブルシュート支援、アーキテクチャレビューに従事。現在は、Azureを中心としたクラウド技術者の能力開発や、グループ全体へのAzure活用支援にも携わる。 Twitter...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5