概述ControllerController 的初始化Controller 的启动processLoopHandleDeltas()SharedIndexInformersharedIndexerInformersharedProcessorprocessorListenersharedProcessor.addListener()sharedProcessor.distribute()sharedProcessor.run()sharedIndexInformer.Run()SharedInf…
概述Queue 接口DeltaFIFO元素增删改 - queueActionLocked()Pop()Replace() 概述 源码版本信息 Project: kubernetes Branch: master Last commit id: d25d741c Date: 2021-09-26 我们在<Kubernetes client-go 源码分析 - 开篇>里提到了自定义控制器涉及到的 client-go 组件整体工作流程,大致如下图: DeltaFIFO 是上面的一个重要组件,今天我们…
概述入口 - Reflector.Run()核心 - Reflector.ListAndWatch()Reflector.watchHandler()NewReflector()小结 概述 源码版本:kubernetes master 分支 commit-fe62fc(2021年10月14日) 回顾一下 Reflector 在整个自定义控制器工作流中的位置: 在<Kubernetes client-go 源码分析 - 开篇>中我们提到过 Reflector 的任务就是向 apiserver w…
概述Queue接口和结构体setAdd()Get()Done()DelayingQueue接口和结构体waitForNewDelayingQueuewaitingLoop()AddAfter()RateLimitingQueue接口和结构体RateLimiterBucketRateLimiterItemExponentialFailureRateLimiterItemFastSlowRateLimiterMaxOfRateLimiterWithMaxWaitRateLimiter限速队列的实现…
概述startDeploymentController 入口逻辑DeploymentController 对象DeploymentController 类型定义DeploymentController 初始化ResourceEventHandlerDeployment 变更事件ReplicaSet 变更事件DeploymentController 启动Run()syncDeployment小结 概述 源码版本:kubernetes-v1.22.3 / commit-id: c92036 Depl…
文章首发于微信公众号<程序员果果> 地址:https://mp.weixin.qq.com/s/47TUd96NMz67_PCDyvyInQ 简介 Eureka是一种基于REST(Representational State Transfer)的服务,主要用于AWS云,用于定位服务,以实现中间层服务器的负载平衡和故障转移.我们将此服务称为Eureka Server.Eureka还附带了一个基于Java的客户端组件Eureka Client,它使与服务的交互变得更加容易.客户端还有一个内置的负载…
落雨 cas 单点登录 希望能给以后来研究cas的兄弟留下一点思路,也算是研究了两天的成果,外国人的代码写的很晦涩,翻译下来也没有时间继续跟进,所以有错误的还请大家跟帖和我讨论,qq 394263788 edu.yale.its.tp.cas.client.filter源码分析: /*  Copyright (c) 2000-2004 Yale University. All rights reserved. *  See full notice at end. */ package edu.y…
k8s client-go源码分析 informer源码分析(3)-Reflector源码分析 1.Reflector概述 Reflector从kube-apiserver中list&watch资源对象,然后将对象的变化包装成Delta并将其丢到DeltaFIFO中.简单点来说,就是将Etcd 的对象及其变化反射到DeltaFIFO中. Reflector首先通过List操作获取全量的资源对象数据,调用DeltaFIFO的Replace方法全量插入DeltaFIFO,然后后续通过Watch操作根…
介绍 client-go 是一种能够与 Kubernetes 集群通信的客户端,通过它可以对 Kubernetes 集群中各资源类型进行 CRUD 操作,它有三大 client 类,分别为:Clientset.DynamicClient.RESTClient.通过它,我们可以很方便的对 Kubernetes 集群 API 进行自定义开发,来满足个性化需求. client-go 安装 client-go 安装很简单,前提是本机已经安装并配置好了 Go 环境,安装之前,我们需要先查看下其版本针对 k…
继续前一篇的内容.前一篇内容为: Spark中Client源码分析(一)http://www.cnblogs.com/yourarebest/p/5313006.html DriverClient中的代码比较简单,它只有一个main函数,同时,和AppClient一样,它也有一个ClientEndpoint,只是两者的用途不一样. 1.Client Client中唯一的main方法如下: def main(args: Array[String]) { if (!sys.props.contain…