生活随笔 
收集整理的這篇文章主要介紹了
                                
k8s 离线安装_阿里开源 k8s 事件通知服务 
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
 
                                
                            
背景 在 Kubernetes 開源生態(tài)中,資源監(jiān)控有 metrics-server、Prometheus等,但這些監(jiān)控并不能實時推送 Kubernetes 事件,監(jiān)控準確性也不足。當 kubernetes 集群中發(fā)生 Pod因為 OOM 、拉取不到鏡像、健康檢查不通過等錯誤導致重啟,集群管理員其實是不知道的,因為 Kubernetes 有自我修復機制,Pod宕掉,可以重新啟動一個。這樣讓集群管理員很難立即發(fā)現(xiàn)服務(wù)問題。
Kubernetes 事件 Kubernetes中,事件分為兩種:
Warning事件:表示產(chǎn)生這個事件的狀態(tài)轉(zhuǎn)換是在非預期的狀態(tài)之間產(chǎn)生的 Normal事件:表示期望到達的狀態(tài),和目前達到的狀態(tài)是一致的 例子:
$ kubectl get eventsLAST SEEN   TYPE      REASON              OBJECT                                       MESSAGE
58m         Normal    ScalingReplicaSet   deployment/demo                     Scaled down replica set demo-8b85c64cb to 0
5m7s        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
如何監(jiān)聽k8s事件并通知? 阿里云開源 Kubernetes 事件離線工具 kube-eventer,能很好的解決這個問題。
kube-eventer 簡介 kube-eventer 是一個事件發(fā)射器,它將 kubernetes 事件發(fā)送到接收器(例如dingtalk,sls,kafka,微信等)。kubernetes 的核心設(shè)計概念是狀態(tài)機。因此,Normal 當轉(zhuǎn)移到所需狀態(tài)時會有事件 Warning。
kube-eventer 架構(gòu)圖 
用法 下面是以 釘釘 做為接收器,通過釘釘機器人通知到相關(guān)人員或者相關(guān)群
    apiVersion: apps/v1beta2kind: Deploymentmetadata:labels:name: kube-eventername: kube-eventernamespace: kube-systemspec:replicas: 1selector:matchLabels:app: kube-eventertemplate:metadata:labels:app: kube-eventerannotations:	scheduler.alpha.kubernetes.io/critical-pod: ''spec:dnsPolicy: ClusterFirstWithHostNetserviceAccount: kube-eventercontainers:- image: registry.aliyuncs.com/acs/kube-eventer-amd64:v1.1.0-63e7f98-aliyunname: kube-eventercommand:- "/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: TZvalue: America/New_YorkvolumeMounts:- name: localtimemountPath: /etc/localtimereadOnly: true- name: zoneinfomountPath: /usr/share/zoneinforeadOnly: trueresources:requests:cpu: 100mmemory: 100Milimits:cpu: 500mmemory: 250Mivolumes:- name: localtimehostPath:path: /etc/localtime- name: zoneinfohostPath:path: /usr/share/zoneinfo---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata:name: kube-eventerrules:- apiGroups:- ""resources:- eventsverbs:- get- list- watch---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:annotations:name: kube-eventerroleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: kube-eventersubjects:- kind: ServiceAccountname: kube-eventernamespace: kube-system---apiVersion: v1kind: ServiceAccountmetadata:name: kube-eventernamespace: kube-system
支持下列通知程序 dingtalk 阿里 sls 服務(wù) elasticsearch honeycomb influxdb kafka mysql 微信 項目地址 https://github.com/AliyunContainerService/kube-eventer
參考鏈接 https://github.com/AliyunContainerService/kube-eventer
您的關(guān)注是小站的動力 
歡迎大家關(guān)注交流,定期分享自動化運維、DevOps、Kubernetes、Service Mesh和Cloud Native 
                            總結(jié) 
                            
                                以上是生活随笔 為你收集整理的k8s 离线安装_阿里开源 k8s 事件通知服务 的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                            
                                如果覺得生活随笔 網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔 推薦給好友。