Как смоделировать сбой питания в Kubernetes - PullRequest
0 голосов
/ 01 июля 2019

Мой кластер rook-ceph работает на AWS.Его загружен данными.Есть ли способ стимулировать POWER FAILURE , чтобы я мог проверить поведение моего кластера?.

Ответы [ 3 ]

0 голосов
/ 02 июля 2019

Это зависит от цели вашего краш-теста.Я вижу два варианта:

  1. Вы хотите проверить, правильно ли вы развернули Kubernetes на AWS - тогда я бы прекратил связанный экземпляр AWS EC2 (или набор экземпляров)

  2. Вы хотите проверить, устойчиво ли ваше конечное приложение к сбоям узла Kubernetes - тогда я просто проверил бы, какие POD работают на данном узле, и внезапно убил их всех с помощью:

kubectl delete pods <pod> --grace-period=0 --force
0 голосов
/ 03 июля 2019

Cluster Pod не исчезают до тех пор, пока кто-либо (человек или контроллер) не уничтожит их или не произойдет неизбежная ошибка аппаратного или программного обеспечения.

Разработчики называют эти неизбежные случаи недобровольными нарушениями работы приложения. Примеры:

  • аппаратный сбой физической машины, поддерживающей узел
  • Администратор кластера по ошибке удаляет ВМ (экземпляр)
  • провал облачного провайдера или гипервизора приводит к исчезновению ВМ паника ядра
  • узел исчезает из кластера из-за сетевого раздела кластера
  • выселение модуля из-за нехватки ресурсов у узла. За исключением условия нехватки ресурсов, все эти условия должны быть знакомы большинству пользователей; они не характерны для Кубернетов.

Разработчики называют другие случаи добровольными сбоями. К ним относятся как действия, инициированные владельцем приложения, так и действия, инициированные администратором кластера.

Типичные действия владельца приложения:

  • удаление развертывания или другого контроллера, который управляет модулем
  • обновление шаблона модуля развертывания, вызывающее перезапуск
  • прямое удаление модуля (например, случайно)

Более подробную информацию вы можете найти здесь: kubernetes-disruption , приложения discruption .

Вы можете настроить Prometheus в своем кластере и измерять показатели во время сбоя.

0 голосов
/ 01 июля 2019

Из Docker вы можете отправить сигнал KILL "SIGPWR", который Сбой питания (System V)

docker kill --signal="SIGPWR"

и из Kubernet

kubectl exec <pod> -- /killme.sh

и т. Д. Scriptkillme.sh

beginning of script-----
#!/bin/bash
# Define process to find
kiperf=$(pidof iperf)
# Kills all iperf or command line
kill -30 $kiperf
script end -------------

сигнал 30 вы можете найти здесь

...