
maxrocketinternet/k8s-event-loggerk8s-event-logger是一个轻量级工具,用于实时监控Kubernetes集群事件,并将事件数据以JSON格式输出到标准输出(stdout)。该工具旨在简化Kubernetes集群事件的收集、解析和分析流程,便于集成到日志管理系统中进行集中处理。
1. 配置RBAC权限
该工具需要访问Kubernetes API的权限以获取事件数据,需创建对应的ServiceAccount、ClusterRole和ClusterRoleBinding:
yamlapiVersion: v1 kind: ServiceAccount metadata: name: k8s-event-logger namespace: default --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: k8s-event-logger-role rules: - apiGroups: [""] resources: ["events"] verbs: ["get", "watch", "list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: k8s-event-logger-binding subjects: - kind: ServiceAccount name: k8s-event-logger namespace: default roleRef: kind: ClusterRole name: k8s-event-logger-role apiGroup: rbac.authorization.k8s.io
2. 部署应用
通过Deployment部署k8s-event-logger:
yamlapiVersion: apps/v1 kind: Deployment metadata: name: k8s-event-logger namespace: default spec: replicas: 1 # 单副本足以满足事件监听需求 selector: matchLabels: app: k8s-event-logger template: metadata: labels: app: k8s-event-logger spec: serviceAccountName: k8s-event-logger containers: - name: k8s-event-logger image: max-rocket-internet/k8s-event-logger:latest # 使用最新稳定版本 resources: limits: cpu: 100m memory: 128Mi requests: cpu: 50m memory: 64Mi
3. 验证部署
部署完成后,通过以下命令查看输出的JSON格式事件日志:
bashkubectl logs -l app=k8s-event-logger -f
预期输出示例(JSON格式):
json{"metadata":{"name":"nginx-78f5d695bd-2xqzv.176f5d3b1a2b3","namespace":"default","selfLink":"/api/v1/namespaces/default/events/nginx-78f5d695bd-2xqzv.176f5d3b1a2b3","uid":"a1b2c3d4-5678-90ef-ghij-klmnopqrstuv","resourceVersion":"***","creationTimestamp":"2023-10-01T12:00:00Z"},"involvedObject":{"kind":"Pod","namespace":"default","name":"nginx-78f5d695bd-2xqzv","uid":"wxyz1234-5678-90ab-cdef-ghijklmnopqr","apiVersion":"v1","resourceVersion":"78901"},"reason":"Scheduled","message":"Successfully assigned default/nginx-78f5d695bd-2xqzv to node-1","source":{"component":"default-scheduler"},"firstTimestamp":"2023-10-01T12:00:00Z","lastTimestamp":"2023-10-01T12:00:00Z","count":1,"type":"Normal","eventTime":null,"reportingComponent":"","reportingInstance":""}
Warning级别事件)配置日志告警规则,提升集群异常响应速度manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务