簡體   English   中英

如何在Kubernetes中模擬電源故障

[英]How to simulate Power Failure In Kubernetes

我的rook-ceph集群在AWS運行。 它加載了數據。 有什么方法可以激發電源故障,以便我可以測試集群的行為?

從Docker您可以發送KILL信號“ SIGPWR”,表明電源故障(系統V)

docker kill --signal="SIGPWR"

和Kubernet

kubectl exec <pod> -- /killme.sh

所以scriplt killme.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你可以在這里找到

這取決於崩潰測試的目的。 我看到兩個選擇:

  1. 您想測試是否在AWS上正確部署了Kubernetes-然后,我將終止相關的AWS EC2實例(或實例集)

  2. 您想測試您的最終應用程序是否可以抵抗Kubernetes節點故障-然后,我只需要檢查給定節點上正在運行的POD,然后突然用以下命令殺死它們:

kubectl delete pods <pod> --grace-period=0 --force

除非有人(一個人或一個控制器)破壞了集群Pod,或者出現不可避免的硬件或系統軟件錯誤,否則集群Pod不會消失。

開發人員將這些不可避免的情況稱為對應用程序的非自願中斷。 例如:

  • 支持該節點的物理機的硬件故障
  • 集群管理員誤刪除虛擬機(實例)
  • 雲提供商或虛擬機管理程序故障使VM消失,從而導致內核崩潰
  • 由於群集網絡分區,該節點從群集中消失了
  • 由於節點資源不足而將容器逐出。 除了資源不足的情況外,所有用戶都應該熟悉所有這些條件; 它們並不特定於Kubernetes。

開發人員將其他情況稱為自願中斷。 這些動作既包括應用程序所有者發起的動作,也包括集群管理員發起的動作。

典型的應用程序所有者操作包括:

  • 刪除管理吊艙的部署或其他控制器
  • 更新部署的Pod模板導致重啟
  • 直接刪除廣告連播(例如,意外刪除)

您可以在這里找到更多信息: kubernetes-discruptionapplication-discruption

您可以在群集上設置Prometheus,並在故障期間確保指標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM