必须完成RBAC授权、配置sink参数指向钉钉Webhook、挂载时区及确保镜像可拉取;通过Helm或YAML部署kube-eventer,指定dingtalk URL与TZ环境变量,触发测试事件后检查日志和钉钉消息。

要在 Kubernetes 集群中让 kube-eventer 将 Warning 和 Normal 事件实时推送到钉钉机器人实现告警,必须完成 RBAC 授权、配置 sink 参数指向钉钉 Webhook 地址、挂载时区并确保镜像可拉取,缺一不可。
准备钉钉机器人 Webhook 地址
登录钉钉群 → 点击右上角「…」→「智能群助手」→「添加机器人」→ 选择「自定义」→ 设置安全验证方式为「关键词」→ 输入「报警」和「分派」→ 复制生成的 Webhook URL,形如 https://oapi.dingtalk.com/robot/send?access_token=xxx。
【务必确认该 URL 已在阿里云控制台「报警服务 > 报警联系人」中验证通过】
部署 kube-eventer 到集群
执行以下 YAML 创建命名空间、ServiceAccount、ClusterRoleBinding 及 Deployment:
方法一:使用官方推荐的 Helm 方式(推荐)
在集群中安装 Helm 后,运行:
helm repo add aliyun https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts/
helm install kube-eventer aliyun/kube-eventer --namespace kube-system --set sinks.dingtalk.url="https://oapi.dingtalk.com/robot/send?access_token=xxx"
方法二:直接应用 YAML 清单(需替换 access_token)
创建 eventer.yaml 文件,关键字段必须包含:
- args 中指定 --sink=dingtalk:https://oapi.dingtalk.com/robot/send?access_token=xxx
- containers 下添加 env: - name: TZ value: Asia/Shanghai
- volumes 挂载 /etc/localtime 保证日志时间准确
验证事件推送是否生效
第一步:触发一条测试事件
kubectl create deployment test-nginx --image=nginx --replicas=1 -n default
第二步:等待约 30 秒,检查 kube-eventer Pod 日志
kubectl logs -n kube-system deploy/kube-eventer | grep "dingtalk"
第三步:观察钉钉群是否收到格式为「[Warning] NodeNotReady on node-xxx」或「[Normal] Created pod/test-nginx-xxx」的消息
若无消息,立即检查:
• Webhook URL 是否含多余空格或被 URL 编码破坏
• 钉钉机器人关键词是否严格为「报警」「分派」且未多字少字
• kube-eventer Pod 是否处于 Running 状态且无 CrashLoopBackOff











