k8s 离线安装_阿里开源 k8s 事件通知服务

背景

在 Kubernetes 开源生态中,资源监控有 metrics-server、Prometheus等,但这些监控并不能实时推送 Kubernetes 事件,监控准确性也不足。当 kubernetes 集群中发生 Pod因为 OOM 、拉取不到镜像、健康检查不通过等错误导致重启,集群管理员其实是不知道的,因为 Kubernetes 有自我修复机制,Pod宕掉,可以重新启动一个。这样让集群管理员很难立即发现服务问题。

Kubernetes 事件

Kubernetes中,事件分为两种:

  • Warning事件:表示产生这个事件的状态转换是在非预期的状态之间产生的
  • Normal事件:表示期望到达的状态,和目前达到的状态是一致的

例子:

$ kubectl get eventsLAST SEEN   TYPE      REASON              OBJECT                                       MESSAGE58m         Normal    ScalingReplicaSet   deployment/demo                     Scaled down replica set demo-8b85c64cb to 05m7s        Warning   Unhealthy           pod/demo-79844f78b8-nd5jz   Readiness probe failed: Get http://192.168.1.68:8080/healthCheck: dial tcp 192.168.1.68:8080: connect: connection refused

如何监听k8s事件并通知?

阿里云开源 Kubernetes 事件离线工具 kube-eventer,能很好的解决这个问题。

kube-eventer 简介

kube-eventer 是一个事件发射器,它将 kubernetes 事件发送到接收器(例如dingtalk,sls,kafka,微信等)。kubernetes 的核心设计概念是状态机。因此,Normal 当转移到所需状态时会有事件 Warning。

kube-eventer 架构图

2184e233334459d87377e3a60a82acac.png

用法

下面是以 钉钉 做为接收器,通过钉钉机器人通知到相关人员或者相关群

  • 获取钉钉群机器人 Token,如下图
13070e4b7b1ee5c027c5ffbb743653ff.png
  • 安装事件处理程序并配置接收器
apiVersion: apps/v1beta2kind: Deploymentmetadata:  labels:    name: kube-eventer  name: kube-eventer  namespace: kube-systemspec:  replicas: 1  selector:    matchLabels:      app: kube-eventer  template:    metadata:      labels:        app: kube-eventer      annotations:        scheduler.alpha.kubernetes.io/critical-pod: ''    spec:      dnsPolicy: ClusterFirstWithHostNet      serviceAccount: kube-eventer      containers:        - image: registry.aliyuncs.com/acs/kube-eventer-amd64:v1.1.0-63e7f98-aliyun          name: kube-eventer          command:            - "/kube-eventer"            - "--source=kubernetes:https://kubernetes.default"            ## .e.g,dingtalk sink demo            - --sink=dingtalk:[your_webhook_url]&label=[your_cluster_id]&level=[Normal or Warning   (default)]          env:          # If TZ is assigned, set the TZ value as the time zone          - name: TZ            value: America/New_York          volumeMounts:            - name: localtime              mountPath: /etc/localtime              readOnly: true            - name: zoneinfo              mountPath: /usr/share/zoneinfo              readOnly: true          resources:            requests:              cpu: 100m              memory: 100Mi            limits:              cpu: 500m              memory: 250Mi      volumes:        - name: localtime          hostPath:            path: /etc/localtime        - name: zoneinfo          hostPath:            path: /usr/share/zoneinfo---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata:  name: kube-eventerrules:  - apiGroups:      - ""    resources:      - events    verbs:      - get      - list      - watch---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:  annotations:  name: kube-eventerroleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: kube-eventersubjects:  - kind: ServiceAccount    name: kube-eventer    namespace: kube-system---apiVersion: v1kind: ServiceAccountmetadata:  name: kube-eventer  namespace: kube-system
  • 查看钉钉告警事件
4f9affd0f695a405ea9a29b6fa70cea9.png

支持下列通知程序

  1. 钉钉
  2. 阿里云sls服务
  3. elasticsearch 服务
  4. honeycomb 服务
  5. influxdb 数据库
  6. kafka 数据库
  7. mysql 数据库
  8. 微信

项目地址

https://github.com/AliyunContainerService/kube-eventer

参考链接

  • https://github.com/AliyunContainerService/kube-eventer

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245594.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kali linux解密栅栏密码,最详细bugku加密小白解法---持续更新!

bugku加密!安排本文持续更新1 摩斯密码2 栅栏密码3 Ook密码4 brain密码5 easycrypto密码6 base647 散乱的密文8 凯撒密码9 一段base6410 !?11 []-12 奇怪的密码--凯撒变式13 托马斯杰斐逊--转轮加密14 伪加密15 告诉你个秘密16 这不是MD517 贝…

linux命令 重定向%3e,linux输出信息调试信息重定向

在运行linux的时候有所有的调试信息可以分为三个部分1、bootloader输出信息U-Boot 1.3.2(Nov 19 2016 - 22:02:08)DRAM: 64 MBFlash: 512 kBNAND: 64 MiBIn: serialOut: serialErr: serialHit any key to stop autoboot: 0[yqliu2410 #] tftpFound DM9000 ID:90000a46 at addre…

360加固一键脱壳工具2020_如何脱壳加固过的Apk并利用其API“走近数据库”

0x00 寻找突破口打开首页,emm就一个登录页面,没了随便写点东西提交看看天生手欠的我一不小心就多输了一个单引号WDNMD,除了数字和字母其他都不行?这叫我怎么测?刚刚要放弃,就在这时,首页的一个二维码吸引了我正是安卓端的软件,眼前一亮,仿佛找到了打开新世界的大门开开心心地…

python 函数递归_Python零基础之三元表达式、函数递归、匿名函数教程!超级详细!...

目录一、三元表达式二、函数递归 递归调用的定义递归分为两个阶段:递归,回溯三、匿名函数 什么是匿名函数?有名字的函数与匿名函数的对比lambda匿名函数的应用四、内置函数 #注意:内置函数id()可以返回一个对象的身份,…

linux 内核空间占用cpu百分比过高,linux下分析java程序占用CPU、内存过高

一、CPU过高分析1)使用TOP命令查看CPU、内存使用状态可以发现CPU占用主要分为两部分,一部分为系统内核空间占用CPU百分比,一部分为用户空间占用CPU百分比。其中CPU状态中标示id的为空闲CPU百分比。当空闲CPU百分比越低,说明CPU占用率越高。2)…

springboot 获取application参数_LOOK ! SpringBoot的外部化配置最全解析

本篇要点介绍各种配置方式的优先级。介绍各种外部化配置方式。介绍yaml的格式及原理。介绍如何绑定并测试类型安全的属性配置。介绍ConfigurationProperties与Value的区别。一、SpringBoot官方文档对于外部化配置的介绍及作用顺序SpringBoot支持多种外部化配置,以便…

spark入门_入门必读 | Spark 论文导读

Resilient Distributed Datasets: A fault-tolerant abstraction for in-Memory cluster computing, 是讲述 Spark RDD 的基础论文,通读论文能给我们带来全景的 Spark 知识面摘要:RDD,全称Resilient Distributed Dataset,可伸缩性数据集。使用…

Qt在linux下无法输入中文,Ubuntu使用集成开发环境QT无法输入中文的解决方法

