Skip to content

Commit 874371e

Browse files
mouuiigitbook-bot
authored andcommitted
GITBOOK-146: No subject
1 parent 8ed5526 commit 874371e

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

k8s-yuan-ma-ren-cai-fu-hua-xun-lian-ying/di-wu-zhang-apimachinery/5.8-event-yuan-ma-jie-xi.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
# 5.8 event
1+
# 5.8 event 源码解析
22

33
## 概述
44

5-
k8s的Event事件是一种资源对象,用于展示集群内发生的情况,k8s系统中的各个组件会将运行时发生的各种事件上报给apiserver 。可以通过kubectl get event 或 kubectl describe pod podName 命令显示事件,查看k8s集群中发生了哪些事件。
5+
k8s的 Event 事件是一种资源对象,用于展示集群内发生的情况,k8s 系统中的各个组件会将运行时发生的各种事件上报给 apiserver 。可以通过kubectl get event 或 kubectl describe pod podName 命令显示事件,查看k8s集群中发生了哪些事件。
66

7-
apiserver 会将Event事件存在etcd集群中,为避免磁盘空间被填满,故强制执行保留策略:在最后一次的事件发生后,删除1小时之前发生的事件。
8-
9-
如:
7+
apiserver 会将 Event 事件存在 etcd 集群中,为避免磁盘空间被填满,故强制执行保留策略:在最后一次的事件发生后,删除1小时之前发生的事件。
108

119
```
1210
Events:
@@ -18,17 +16,17 @@ Events:
1816
Normal Started 13s kubelet, 192.168.13.130 Started container hpatest
1917
```
2018

21-
当集群中的 node 或 pod 异常时,大部分用户会使用 kubectl 查看对应的 events。
2219

23-
Event事件管理机制主要有三部分组成:
20+
21+
Event 事件管理机制主要有三部分组成:
2422

2523
* EventRecorder:是事件生成者,k8s组件通过调用它的方法来生成事件;
2624
* EventBroadcaster:事件广播器,负责消费EventRecorder产生的事件,然后分发给broadcasterWatcher;
2725
* broadcasterWatcher:用于定义事件的处理方式,如上报apiserver;
2826

2927
## 源码分析
3028

31-
### 1.Event资源数据结构
29+
### 1. Event 数据结构
3230

3331
```go
3432
// pkg/apis/core/types.go
@@ -118,7 +116,7 @@ type Event struct {
118116

119117
```
120118

121-
###  2.EventBroadcaster源码分析
119+
###  2. EventBroadcaster源码分析
122120

123121
#### 2.1 EventRecorder记录事件(事件生产者)
124122

@@ -809,7 +807,7 @@ func (e *eventLogger) eventObserve(newEvent *v1.Event, key string) (*v1.Event, [
809807

810808
eventObserve方法里面会去查找缓存中的记录,然后对count进行自增后更新到缓存中。
811809

812-
### 2.使用示例
810+
### 3. 使用示例
813811

814812
```go
815813
const (
@@ -833,7 +831,7 @@ c.recorder.Event(user, corev1.EventTypeNormal, successSynced, messageResourceSyn
833831

834832
StartRecordingToSink会调用StartEventWatcher,StartEventWatcher方法里面会异步的调用 watcher.ResultChan()方法获取到broadcasterWatcher的result管道,result管道里面的数据就是Broadcaster的distribute方法进行分发的。
835833

836-
### 4.总结
834+
### 4. 总结
837835

838836
  了解完 events 的整个处理流程后,再梳理一下整个流程:
839837

0 commit comments

Comments
 (0)