这是官方的 Kubewatch 项目,最初由 Bitnami 开发,现在由 Robusta.dev 维护。
欢迎在 Slack 上提出问题、提交 PR 或与我们交流!
kubewatch 是一个 Kubernetes 观察器,可以将通知发布到可用的协作中心/通知渠道。在您的 k8s 集群中运行它,您将通过 webhook 获得事件通知。
查看有关 KubeWatch 2.0 的博客文章,了解更多关于 KubeWatch 的使用方法。
<img src="https://yellow-cdn.veclightyear.com/835a84d5/66a501a1-ae14-4a83-9bc6-39fa3ceabde7.jpeg"> </div>robustadev/kubewatch:v2.6
$ kubewatch -h
Kubewatch:Kubernetes 的观察器
kubewatch 是一个 Kubernetes 观察器,可以向 Slack/hipchat/mattermost/flock 频道发布通知。
它会监视集群的资源变化,并通过 webhook 发送通知。
支持的 webhook:
- slack
- slackwebhook
- msteams
- hipchat
- mattermost
- flock
- webhook
- cloudevent
- smtp
用法:
kubewatch [标志]
kubewatch [命令]
可用命令:
config 修改 kubewatch 配置
resource 管理要监视的资源
version 打印版本
标志:
-h, --help 获取帮助
使用 "kubewatch [命令] --help" 获取有关命令的更多信息。
当您在集群中安装了 helm 后,使用以下设置:
helm repo add robusta https://robusta-charts.storage.googleapis.com && helm repo update helm install kubewatch robusta/kubewatch --set='rbac.create=true,slack.channel=#YOUR_CHANNEL,slack.token=xoxb-YOUR_TOKEN,resourcesToWatch.pod=true,resourcesToWatch.daemonset=true'
您也可以提供一个值文件:
rbac: create: true resourcesToWatch: deployment: false replicationcontroller: false replicaset: false daemonset: false services: true pod: true job: false node: false clusterrole: true clusterrolebinding: true serviceaccount: true persistentvolume: false namespace: false secret: false configmap: false ingress: false coreevent: false event: true slack: channel: '#YOUR_CHANNEL' token: 'xoxb-YOUR_TOKEN'
然后使用:
$ helm upgrade --install kubewatch robusta/kubewatch --values=values-file.yml
为了在 Kubernetes 集群中快速运行 kubewatch,最简单的方法是创建一个 ConfigMap 来保存 kubewatch 配置。
在 kubewatch-configmap.yaml
中提供了一个示例,请记得更新您自己的 slack 频道和令牌参数。或者,您可以使用 secrets。
创建 k8s configmap:
$ kubectl create -f kubewatch-configmap.yaml
直接创建 Pod,或创建您自己的部署:
$ kubectl create -f kubewatch.yaml
将创建一个 kubewatch
容器,同时创建一个 kubectl
边车容器以访问 API 服务器。
一旦 Pod 运行,您将开始在配置的 Slack 频道中看到 Kubernetes 事件。以下是一个截图:
要修改您获得的通知,请更新 kubewatch
ConfigMap 并打开或关闭(true/false)资源:
resource:
deployment: false
replicationcontroller: false
replicaset: false
daemonset: false
services: true
pod: true
job: false
node: false
clusterrole: false
clusterrolebinding: false
serviceaccount: false
persistentvolume: false
namespace: false
secret: false
configmap: false
ingress: false
coreevent: false
event: true
运行 1.6 或更高版本的 Kubernetes Engine 集群引入了基于角色的访问控制(RBAC)。我们可以为其创建 ServiceAccount
以使其与 RBAC 一起工作。
$ kubectl create -f kubewatch-service-account.yaml
如果您没有创建权限,您需要先成为管理员。例如,在 GKE 中,您可以运行:
$ kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=REPLACE_EMAIL_HERE
编辑 kubewatch.yaml
,并在 spec
下创建一个新字段 serviceAccountName: kubewatch
,您可以通过运行以下命令来实现:
$ sed -i '/spec:/a\ \ serviceAccountName: kubewatch' kubewatch.yaml
然后像往常一样创建 pod
:
$ kubectl create -f kubewatch.yaml
# 下载并安装 kubewatch $ go get -u github.com/robusta-dev/kubewatch
$ kubewatch config add slack --channel <slack频道> --token <slack令牌>
$ kubewatch resource add --po --svc INFO[0000] 已配置资源 svc INFO[0000] 已配置资源 po
$ kubewatch INFO[0000] 正在启动kubewatch控制器 pkg=kubewatch-service INFO[0000] 正在启动kubewatch控制器 pkg=kubewatch-pod INFO[0000] 正在处理添加到服务: default/kubernetes pkg=kubewatch-service INFO[0000] 正在处理添加到服务: kube-system/tiller-deploy pkg=kubewatch-service INFO[0000] 正在处理 添加到Pod: kube-system/tiller-deploy-69ffbf64bc-h8zxm pkg=kubewatch-pod INFO[0000] Kubewatch控制器已同步并就绪 pkg=kubewatch-service INFO[0000] Kubewatch控制器已同步并就绪 pkg=kubewatch-pod
#### 使用Docker:
要交互式运行Kubewatch容器,请将配置文件放在`$HOME/.kubewatch.yaml`位置,并使用以下命令。
docker run --rm -it --network host -v $HOME/.kubewatch.yaml:/root/.kubewatch.yaml -v $HOME/.kube/config:/opt/bitnami/kubewatch/.kube/config --name <容器名称> robustadev/kubewatch
示例:
$ docker run --rm -it --network host -v $HOME/.kubewatch.yaml:/root/.kubewatch.yaml -v $HOME/.kube/config:/opt/bitnami/kubewatch/.kube/config --name kubewatch-app robustadev/kubewatch
==> 正在写入配置文件... INFO[0000] 正在启动kubewatch控制器 pkg=kubewatch-service INFO[0000] 正在启动kubewatch控制器 pkg=kubewatch-pod INFO[0000] 正在启动kubewatch控制器 pkg=kubewatch-deployment INFO[0000] 正在启动kubewatch控制器 pkg=kubewatch-namespace INFO[0000] 正在处理添加到命名空间: kube-node-lease pkg=kubewatch-namespace INFO[0000] 正在处理添加到命名空间: kube-public pkg=kubewatch-namespace INFO[0000] 正在处理添加到命名空间: kube-system pkg=kubewatch-namespace INFO[0000] 正在处理添加到命名空间: default pkg=kubewatch-namespace ....
要将Kubewatch容器作为守护进程运行,请使用
$ docker run --rm -d --network host -v $HOME/.kubewatch.yaml:/root/.kubewatch.yaml -v $HOME/.kube/config:/opt/bitnami/kubewatch/.kube/config --name kubewatch-app robustadev/kubewatch
# 配置
Kubewatch支持`config`命令进行配置。配置文件将保存在`$HOME/.kubewatch.yaml`
$ kubewatch config -h
config命令允许管理员为运行kubewatch设置自己的配置
用 法: kubewatch config [flags] kubewatch config [command]
可用命令: add 向.kubewatch.yaml添加webhook配置 test 测试.kubewatch.yaml中存在的处理程序配置 view 查看.kubewatch.yaml
标志: -h, --help 查看帮助信息
使用 "kubewatch config [command] --help" 获取有关命令的更多信息。
### 示例:
### slack:
- 创建一个[slack机器人](https://my.slack.com/services/new/bot)
- 编辑机器人以自定义其名称、图标并检索API令牌(以`xoxb-`开头)。
- 通过在Slack消息区域输入以下内容将机器人邀请到您的频道:/invite @您的机器人名称
- 使用以下步骤将API令牌添加到kubewatch配置
```console
$ kubewatch config add slack --channel <slack频道> --token <slack令牌>
您可以选择通过环境变量设置SLACK令牌和频道:
$ export KW_SLACK_TOKEN='XXXXXXXXXXXXXXXX' $ export KW_SLACK_CHANNEL='#频道名称'
创建一个slack应用
启用传入Webhooks。(在"设置"页面上。)
创建一个传入webhook URL(在"设置"页面上添加新的Webhook到工作区。)
选择应用程序将发布到的频道,然后点击以授权您的应用程序。您将获得webhook URL。 Slack Webhook URL将类似于: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
使用以下步骤将slack webhook url添加到kubewatch配置
$ kubewatch config add slackwebhookurl --username <slack用户名> --emoji <slack表情> --channel <slack频道> --slackwebhookurl <slack_webhook_url>
或者,您可以选择通过环境变量设置SLACK频道、用户名、表情和webhook URL:
$ export KW_SLACK_CHANNEL=slack频道 $ export KW_SLACK_USERNAME=slack用户名 $ export KW_SLACK_EMOJI=slack表情 $ export KW_SLACK_WEBHOOK_URL=slack_webhook_url
在bash脚本中应用的示例:
$ cat kubewatch-configmap-slackwebhook.yaml | sed "s|<slackchannel>|"\"$SlackChannel"\"|g;s|<slackusername>|"\"$SlackUsesrName"\"|g;s|<slackemoji>|"\"$SlackEmoji"\"|g;s|<SlackWebhookUrl>|"\"$WebhookUrl"\"|g" | kubectl create -f -
apiVersion: v1 kind: ConfigMap metadata: name: kubewatch data: .kubewatch.yaml: | namespace: "" handler: slackwebhook: enabled: true channel: <slackchannel> username: <slackusername> emoji: <slackemoji> slackwebhookurl: <SlackWebhookUrl> resource: clusterrole: false configmap: false daemonset: false deployment: true ingress: false job: false namespace: false node: false persistentvolume: false pod: true replicaset: false replicationcontroller: false secret: false serviceaccount: false services: true event: true coreevent: false ``` ### flock: - 创建一个[Flock 机器人](https://docs.flock.com/display/flockos/Bots)。 - 使用以下命令将 Flock webhook URL 添加到配置中。 ```console $ kubewatch config add flock --url <flock_webhook_url>
你还可以选择设置 FLOCK URL
$ export KW_FLOCK_URL='https://api.flock.com/hooks/sendMessage/XXXXXXXX'
使用以下命令通过发送测试消息来测试处理程序配置。
$ kubewatch config test -h
通过发送测试消息测试 .kubewatch.yaml 中的处理程序配置
用法:
kubewatch config test [flags]
标志:
-h, --help 查看帮助
$ kubewatch config test
测试 .kubewatch.yaml 中的处理程序配置
2019/06/03 12:29:23 消息已成功发送到频道 ABCD,时间戳为 1559545162.000100
使用以下命令查看整个配置文件 $HOME/.kubewatch.yaml
。
$ kubewatch config view
.kubewatch.yaml 的内容
handler:
slack:
token: xoxb-xxxxx-yyyy-zzz
channel: kube-watch
hipchat:
token: ""
room: ""
url: ""
mattermost:
channel: ""
url: ""
username: ""
flock:
url: ""
webhook:
url: ""
cloudevent:
url: ""
resource:
deployment: false
replicationcontroller: false
replicaset: false
daemonset: false
services: false
pod: true
job: false
node: false
clusterrole: false
clusterrolebinding: false
serviceaccount: false
persistentvolume: false
namespace: false
secret: false
configmap: false
ingress: false
event: true
coreevent: false
namespace: ""
使用以下命令管理被监视的资源,更改将保存到 $HOME/.kubewatch.yaml
。
$ kubewatch resource -h
管理要监视的资源
用法:
kubewatch resource [flags]
kubewatch resource [command]
可用命令:
add 添加要监视的特定资源
remove 移除正在监视的特定资源
标志:
--clusterrolebinding 监视集群角色绑定
--clusterrole 监视集群角色
--cm 监视普通配置映射
--deploy 监视部署
--ds 监视守护程序集
-h, --help 查看帮助
--ing 监视入口
--job 监视作业
--node 监视节点
--ns 监视命名空间
--po 监视 Pod
--pv 监视持久卷
--rc 监视复制控制器
--rs 监视副本集
--sa 监视服务账户
--secret 监视普通密钥
--svc 监视服务
--coreevent 监视来自 Kubernetes 核心 API 的事件(旧事件 API,在 Kubernetes 1.19 中被替换)
使用 "kubewatch resource [command] --help" 获取有关命令的更多信息。
$ kubewatch resource add -h
添加要监视的特定资源
用法:
kubewatch resource add [flags]
标志:
-h, --help 查看帮助
全局标志:
--clusterrole 监视集群角色
--clusterrolebinding 监视集群角色绑定
--cm 监视普通配置映射
--deploy 监视部署
--ds 监视守护程序集
--ing 监视入口
--job 监视作业
--node 监视节点
--ns 监视命名空间
--po 监视 Pod
--pv 监视持久卷
--rc 监视复制控制器
--rs 监视副本集
--sa 监视服务账户
--secret 监视普通密钥
--svc 监视服务
--coreevent 监视来自 Kubernetes 核心 API 的事件(旧事件 API,在 Kubernetes 1.19 中被替换)
# 将监视 rc、po 和 svc $ kubewatch resource add --rc --po --svc # rc、po 和 svc 将停止被监视 $ kubewatch resource remove --rc --po --svc
如果你想更改默认日志级别,添加一个名为 LOG_LEVEL
的环境变量,值可以是 trace/debug/info/warning/error
中的一个
env: - name: LOG_LEVEL value: debug
如果你想将日志格式更改为 json
,添加一个名为 LOG_FORMATTER
的环境变量,值为 json
env: - name: LOG_FORMATTER value: json
在任意位置克隆仓库:
$ git clone https://github.com/bitnami-labs/kubewatch.git $ cd kubewatch $ go build
或者
你也可以直接使用 Makefile:
$ make build
$GOPATH
$ make docker-image $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE kubewatch latest 919896d3cd90 3 minutes ago 27.9MB
参考贡献指南开始贡献。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE ),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI助力,做PPT更 简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
高分辨率纹理 3D 资产生成
Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。
一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。
3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。
用于可扩展和多功能 3D 生成的结构化 3D 潜在表示
TRELLIS 是一个专注于 3D 生成的项目,它利用结构化 3D 潜在表示技术,实现了可扩展且多功能的 3D 生成。项目提供了多种 3D 生成的方法和工具,包括文本到 3D、图像到 3D 等,并且支持多种输出格式,如 3D 高斯、辐射场和网格等。通过 TRELLIS,用户可以根据文本描述或图像输入快速生成高质量的 3D 资产,适用于游戏开发、动画制作、虚拟现实等多个领域。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号