
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
kube-monkey是Netflix Chaos Monkey在Kubernetes(k8s)集群的实现,通过随机删除集群中的Pod,鼓励和验证故障弹性服务的开发。它在预配置的工作日时间运行,生成当日Pod终止计划,帮助测试服务在Pod故障时的恢复能力。
仅对明确选择加入的K8s应用执行Pod终止,通过设置以下标签实现:
kube-monkey/enabled: 设为"enabled"以选择加入kube-monkey/mtbf: 平均故障间隔(天),如"3"表示约每3个工作日终止一次Podkube-monkey/identifier: 应用唯一标识,用于关联Pod(建议设为应用名)kube-monkey/kill-mode: 终止模式,支持:
"kill-all": 终止所有Pod(无论状态)"fixed": 终止指定数量的运行Pod(需配合kill-value)"random-max-percent": 终止运行Pod的随机百分比(上限由kill-value指定)"fixed-percent": 终止运行Pod的固定百分比(由kill-value指定)kube-monkey/kill-value: 配合kill-mode的值,整数(fixed)或0-100的百分比(random-max-percent/fixed-percent)run_hour: 每日调度时间(默认8点,仅工作日)start_hour/end_hour: 终止时间范围(默认10点-16点)time_zone)blacklisted_namespaces),默认包含kube-system[""]可禁用黑名单dry_run):仅记录终止计划,不实际执行schedule_immediate_kill)适用于Kubernetes集群的混沌工程测试,验证微服务、分布式系统在Pod故障时的弹性和恢复能力,尤其适合:
kube-monkey通过/etc/kube-monkey/config.toml文件或环境变量配置,配置项包括:
config.toml示例
toml[kubemonkey] dry_run = true # 仅记录终止计划 run_hour = 8 # 8点调度 start_hour = 10 # 终止开始时间10点 end_hour = 16 # 终止结束时间16点 blacklisted_namespaces = ["kube-system"] # 黑名单命名空间 time_zone = "America/New_York" # 时区 [debug] enabled = true # 启用调试模式 schedule_immediate_kill = true # 立即执行终止
环境变量示例
bashKUBEMONKEY_DRY_RUN=true KUBEMONKEY_RUN_HOUR=8 KUBEMONKEY_START_HOUR=10 KUBEMONKEY_END_HOUR=16 KUBEMONKEY_BLACKLISTED_NAMESPACES=kube-system KUBEMONKEY_TIME_ZONE=America/New_York
手动部署
创建ConfigMap(以kube-system命名空间为例):
bashkubectl create configmap kube-monkey-config-map --from-file=config.toml=km-config.toml -n kube-system
部署kube-monkey(示例Deployment):
yamlapiVersion: apps/v1 kind: Deployment metadata: name: kube-monkey namespace: kube-system spec: replicas: 1 selector: matchLabels: app: kube-monkey template: metadata: labels: app: kube-monkey spec: containers: - name: kube-monkey image: ayushsobti/kube-monkey:latest volumeMounts: - name: config-volume mountPath: /etc/kube-monkey volumes: - name: config-volume configMap: name: kube-monkey-config-map
查看日志:
bashkubectl logs -f deployment/kube-monkey -n kube-system
Helm部署
values.yaml,设置image.repository(默认ayushsobti/kube-monkey)bashhelm install --name kube-monkey helm/kubemonkey
以下是启用kube-monkey的Deployment示例,配置为每2个工作日终止1个Pod:
yamlapiVersion: apps/v1 kind: Deployment metadata: name: monkey-victim namespace: app-namespace labels: kube-monkey/enabled: enabled kube-monkey/identifier: monkey-victim kube-monkey/mtbf: '2' kube-monkey/kill-mode: "fixed" kube-monkey/kill-value: '1' spec: replicas: 3 selector: matchLabels: kube-monkey/identifier: monkey-victim template: metadata: labels: kube-monkey/enabled: enabled kube-monkey/identifier: monkey-victim spec: containers: - name: victim-app image: nginx:alpine
mtbf计算应用当日是否被选中(如mtbf=3则约3个工作日选中一次)kill-mode和kill-value基于kubernetes/client-go v7.0构建,参考https://github.com/kubernetes/client-go#compatibility-matrix%E7%A1%AE%E8%AE%A4%E6%94%AF%E6%8C%81%E7%9A%84Kubernetes%E7%89%88%E6%9C%AC%E3%80%82
Docker镜像可在https://hub.docker.com/r/ayushsobti/kube-monkey/tags/%E8%8E%B7%E5%8F%96%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务