LoginSignup
1
1

More than 5 years have passed since last update.

kubernetesのeventを過信してはいけない(戒め)

Posted at

こんにちは、event大好きマンです。
こんなツールを使ったりして快適イベント監視生活を送っています。
しかしこのeventというもの、完全に信頼するには少し足りなかったようです。

eventは省略される

livenessのfailによりコンテナが再起動しているはずなのにeventには見当たらない、ということがたまにありました。
調べてみたところ、eventが大量発生した場合は一部省略されるようになっているようです。

どういうことなの

tl;dr
https://github.com/kubernetes/client-go/blob/kubernetes-1.13.4/tools/record/events_cache.go#L44-L49

kubernetesの各コンポーネントはeventのハンドリングにこの辺りの仕組み
https://github.com/kubernetes/client-go/blob/kubernetes-1.13.4/tools/record
を使っていますが、これには大量に出されたeventを適度にフィルタする仕組みが入っています。
そしてそのフィルタの基準がtl;drで貼ったリンクの部分、定数で決められています。

  • 各コンポーネントはeventハンドリング用のthread(便宜上Recorderと呼ぶ)を作る
  • Recorderは25回eventを送ることができ、それを超えるとコンポーネント側でeventを発生させてもRecorderでフィルタされてしまう
  • 5分毎に1回ぶん回復する
  • 別々のeventでもRecorderを共有していればフィルタの対象になる

といったような感じになってます。

どうすればいいの

そういうものなのでeventを扱う時は頭に入れておきましょう。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1