QT Creator是轻量级集成开发环境,在Ubuntu系统操作中,使用QT时无法输入中文,遇到这种情况要如何处理呢?下面小编就给大家介绍下Ubuntu如何解决QT无法输入中文问题。1 安装搜狗输入法,(如果你想用ubuntu自带的输入法也没…

altium pcb 信号高亮_在PCB设计中高效的放置元件技巧

在印刷电路板设计中,设置电路板轮廓后,将零件(占地面积)调用到工作区。然后将零件重新放置到正确的位置,并在完成后进行接线。组件放置是这项工作的第一步,对于之后的平滑布线工作是非常重要的工作。如果在接线工作期间模块不足&a…

linux升级ssh到6.6版本,CentOS6.5 openssh升级到openssh-7.6版本

CentOS6.5 openssh升级到openssh-7.6版本2018-8-3 foooy升级前保证故障后能现场处理,或者远程卡处理,否则不要这样直接升级yum install -y gcc openssl-devel pam-devel rpm-buildwget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.6…

python中csv文件通过什么表示字符_python_写入csv文件时候无法进行原样写入(写入字符串中出现逗号,时候,csv文件自动分成两个单元格)...

问题描述: 写入csv文件时候无法进行原样写入(写入字符串中出现逗号","时候,csv文件自动分成两个单元格) with open("test.csv","w") as f: f.write("闲暇时,我会被一段,配乐诗朗诵,所感动,悲伤…

rabbitmq怎样确认是否已经消费了消息_阿里Java研发二面:了解RabbitMQ?说说RabbitMQ可靠性投递...

上期写到高并发下RabbitMq消息中间件你应该介么玩今天给小伙伴说说!有自己看法的也可以在评论区留言探讨,也可以转发关注下我以后会长期分享!目录:确保消息发送到RabbitMQ服务器确保消息被正确的路由确保消息在队列正确地存储确保…

linux 装完yum不能用,【linux】yum 不能安装应用,提示There are no enabled repos Run “yum repolist all”...

回答一般来说著名的linux系统基本上分两大类:1 RedHat系列:Redhat、Centos、Fedora等2 Debian系列:Debian、Ubuntu等RedHat 系列:1 常见的安装包格式 rpm 包,安装rpm包的命令是 “rpm -参数”2 包管理工具 yum3 支持ta…

更新fielddata为true_线程与更新UI,细谈原理

前言 相信不少读者都阅读过相类似的文章了,但是我还是想完整的把这之间的关系梳理清楚,细节聊好,希望你也能从中学到一些。进入正题,大家应该都听过这样一句话——“UI更新要在主线程,子线程更新UI会崩溃”。久而久之就…

linux sublime3 插件安装插件,手动安装sublimeText3插件

就在今天下午,我花了一个小时的时间安装sublime3插件stylus,就是为了让stylus文件能够高亮显示。网上找了很多方法,可以通过package control安装,然而,我的sublime package control能够正常显示,插件列表也…

vbs打开软件光标停在第一个输入框_三维设计软件,3DMAX最全快捷键大全,赶快收藏哦...

文章后有获取软件的方式。基本快捷键A-角度捕捉开关 B-切换到底视图C-切换到摄象机视图D-封闭视窗E-切换到轨迹视图F-切换到前视图G-切换到网格视图H-显示通过名称选择对话框I-交互式平移J-选择框显示切换K-切换到背视图L-切换到左视图M-材质编辑器N-动画模式开关O-自适应退化开…

mfc读取txt文件并显示_Python入门丨文件读写

文件读写文件读写,是Python代码调用调用电脑文件的主要功能,能被用于读取和写入文本记录、音频片段、Excel文档、保存邮件以及任何保存在电脑上的东西。读取文件读取文件三个步骤:准备工作:首先在桌面新建了一个test文件夹&#x…

c语言 多个线程对同一变量执行memcpy_手把手带你实现线程池

执行与任务分离的组件— 线程池wangbojing/threadpool​github.com多线程技术主要解决了处理器单元内多个线程执行的问题,它可以显著的减少处理器单元的闲置时间,增加处理器单元的吞吐能力。线程池是多线程编程的一个必要组件,并且对于很多编…

python手势识别_Python|使用opencv进行简单的手势检测

简单的手势识别,基本思路是基于皮肤检测,皮肤的颜色在HSV颜色空间下与周围环境的区分度更高,从RGB转换到HSV颜色空间下针对皮肤颜色进行二值化,得到mask: defHSVBin(img):hsvcv2.cvtColor(img,cv2.COLOR_RGB2HSV) lowe…

人工智能选go还是python_深圳人工智能学Python还是go,真实经历分享

深圳人工智能学Python还是go,进行选择深圳Python培训 的时候,第一要思考的就是该机构的口碑如何。如果该家机构没有一定的口碑信誉,就等于搬起石头砸了自己的招牌。为什么突然就那么火了,Python的工资待遇,人工智能&am…