概述
Kubernetes事件是提供洞察群集内发生的事件的对象,例如调度程序做出了什么决定,或者为什么某些PODS被从节点中驱逐出去。
由于事件是API对象,因此它们存储在master上的apiserver中。 为避免填满主磁盘,必须执行保留策略:在最后一次出现后一小时内删除事件。
为了提供更长的历史记录和聚合能力,应该安装第三方解决方案来捕获事件。
本文介绍了一种将Kubernetes事件导出到Stackdriver Logging的解决方案,可以在此处理和分析它们。
部署
在kubernetes集群部署event exporter
kubectl create -f https://k8s.io/docs/tasks/debug-application-cluster/event-exporter-deploy.yaml
yaml 文件内容
apiVersion: v1
kind: ServiceAccount
metadata:
name: event-exporter-sa
namespace: default
labels:
app: event-exporter
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: event-exporter-rb
labels:
app: event-exporter
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: view
subjects:
- kind: ServiceAccount
name: event-exporter-sa
namespace: default
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: event-exporter-v0.1.0
namespace: default
labels:
app: event-exporter
spec:
selector:
matchLabels:
app: event-exporter
replicas: 1
template:
metadata:
labels:
app: event-exporter
spec:
serviceAccountName: event-exporter-sa
containers:
- name: event-exporter
image: k8s.gcr.io/event-exporter:v0.1.0
command:
- '/event-exporter'
terminationGracePeriodSeconds: 30
END
更多内容请参考events-stackdriver