В последнее время я исследую, как kubernetes справляется с событиями System OOM.
Но у меня есть вопрос о том, как kubelet сообщает о событиях OOM на сервер API.
Я нахожу код OOM в /kubernetes/pkg/kubelet/oom_watcher.go
for event := range eventChannel.GetChannel() {
glog.V(2).Infof("Got sys oom event from cadvisor: %v", event)
ow.recorder.PastEventf(ref, metav1.Time{Time: event.Timestamp}, v1.EventTypeWarning, systemOOMEvent, "System OOM encountered")
}
И я знаю, что kubelet записывает события OOM в устройство записи, которое kubelet init.
Но как кубелет или аписервер потребляют рекордер событий?
Где код, который я могу найти, kubelet использует события или сообщает об этом apiserver?