首页 > 其他分享 >k8s informer resync机制

k8s informer resync机制

时间:2024-04-04 16:33:06浏览次数:14  
标签:DeltaFIFO informerFactory indexer 失败 resync informer k8s

informerFactory创建informer

informer一般由informerFactory创建(支持直接创建informer,一般不这么做),informerFactory支持创建多种资源类型的informer,同一个informerFactory中同一种资源类型只创建一个informer。

DeltaFIFO

queue里面保存了KeyOf函数计算得到的存储资源对象的key。
items通过map存储,同一个资源对象的操作放在同一个切片中。

resync机制

Indexer本地存储中的资源对象同步到DeltaFIFO中,操作类型是Sync,触发 onUpdate回调。
在处理SharedInformer事件时,可能存在处理失败的情况,定时(参数是ResyncDuration)的resync让处理失败的事件有了重新处理的机会。如果DeltaFIFO 队列中该资源对象有了event,那么不入队。
add事件回调失败 -> indexer有记录 -> resync -> onUpdate
update事件回调失败 -> indexer有记录 -> resync -> onUpdate
delete事件回调失败 -> indexer没有记录 -> 不会resync
但是,业务上处理失败,通常会放入队列重试,不需要走resync流程。
例如,kube-ovn把ResyncDuration值设为0,表示不使用resync。

标签:DeltaFIFO,informerFactory,indexer,失败,resync,informer,k8s
From: https://www.cnblogs.com/WJQ2017/p/18114301

相关文章

  • k8s PV和PVC以及StorageClass
    本地盘和云磁盘区别本地盘不支持跨物理机迁移,云磁盘支持跨物理机迁移。本地目录生命周期emptyDir、downwardAPI、configMap、secret:kubelet创建本地目录,该目录会随着Pod的消亡而删除。hostPath:本地目录一直存在。PVC、PV和StorageClass关系PVC是持久卷定义,PV是持久卷即磁盘,St......
  • 备忘记录-20240404.构建服务的k8s资源清单
    导读记录一次搭建服务的成果框架graphTBC(Client)-->ig(ingress)ig-->np((nginx-php\nservice))ig-->tc((tomcat\nservice))np-->ng1(nginx)np-->ng2(nginx)ng2-..->ps((php\nservice))ng1-..->psps-->p1(PHP)ps-->p2(PHP)ps......
  • 十七、k8s-helm-初探
    一、为什么要用helm1.1 常规的部署时通过多个yaml实现的由于k8s缺少对发布的应用版本管理和控制,使得部署的应用维护和更新等面临诸多挑战,主要体现在以下几方面:1、如何将这些服务作为一个整体管理2、这些资源文件如何高效复用3、不支持应用级别的版本管理二、helm介绍......
  • Kubernetes(k8s):如何进行 Kubernetes 集群健康检查?
    Kubernetes(k8s):如何进行Kubernetes集群健康检查?)一、节点健康检查1、使用kubectl查看节点状态2、查看节点详细信息3、检查节点资源使用情况2、Pod健康检查2.1、使用kubectl查看Pod状态2.2、查看特定Pod的详细信息,包括事件和条件3、服务健康检查3.1、使用ku......
  • ( —基础— ) k8s----介绍(1),2024年这些高频面试知识点最后再发一次
    kubectldashboard部署工具:使用批量部署工具如(ansible/saltstack)、手动二进制、apt-get/yum等方式安装,以守护进程的方式启动在宿主机上,类似于是Nginx一样使用service脚本启动。master,node作用Master:是集群的网关和中枢枢纽,主要作用:暴露API接口,跟踪其他服务器......
  • Kubernetes(k8s):部署、使用 metrics-server
    Kubernetes(k8s):部署、使用metrics-server一、metrics-server简介二、部署metrics-server2.1、下载MetricsServer部署文件2.2、修改metrics-server.yaml文件2.3、部署MetricsServer2.4、检查MetricsServer三、使用MetricsServer3.1、查看节点使用情况3.2、......
  • 基础知识-K8s(docker jenkins git)部分
    (0402,更新到Git)资料来源roadmap.sh一小时学会Git|GeekHourDocker部分Docker(容器)到底是什么我的例子预制菜的做法。为了能让使用者都能同一种食材和同一种烹饪方法,我特意在中央厨房,将一种菜式里的食材处理到半熟或者全熟的状态,然后用真空的包装包好,之后在仓库里存放。使......
  • k8s + springcloud 微服务开发调试工具kt Connect的使用
    概览KtConnect(全称KubernetesToolkitConnect)是一款基于Kubernetes环境用于提高本地测试联调效率的小工具。通过这个工具,可以不在本地启动所有服务,只需启动当前开发的服务即可,其它服务使用的是部署在k8s集群的实例,如下图:Reference官方文档:https://github.com/alibaba/......
  • k8s集群部署
    集群规划软件版本备注操作系统CentOSLinuxrelease7.9.2009(Core)kubernetesv1.29.2dockerDockerversion25.0.3,build4debf41calicov3.27.2角色Ip备注k8s-master-01192.168.11.121k8s-node-01192.168.11.122k8s-node-......
  • K8S 安全监控-falco 二进制部署方式
    基本了解:Falco是一个Linux安全工具,它使用系统调用来保护和监控系统。Falco最初由Sysdig开发,后来加入CNCF孵化器,成为首个加入CNCF的运行时安全项目。Falco提供了一组默认规则,可以监控内核态的异常行为,例如:对于系统目录/etc,/usr/bin,/usr/sbin的读写行为。文件所有权、访问权......