![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
k8s源码
文章平均质量分 75
weixin_45396500
这个作者很懒,什么都没留下…
展开
-
[k8s源码]9.workqueue
client-go 是一个库,提供了与 Kubernetes API 服务器交互的基础设施。它提供了诸如 Informer、Lister、ClientSet 等工具,用于监听、缓存和操作 Kubernetes 资源。而自定义控制器则利用这些工具来实现特定的业务逻辑和自动化任务。业务逻辑实现:client-go 不包含特定的业务逻辑。自定义控制器允许实现特定于您的应用程序或需求的逻辑。扩展 Kubernetes:通过自定义控制器,可以扩展 Kubernetes 的功能,处理自定义资源或实现特定的自动化任务。原创 2024-07-24 18:19:45 · 1118 阅读 · 0 评论 -
[k8s源码]8.deltaFIFO
DeltaFIFO: 这是一个特殊类型的队列,它结合了FIFO(先进先出)队列的特性和增量(Delta)处理的能力。这种设计提供了处理的灵活性和优化的机会,允许控制器根据实际需求选择最有效的处理策略。Resync机制会将Indexer本地存储中的资源对象同步到DeltaFIFO中,并将这些资源对象设置为Sync的操作类型。Resync函数在Reflector中定时执行,它的执行周期由NewReflector函数传入的resyncPeriod参数设定。获取资源对象(如 Pod)的变化。原创 2024-07-24 14:32:26 · 638 阅读 · 0 评论 -
[k8s源码]6.reflector
而 Informer 是一个更高级别的抽象,它内部使用了 Reflector,但提供了更全面的功能。然后下面是测试部分,首先为fw赋值为watcher,一开始为nil,而在上面r=NewReflector初始化的时候,就已经自动调用了watchFunc,创建了一个watcher。sendingRV随机生成一个资源的版本,随着从ids拿出来的值,作为pod的属性用来创建pod,在测试中,这里的fw是闭包里面创建的watcher,并不和外面的fw冲突,如果不理解,这里的fw也可以改为别的名字。原创 2024-07-22 21:09:53 · 734 阅读 · 0 评论 -
[k8s源码]5.自己写一个informer控制器
Indexer 实际上存储的是完整的对象(如 Pod、Service 等),允许通过多种方式(如名字、命名空间等)快速检索对象。Queue 存储的是对象的键(通常是 "namespace/name" 格式的字符串)。随后设计一个run函数,从而开始从官方的informer拿取数据,但是我们自己设计的informer会有多个worker来处理从队列拿到的任务。k8s的informer控制器有一个informer,有一个indexer,还需要一个队列来存储从kubernetes API获取的信息。原创 2024-07-22 13:56:27 · 482 阅读 · 0 评论 -
[k8s源码]3.discover client
【代码】[k8s源码]3.discover client。原创 2024-07-14 18:42:54 · 94 阅读 · 0 评论 -
[k8s源码]2.CURD deployment
在 Go 语言中,context.TODO() 是 context 包中的一个函数调用,它返回一个空的 Context 对象。Context 在 Go 中用于控制并发时的取消操作、超时控制、截止时间等,可以有效地管理并传递请求范围的值。context.TODO() 表示一个“空”的 Context,通常用作临时占位符或者当你尚未确定使用哪种具体的 Context 类型时的默认选择。retry.RetryOnConflict 函数是一个用于处理在更新资源时可能遇到的冲突的函数。通过指针可以实现这一点。原创 2024-07-14 13:28:55 · 750 阅读 · 0 评论 -
[k8s源码]1.client-go集群外部署
client-go是由k8s发布且维护的专门用于开发者和kubernetes交互的客户端库。它支持对k8s资源的CRUD操作(create、read、update、delete),事件监听和处理,访问kubernetes集群的上下文和配置。client go是独立于kubernetes集群之外,但是又和集群交互的客户端机器。在这台机器上安装go环境以及和kubernetes建立连接。原创 2024-07-11 11:55:22 · 1074 阅读 · 0 评论