sig-kubernetes icon indicating copy to clipboard operation
sig-kubernetes copied to clipboard

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

Open tianzichenone opened this issue 3 years ago • 10 comments

问题描述

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

tianzichenone avatar Nov 02 '21 10:11 tianzichenone

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

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

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

  • @rootsongjc , @stevensu1977

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

:owl: 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

mjolnir-bot avatar Nov 02 '21 10:11 mjolnir-bot

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

tianzichenone avatar Nov 02 '21 10:11 tianzichenone

问题描述

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

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

ciiiii avatar Feb 20 '22 16:02 ciiiii

这是来自QQ邮箱的假期自动回复邮件。   您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。

callmevincent avatar Feb 20 '22 16:02 callmevincent

问题描述

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

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

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

tianzichenone avatar Feb 21 '22 11:02 tianzichenone

是通用的


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 GitHubhttps://github.com/cloudnativeto/sig-kubernetes/issues/82#issuecomment-1046773822, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AG3TM62AVJ2AEBMNGVZKBA3U4IOHNANCNFSM5HGEKMYA. You are receiving this because you commented.Message ID: @.***>

ciiiii avatar Feb 21 '22 11:02 ciiiii

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

nayihz avatar Feb 22 '22 01:02 nayihz

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

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

tianzichenone avatar Feb 24 '22 07:02 tianzichenone

是通用的 ________________________________ 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这种方式了

tianzichenone avatar Feb 24 '22 07:02 tianzichenone

是通用的 ________________________________ 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 avatar Feb 28 '22 01:02 ciiiii