Skip to content
This repository has been archived by the owner on Dec 13, 2023. It is now read-only.

【提问】k8s indexinformer启动过程发送事件变更如何处理 #82

Open
tianzichenone opened this issue Nov 2, 2021 · 10 comments

Comments

@tianzichenone
Copy link

tianzichenone commented Nov 2, 2021

问题描述

背景
k8s 中的indexInformer在启动的过程中会去list&watch,
一个controller在其crash重启时,集群删除了一个资源如pod,那么在其启动的时候list就不会有这个pod,那么就会丢失这个Delete事件,进而没有办法回调Ondelete。这种情况k8s中是怎么处理的

@mjolnir-bot
Copy link
Collaborator

Hello, 我是云原生社区机器人妙尔尼尔(Mjölnir) @mjolnir-bot. 我将帮助你更好的来使用issue.

你似乎没有使用我们社区任何模板的格式填写问题。为了给你最好的帮助,我们建议您使用其中一种 templates.

可以联系社区管委会 或者SIG 核心人员,或者我的维护者:

如果我们在几个工作日内仍未回复你创建的issue,可以尝试以下方法:

🦉 Hoot! I am a [Mjölnir-Bot], a bot for cloudnativeto. My owner is stevensu1977.

_Originally posted by @mjolnir-bot in https://github.com/cloudnativeto

@tianzichenone
Copy link
Author

client-go中的indexInformer和sharedIndexInformer有什么区别?

@tianzichenone tianzichenone changed the title 【提问】提问模板 【提问】k8s indexinformer启动过程发送事件变更如何处理 Nov 2, 2021
@ciiiii
Copy link

ciiiii commented Feb 20, 2022

问题描述

背景 k8s 中的indexInformer在启动的过程中会去list&watch, 一个controller在其crash重启时,集群删除了一个资源如pod,那么在其启动的时候list就不会有这个pod,那么就会丢失这个Delete事件,进而没有办法回调Ondelete。这种情况k8s中是怎么处理的

给对应资源加一个需要这个controller处理删除的finalizer

@callmevincent
Copy link

callmevincent commented Feb 20, 2022 via email

@tianzichenone
Copy link
Author

问题描述

背景 k8s 中的indexInformer在启动的过程中会去list&watch, 一个controller在其crash重启时,集群删除了一个资源如pod,那么在其启动的时候list就不会有这个pod,那么就会丢失这个Delete事件,进而没有办法回调Ondelete。这种情况k8s中是怎么处理的

给对应资源加一个需要这个controller处理删除的finalizer

添加处理删除的finalizer是通用的方法么,我理解上面的场景应该是比较常见的

@ciiiii
Copy link

ciiiii commented Feb 21, 2022 via email

@nayihz
Copy link

nayihz commented Feb 22, 2022

可以启动一个单独的线程去resync 实际资源跟你的后端资源的不同

@tianzichenone
Copy link
Author

可以启动一个单独的线程去resync 实际资源跟你的后端资源的不同

单独起一个线程去resync,那就需要一个临时的存储来记录一下,否则没有办法去对比

@tianzichenone
Copy link
Author

是通用的

________________________________ From: tianzichen @.> Sent: Monday, February 21, 2022 7:24:38 PM To: cloudnativeto/sig-kubernetes @.> Cc: Go2SheeP @.>; Comment @.> Subject: Re: [cloudnativeto/sig-kubernetes] 【提问】k8s indexinformer启动过程发送事件变更如何处理 (Issue #82) 问题描述 背景 k8s 中的indexInformer在启动的过程中会去list&watch, 一个controller在其crash重启时,集群删除了一个资源如pod,那么在其启动的时候list就不会有这个pod,那么就会丢失这个Delete事件,进而没有办法回调Ondelete。这种情况k8s中是怎么处理的 给对应资源加一个需要这个controller处理删除的finalizer 添加处理删除的finalizer是通用的方法么,我理解上面的场景应该是比较常见的 ― Reply to this email directly, view it on GitHub<#82 (comment)>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AG3TM62AVJ2AEBMNGVZKBA3U4IOHNANCNFSM5HGEKMYA. You are receiving this because you commented.Message ID: @.***>

但是,如果我只是一个事件的收集器,比如类型kube-event这种,是不是就没有办法使用finalizer这种方式了

@ciiiii
Copy link

ciiiii commented Feb 28, 2022

是通用的

________________________________ From: tianzichen @.> Sent: Monday, February 21, 2022 7:24:38 PM To: cloudnativeto/sig-kubernetes _@**._> Cc: Go2SheeP _@.>; Comment @._> Subject: Re: [cloudnativeto/sig-kubernetes] 【提问】k8s indexinformer启动过程发送事件变更如何处理 (Issue #82) 问题描述 背景 k8s 中的indexInformer在启动的过程中会去list&watch, 一个controller在其crash重启时,集群删除了一个资源如pod,那么在其启动的时候list就不会有这个pod,那么就会丢失这个Delete事件,进而没有办法回调Ondelete。这种情况k8s中是怎么处理的 给对应资源加一个需要这个controller处理删除的finalizer 添加处理删除的finalizer是通用的方法么,我理解上面的场景应该是比较常见的 ― Reply to this email directly, view it on GitHub<#82 (comment)>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AG3TM62AVJ2AEBMNGVZKBA3U4IOHNANCNFSM5HGEKMYA. You are receiving this because you commented.Message ID: _@_.*>

但是,如果我只是一个事件的收集器,比如类型kube-event这种,是不是就没有办法使用finalizer这种方式了

事件一般会存在一个小时,这种场景不太容易发生吧。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants