
【免费下载链接】charts⚠️(OBSOLETE) Curated applications for Kubernetes项目地址https://gitcode.com/gh_mirrors/chart/charts点击查看免费下载导读本文围绕开源仓库gh_mirrors/chart/charts中的 kubewatch Helm Chart 展开系统讲解如何通过 Helm 将 kubewatch一个 Kubernetes 资源变更监听器部署到集群中把 Pod、Deployment 等资源的创建、更新、删除事件实时推送到 Slack 频道。读完本文你将掌握该 Chart 的安装、卸载、全部可配置参数及其底层模板实现机制能够基于 incubator/kubewatch/values.yaml 定制出一份符合自己集群监控需求的部署配置。kubewatch 与 Helm Chart 概览kubewatch 是一个运行在 Kubernetes 集群内的资源监听器它会监听集群中指定资源的变更事件并将这些事件以消息的形式发布到 Slack 频道。其配套 Helm Chart 负责将 kubewatch 以 Deployment 的形式一键部署到集群中并自动完成配置注入与可选的最小权限 RBAC 资源创建。当前仓库中该 Chart 位于 incubator/kubewatch其 Chart.yaml 声明了version: 0.2.3、appVersion: v0.0.3镜像默认使用tuna/kubewatch:v0.0.3。需要特别注意的是该 Chart 已被标记为 deprecated详见 Chart.yaml 首行deprecated: true官方已将其迁移至 stable/kubewatch后续更推荐直接使用 stable 仓库中的同名 Chart其安装方式与本篇介绍的 incubator 版本基本一致README 内容也保留了完整的参数表迁移细节可参考 stable/kubewatch/README.md。从目录结构看该 Chart 由以下模板文件组成职责划分清晰模板文件职责templates/configmap.yaml将 Slack 配置与监听资源列表渲染为 kubewatch 配置文件.kubewatch.yamltemplates/deployment.yaml创建 kubewatch 主容器 Deploymenttemplates/clusterrole.yaml创建 ClusterRole仅rbac.createtrue时templates/clusterrolebinding.yaml创建 ClusterRoleBinding仅rbac.createtrue时templates/servieaccount.yaml创建 ServiceAccount仅rbac.createtrue时templates/NOTES.txt安装完成后输出验证命令提示templates/_helpers.tpl提供名称生成辅助模板kubewatch.name/kubewatch.fullnameTL;DR一条命令完成安装$ helm install incubator/kubewatch该命令使用 Chart 默认配置完成部署监听 Pod 与 Deployment 两个资源Slack 频道与 Token 为空字符串此时需要后续补充配置才能真正收到通知。更正式的安装方式是在安装时显式指定 release 名称安装 Chart以 release 名称my-release安装$ helm install incubator/kubewatch --name my-release该命令会将 kubewatch 以默认配置部署到 Kubernetes 集群并通过 templates/NOTES.txt 输出一段验证命令用于确认 Pod 是否正常运行$ kubectl --namespace{{ .Release.Namespace }} get pods -l app{{ template kubewatch.name . }},release{{ .Release.Name }}实际执行时模板变量会被替换为具体值例如$ kubectl --namespacedefault get pods -l appkubewatch,releasemy-release安装后可配置的参数项见下文配置参数一节可通过--set或-f在安装阶段传入。卸载 Chart卸载 release 名为my-release的部署$ helm delete my-release该命令会移除 Chart 创建的所有 Kubernetes 资源Deployment、ConfigMap以及开启 RBAC 后创建的 ServiceAccount、ClusterRole、ClusterRoleBinding并删除该 release。配置参数详解以下是 kubewatch Chart 支持的全部可配置参数及其默认值来源README.md 与 values.yaml参数说明默认值affinitynode/pod 亲和性无image.repository镜像仓库tuna/kubewatchimage.tag镜像标签v0.0.3image.pullPolicy镜像拉取策略IfNotPresentnodeSelector用于 Pod 调度的节点标签{}podAnnotations附加到每个 Pod 的注解{}podLabels附加到每个 Pod 的额外标签{}rbac.create为 true 时创建并使用 RBAC 资源falserbac.serviceAccountName使用的已有 ServiceAccountrbac.createtrue时忽略defaultreplicaCount期望的 Pod 数量1resourcesToWatchkubewatch 监听并通知 Slack 的资源列表{pod: true, deployment: true}resourcesToWatch.pod监听 Pod 变更trueresourcesToWatch.deployment监听 Deployment 变更trueresourcesToWatch.replicationcontroller监听 ReplicationController 变更falseresourcesToWatch.replicaset监听 ReplicaSet 变更falseresourcesToWatch.daemonset监听 DaemonSet 变更falseresourcesToWatch.services监听 Service 变更falseresourcesToWatch.job监听 Job 变更falseresourcesToWatch.persistentvolume监听 PersistentVolume 变更falseresourcesPod 的资源请求与限额{}slack.channel接收通知的 Slack 频道slack.tokenSlack API TokentolerationsPod 容忍的节点污点列表要求 Kubernetes 1.6[]参数如何生效从 values.yaml 到容器内配置理解参数生效链路有助于排查配置不生效的问题。该 Chart 将用户配置通过 ConfigMap 注入容器核心流程如下values.yaml 中的slack.*与resourcesToWatch.*两组配置由 templates/configmap.yaml 渲染为名为release-kubewatch-config的 ConfigMap其data中存放配置文件.kubewatch.yamldata: .kubewatch.yaml: | handler: slack: channel: ... token: ... resource: deployment: true replicationcontroller: false ... pod: truetemplates/deployment.yaml 将该 ConfigMap 以卷的形式挂载到容器的/root目录对应 kubewatch 进程读取配置的默认路径~/.kubewatch.yamlvolumeMounts: - name: kubewatch-config-map mountPath: /root ... volumes: - name: kubewatch-config-map configMap: name: release-kubewatch-config值得注意的是Deployment 模板在 Pod 注解中写入了 ConfigMap 内容的 SHA256 校验和见 templates/deployment.yaml 中checksum/config-map注解。这意味着只要slack.*或resourcesToWatch.*配置发生变化ConfigMap 内容随之改变Deployment 的 Pod 模板也会被自动触发滚动更新无需手动重启 Pod。RBAC 的最小权限设计当rbac.createtrue时Chart 会创建一整套 RBAC 资源见 clusterrole.yaml、clusterrolebinding.yaml、servieaccount.yaml。从 clusterrole.yaml 的规则可以看出kubewatch 只申请了list与watch两个动词覆盖pods、namespaces、services、deployments、replicationcontrollers、replicasets、daemonsets等资源——仅监听、无写权限属于最小权限设计。同时注意ClusterRole 是集群级资源因此 kubewatch 默认可以跨命名空间监听集群内全部相关资源。对应地templates/deployment.yaml 中 ServiceAccount 的选择逻辑为serviceAccountName: {{ if .Values.rbac.create }}{{ template kubewatch.fullname . }}{{ else }}{{ .Values.rbac.serviceAccountName }}{{ end }}即开启 RBAC 时使用 Chart 自建与 release 名称关联的 ServiceAccount关闭时使用rbac.serviceAccountName指定的已有账户默认default。通过--set指定参数使用helm install的--set keyvalue[,keyvalue]参数可以逐个指定配置项。例如指定 Slack 频道与 Token 进行安装$ helm install incubator/kubewatch --name my-release \ --setslack.channel#bots,slack.tokenXXXX-XXXX-XXXX通过-f指定参数文件也可以准备一个 YAML 文件集中书写所有需要覆盖的参数安装时通过-f传入$ helm install incubator/kubewatch --name my-release -f values.yaml提示可以直接使用 Chart 自带的默认 values.yaml 作为起点复制一份后修改slack与resourcesToWatch两个小节。该文件同时给出了resourcesCPU/内存请求与限额和tolerations的注释示例便于按需取消注释启用resources: limits: cpu: 100m memory: 300Mi requests: cpu: 100m memory: 300Mi一个较完整的定制示例监听 Pod、Deployment、DaemonSet 与 Job并写入资源限额slack: channel: #k8s-events token: xoxb-XXXXXXXXXXXXXXXX resourcesToWatch: pod: true deployment: true daemonset: true job: true rbac: create: true resources: limits: cpu: 100m memory: 128Mi requests: cpu: 50m memory: 64Mi创建 Slack Bot 并邀请进频道要让 kubewatch 真正发出通知需要先为你的 Slack 工作区创建一个 Bot并拿到它的 API Token打开https://my.slack.com/services/new/bot创建新的 Slack Bot在 Bot 的编辑页面找到 API Token它以xoxb-开头将该 Token 填入slack.token将目标频道填入slack.channel在 Slack 消息输入区域输入/join name_of_your_botname_of_your_bot替换为你创建的 Bot 名称把 Bot 邀请进目标频道。完成以上步骤并安装/升级 Chart 后集群中 Pod、Deployment 等被监听资源的变更事件便会实时出现在该频道中。迁移到 stable 仓库版本由于 incubator 下的 kubewatch Chart 已弃用stable/kubewatch 保留了同名的维护版 Chart默认镜像已更新为bitnami/kubewatch且rbac.create默认值改为true还扩展了 HipChat、Mattermost、Flock、Webhook 等多种通知渠道及namespaceToWatch参数。如果你已经用本仓库的旧 Chart 部署过建议参考 stable/kubewatch/README.md 中的迁移说明将部署切换到 stable 版本以获得持续维护本文介绍的核心参数slack.*、resourcesToWatch.*、rbac.*等在两个版本中语义保持一致可平滑迁移。小结kubewatch Helm Chart 用一个轻量 Deployment 加一个 ConfigMap 解决了集群资源变更实时通知到 Slack的典型需求。其配置链路清晰——values.yaml→ ConfigMap 挂载为~/.kubewatch.yaml→ kubewatch 进程读取监听RBAC 采用最小权限的list/watch设计。实际使用时只需重点配置slack.channel、slack.token与resourcesToWatch三项并结合rbac.create与resources完成生产化加固。由于 incubator 版本已弃用生产环境建议直接采用 stable 仓库的维护版本。赞分享【免费下载链接】charts⚠️(OBSOLETE) Curated applications for Kubernetes项目地址https://gitcode.com/gh_mirrors/chart/charts点击查看免费下载相关推荐推荐项目Kubewatch - 实时监控你的Kubernetes集群推荐项目Kubewatch 实时监控你的Kubernetes集群 1、项目介绍 Kubewatch 是一个由 Robusta.dev 维护的官方项目原由 BQQ空间备份完整指南用 GetQzonehistory 一键导出全部历史说说和图片到ExcelQQ空间备份完整指南用 GetQzonehistory 一键导出全部历史说说和图片到Excel 打开手机刷QQ空间2016 年的说说早已翻不到2015 年网页爬虫数据分析Helm Chart 实战在 Kubernetes 集群中部署 AWS ALB Ingress ControllerHelm Chart 实战在 Kubernetes 集群中部署 AWS ALB Ingress Controller 本文基于当前仓库中的 incubator创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考