【helm--kubemonkey】通过HELM部署kube-monkey&&kube-monkey的使用方法

1、部署helm

进入链接下载helm:https://github.com/helm/helm/releases,选择自己需要的版本

2、解压版本包并把helm文件拷贝到/usr/local/bin目录下

3、执行helm version查看是否安装成功

 4、添加chart:helm repo add kubemonkey https://asobti.github.io/kube-monkey/charts/repo

 5、更新:helm repo update

 6、安装kube-monkey

 7、使用kube-monkey

7.1 Kube-monkey标签

 可以通过在k8s app中打如下几种label来使能kube-monkey:

kube-monkey/enabled:设置为"enabled"选择加入 kube-monkey
kube-monkey/mtbf:平均故障间隔时间(以天为单位)。例如,如果设置为"3",则 k8s 应用程序预计大约每三个工作日就会杀死一个 Pod。
kube-monkey/identifier:k8s 应用程序的唯一标识符。这用于识别属于 k8s 应用程序的 Pod,因为 Pods 从其 k8s 应用程序继承标签。因此,如果 kube-monkey 检测到该应用程序foo已注册成为受害者,kube-monkey 将查找具有标签的所有 podkube-monkey/identifier: foo以确定哪些 pod 是候选者杀死。建议将此值设置为与应用名称相同。
kube-monkey/kill-mode:默认行为是 kube-monkey 只杀死应用程序的一个 pod。您可以通过将值设置为:

  • "kill-all"如果您希望 kube-monkey 杀死所有 pod,而不管其状态如何(包括未准备好或未运行的 pod)。不需要杀伤值。小心使用这个标签。
  • fixed如果你想用 kill-value 杀死特定数量的正在运行的 pod。如果您过度指定,它将杀死所有正在运行的 pod 并发出警告。
  • random-max-percent指定可以杀死的最大百分比与杀死值。在预定时间,将终止一个统一随机指定百分比的正在运行的 Pod。
  • fixed-percent指定一个可以被杀死的带有 kill-value 的固定 %。在预定的时间,指定的固定百分比的正在运行的 Pod 将被终止。

kube-monkey/kill-value: 指定 kill-mode 的值

  • 如果fixed,提供整数个要杀死的 pod
  • 如果random-max-percent,提供一个 0-100 之间的数字来指定 kube-monkey 可以杀死的 pod 的最大百分比
  • 如果fixed-percent,提供一个 0-100 之间的数字来指定要杀死的 pod 的百分比

7.2 编辑kube-monkey的配置文件

#kube-monkey通过配置toml file里的一些配置项来生效,helm部署的可直接kubectl edit cm my-release-kube-monkey编辑 
apiVersion: v1
data:
  config.toml: |
    [kubemonkey]
    dry_run = true
    run_hour = 8
    start_hour = 10
    end_hour = 16
    blacklisted_namespaces = [ "kube-system", ]
    whitelisted_namespaces = [ ]
    time_zone = "America/New_York"
    [debug]
    enabled= false
    schedule_immediate_kill= false
kind: ConfigMap
metadata:
  creationTimestamp: "2021-12-15T01:26:30Z"
  name: my-release-kube-monkey
  namespace: default
  resourceVersion: "14902504"
  selfLink: /api/v1/namespaces/default/configmaps/my-release-kube-monkey
  uid: 9deff760-d3a8-4963-adc8-b115127868fe

#几个重要的参数
[kubemonkey]
dry_run = true                           # Terminations are only logged
run_hour = 8                             # Run scheduling at 8am on weekdays
start_hour = 10                          # Don't schedule any pod deaths before 10am
end_hour = 16                            # Don't schedule any pod deaths after 4pm
blacklisted_namespaces = ["kube-system"] # 不攻击的namespace列表
whitelisted_namespaces = ["test-ns1","test-ns2"] # 攻击的namespace列表
time_zone = "America/New_York"           # Set tzdata timezone example. Note the field is time_zone not timezone

[debug]                                 #无视start_hour配置和endhour配置,每隔60s都会攻击pod
    enabled= false 
    schedule_immediate_kill= false

7.3 示例

编辑yaml文件中的label

每次杀死正在运行的15个pod

 编辑kube-monkey的配置

起止时间自行配置(start_hour、end_hour)

whitelisted_namespace是要控制的对象

time_zone:保持和自己的时区一致

开启debug

 查看kube-monkey的日志

 查看pod状态

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值