komodorio/k8s-watcherk8s-watcher 是一个用于监控 Kubernetes 集群资源事件的工具,能够实时检测集群中各类资源(如 Pod、Deployment、Service 等)的创建、更新、删除等操作,并将事件信息通过指定渠道发送通知,帮助用户及时掌握集群资源动态。
k8s-watcher 通常通过 Helm Chart 部署到 Kubernetes 集群中:
bash# 添加 Helm 仓库 helm repo add komodorio [***] # 安装 k8s-watcher helm install k8s-watcher komodorio/k8s-watcher --namespace k8s-watcher --create-namespace
通过 values.yaml 文件或 --set 参数进行配置,主要配置项包括:
| 参数 | 描述 | 默认值 |
|---|---|---|
watch.resources | 需要监控的资源类型列表 | ["pods", "deployments", "statefulsets"] |
watch.namespaces | 需要监控的命名空间,为空则监控所有命名空间 | [] |
watch.events | 需要捕获的事件类型,可选值:created、updated、deleted | ["created", "updated", "deleted"] |
notifications.slack.enabled | 是否启用 Slack 通知 | false |
notifications.slack.webhookUrl | Slack Webhook URL | "" |
notifications.email.enabled | 是否启用 Email 通知 | false |
notifications.email.smtpHost | SMTP 服务器地址 | "" |
notifications.webhook.enabled | 是否启用 Webhook 通知 | false |
notifications.webhook.url | Webhook 接收地址 | "" |
bashhelm install k8s-watcher komodorio/k8s-watcher \ --namespace k8s-watcher \ --create-namespace \ --set notifications.slack.enabled=true \ --set notifications.slack.webhookUrl="[***]"
bashhelm install k8s-watcher komodorio/k8s-watcher \ --namespace k8s-watcher \ --create-namespace \ --set watch.resources=["pods", "services", "configmaps"] \ --set watch.namespaces=["default", "kube-system"] \ --set watch.events=["deleted"] \ --set notifications.webhook.enabled=true \ --set notifications.webhook.url="[***]"
事件通知通常包含以下信息:
cluster-admin 权限或自定义包含 list、watch 权限的 ClusterRole)manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务