图解kubernetes资源扩展机制实现(下)

本文详细探讨了kubernetes中资源扩展的关键组件PluginManager和PluginHandler的工作原理。PluginManager包括核心数据结构、初始化、启动过程、控制器注册以及对CSI和普通设备的处理。PluginHandler则聚焦于Endpoint、Manager和Checkpoint的机制,阐述了资源服务的注册、通信以及资源状态的持久化。文章揭示了k8s如何感知、注册和上报资源,但也指出其在资源描述和分配上的局限性。
摘要由CSDN通过智能技术生成

昨天我们介绍了k8s中资源插件机制的核心关键组件,今天我们继续来看下各个组件是如何进行通信的,以及k8s中针对事件处理背后的关键设计

1.PluginManager

PluginManager是一个上层组件,其内部包含了上篇文章中的关键组件,并且协调其内部数据流,而且还提供针对不同插件的具体的控制器image.png

1.1 核心数据结构

核心结构里面其实就是按照数据流来进行设计的,首先需要一个感知插件desiredStateOfWorldPopulator用于感知后端服务的创建或者删除,然后将感知到的事件加入到desiredStateOfWorld期望状态缓存,由reconciler负责期进行底层的注册和下线,并且将结果存储到actualStateOfWorld实际状态缓存

type pluginManager struct {
    // 插件感知
    desiredStateOfWorldPopulator *pluginwatcher.Watcher

    // 协调器插件
    reconciler reconciler.Reconciler

    // 实际状态缓存
    actualStateOfWorld cache.ActualStateOfWorld
    // 期望状态缓存
    desiredStateOfWorld cache.DesiredStateOfWorld
}

1.2 初始化

初始化中会将dsw和asw都交给reconciler用于进行事件的感知和更新对应的缓存

func NewPluginManager(
    sockDir string,
    recorde
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值