前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >监视Kubernetes事件并通过钉钉机器人通知

监视Kubernetes事件并通过钉钉机器人通知

作者头像
YP小站
发布2020-06-04 14:53:45
6890
发布2020-06-04 14:53:45
举报
文章被收录于专栏:YP小站YP小站

kube-dingtalk 简介

kube-dingtalk 是Kubernetes事件监视服务。连续失败后,通过钉钉机器人播报。

kube-dingtalk 项目地址

https://github.com/yangpeng14/kube-dingtalk

Build Docker镜像

代码语言:javascript
复制
FROM node:10-alpine

# Don't run as root user
ENV user kube-dingtalk

RUN echo "http://mirrors.aliyun.com/alpine/v3.7/main/" > /etc/apk/repositories \
    && apk update \
    && apk add python2 openssl ca-certificates make gcc g++ \
    && rm -rf /var/cache/apk/*

RUN addgroup -S $user && adduser -S -g $user $user

USER $user

WORKDIR /app
COPY package.json /app
RUN npm config set registry https://registry.npm.taobao.org && npm install --production

COPY . /app

CMD ["node", "."]

Kubernetes 部署

  • 创建 kube-dingtalk RBAC
代码语言:javascript
复制
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: kube-dingtalk
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kube-dingtalk
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: kube-dingtalk
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: kube-dingtalk
subjects:
  - kind: ServiceAccount
    name: kube-dingtalk
    namespace: kube-system
  • 创建 Deployment yaml配置
代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: kube-dingtalk
  namespace: kube-system
spec:
  replicas: 1
  revisionHistoryLimit: 3
  template:
    metadata:
      annotations:
        scheduler.alpha.kubernetes.io/critical-pod: ""
      name: kube-dingtalk
      labels:
        app: kube-dingtalk
    spec:
     # Uncomment serviceAccountName if you use RBAC.
      serviceAccountName: kube-dingtalk
      containers:
      - name: kube-dingtalk
        image: kube-dingtalk:v1  # Use the dockerfile build image in your project 
        env:
        - name: DINGTALK_TOKEN
          value: xxxxxxxxxxxxx
        #- name: TICK_RATE
        #  value: "60000"
        - name: FLOOD_EXPIRE
          value: "120000"
        - name: NOT_READY_MIN_TIME
          value: "120000"
        #- name: KUBE_NAMESPACES_ONLY
        #  value: kube-system
        resources:
          requests:
            memory: 30M
            cpu: 5m
      tolerations:
      - effect: NoSchedule
        key: node-role.kubernetes.io/master
      - key: CriticalAddonsOnly
        operator: Exists
  • Deployment 支持的环境变量

名称

解释

TICK_RATE

多长时间更新一次(以毫秒为单位,默认为15000或15s)

FLOOD_EXPIRE

在状态恢复正常后经过了这么多毫秒后,重复通知。(默认为60000或60s)

NOT_READY_MIN_TIME

等待Pod尚未准备就绪后再通知的时间。(默认为60000或60s)

KUBE_USE_KUBECONFIG

在 ~/.kube/config中从上下文中读取Kubernetes凭据(默认关闭)

KUBE_USE_CLUSTER

从pod读取Kubernetes凭据(默认启用)

KUBE_NAMESPACES_ONLY

监视namespaces列表,这些namespaces指定为json数组或逗号分隔值(foo_namespace,bar_namespace)的字符串,不声明默认监视全部namespaces。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 YP小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • kube-dingtalk 简介
  • kube-dingtalk 项目地址
  • Build Docker镜像
  • Kubernetes 部署
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档