自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (11)
  • 收藏
  • 关注

原创 k8s apiserver启动执行流程之aggregatorServer

本文主要分析kubernetes在启动kube-apiserver时,创建聚合服务的过程。总览中概括性标记了流程。本节会详细分析,主要有以下几点:构建apiextensionsapiserver.Config扩展配置 – 其实就是包装了通用apiserver配置和其他额外的配置...

2022-06-29 21:16:36 922 3

原创 k8s apiserver之启动执行流程总览二

kubernetes在启动kube-apiserver的执行流程

2022-06-17 07:00:00 660 1

原创 k8s apiserver之启动执行流程总览一

apiserver之启动执行流程总览启动执行流程总览apiserver之启动执行流程总览启动执行流程总览server.go启动执行流程总览本文主要分析kubernetes在启动kube-apiserver的执行流程,本文不作深入分析,后续会展开server.go函数 // 启动命令行的实现func NewAPIServerCommand() *cobra.Command {// 设置默认的apiserver启动选项s := options.NewServerRunOpti

2022-06-16 14:27:23 1032 1

原创 client-go之tools/leaderelection包源码分析

client-go之tools/leaderelection包源码分析tools/leaderelection包源码分析client-go之tools/leaderelection包源码分析tools/leaderelection包healthzadaptor.gometrics.goleaderelection.goresourcelock包tools/leaderelection包用于需要进行leader控制的controller等.healthzadaptor.go函数// 创建一个基本的

2022-03-02 18:17:02 534 2

原创 client-go之tools/events包源码分析

client-go之tools/events包源码分析tools/events包源码分析client-go之tools/events包源码分析tools/events包helper.gointerfaces.goevent_broadcaster.gotools/events包用于记录和报告的所有客户端事件的逻辑helper.go函数// 定义变量mapping(一个map保存了 三种core/v1/v1beta1 gv的)var mapping = map[schema.GroupVersi

2022-03-01 17:41:49 368 1

原创 client-go之tools/cache包源码分析

tools/cache包源码分析tools/cache包controller.godelta_fifo.goexpiration_cache.gofifo.goheap.goindex.golister.golistwatch.gomutation_cache.gomutation_detector.goreflector.goshared_informer.gostore.gothread_safe_store.goundelta_store.gotools/cache包k8s认证的工具类(目前只有关

2021-10-11 14:51:19 885 1

原创 client-go之tools/auth包源码分析

tools/auth包源码分析tools/auth包tools/auth包k8s认证的工具类(目前只有关于exec方式的工具类)函数// LoadFromFile 从文件路径解析一个 Info 对象.func LoadFromFile(path string) (*Info, error) { var info Info if _, err := os.Stat(path); os.IsNotExist(err) { return nil, err } data, err := iou

2021-08-26 14:43:17 210 1

原创 client-go之scale包源码分析

scale包源码分析scale包util.gointerface.goclient.goscale包获取实现了RESTMapper(通过discovery client操作apiserver,通过gvr获取gvr/gvk,或者获取RESTMapping)接口的结构体util.go接口// PreferredResourceMapper 确定要scale资源的首选版本type PreferredResourceMapper interface { // ResourceFor 获取部分资源并返回

2021-08-25 18:20:31 447 1

原创 client-go之restmapper包源码分析

client-go之restmapper包源码分析restmapper包源码分析client-go之restmapper包源码分析restmapper包discovery.goshortcut.gocategory_expansion.gorestmapper包获取实现了RESTMapper(对应一个gv下的resources)接口的结构体discovery.go结构体// APIGroupResources 是一个 API 组,具有版本到资源的映射。type APIGroupResource

2021-08-22 17:39:13 596 1

原创 client-go之rest包源码分析

rest包源码分析rest包client.goconfig.goexec.goplugin.gorequest.gotransport.gourl_utils.gourlbackoff.gowarnings.gowith_retry.gowatch包rest包主要是提供对外(就是自定义程序所引用的)相关的基础类/接口,client、config、exec、request等具体实现和构造的基础client.go接口.go// 接口用于与 Kubernetes REST api 进行交互的操作集。t

2021-08-05 17:26:22 774 1

原创 client-go之metadata包(下篇)源码分析

@TOCmetadata包用于获取gvr对应的metadata(gvr的TypeMeta和ObjectMeta)的informer/lister/clientmetadatalister包interface.go 定义了获取(从索引器(缓存)中get/list)obj的接口接口// Lister 获取资源和获取NamespaceLister。type Lister interface { // List 列出索引器(缓存)中的所有资源的MetaData。 List(selector la

2021-07-30 10:17:46 544 1

原创 client-go之metadata包(上篇)源码分析

@TOC阅读本文,可以参考分析dynamic文章,两篇类似,区别是操作对象侧重点不同metadata包用于获取gvr对应的metadata(gvr的TypeMeta和ObjectMeta)的informer/lister/clientinterface.go接口.go// ResourceInterface的工厂模式,方法Resource可以获取对应gvr的ResourceInterface接口type Interface interface { Resource(resource sche

2021-07-30 10:14:05 541 1

原创 client-go之listers包源码分析

listers包源码分析listers包admissionregistration包listers包从cache.Indexer中获取原生k8s的对象/列表admissionregistration包以admissionregistration包做分析,其他的类似,不在分析v1expansion_generated.go 用于扩展resource client接口// MutatingWebhookConfigurationListerExpansion 将自定义方法添加到Mutati

2021-07-30 10:10:53 226 1

原创 client-go之kubernetes包源码分析

client-go之kubernetes包源码分析kubernetes包源码分析client-go之kubernetes包源码分析kubernetes包clientset.goscheme包typed包kubernetes包生成原生k8s的对象的client,用于访问kubernetes API(create、update、patch等等)clientset.gok8s原生type的restclient的集合,用来统一管理和调配接口// Interface 定义了一个DiscoveryInte

2021-07-30 10:09:04 282

原创 client-go之informers包源码分析

client-go之informers包源码分析informers包用于生成各种gvk对应的informer(注意这里这是针对原生k8s的对象)generic.go注意: 这里的informer和informers包是有区别的,虽然具体的informer底层都是包装了SharedIndexInformer,但是另一个属性是不相同的。这里是gvr,而informers包中是gr接口// GenericInformer 是 SharedIndexInformer 的类型,它将根据类型定位并委托给其

2021-07-20 14:50:05 385 1

原创 client-go之dynamic包(下篇)源码分析

client-go之dynamic包(下篇)源码分析@TOCdynamic包用于动态生成informer/lister/client等dynamiclister包interface.go 定义了获取(从索引器(缓存)中get/list)obj的接口接口// Lister 获取资源和获取NamespaceLister。type Lister interface { // List 列出索引器(缓存)中的所有资源。 List(selector labels.Selector) (ret [

2021-07-19 17:51:20 447 1

原创 client-go之dynamic包(上篇)源码分析

@TOCdynamic包用于动态生成informer/lister/client等interface.go接口.go// ResourceInterface的工厂模式,方法Resource可以获取对应gvr的ResourceInterface接口type Interface interface { Resource(resource schema.GroupVersionResource) NamespaceableResourceInterface}// 操作对应obj的接口type

2021-07-19 13:36:30 538 1

原创 client-go之discovery包(下篇)源码分析

@TOCdiscovery包用于发现服务器支持的API 组、版本和资源的方法及服务端支持的swagger apicachedlegacy.go 主要用途是兼容老版本// NewMemCacheClient 已弃用。直接使用 memory.NewMemCacheClient 。func NewMemCacheClient(delegate discovery.DiscoveryInterface) discovery.CachedDiscoveryInterface { return memo

2021-07-16 17:33:42 321 1

原创 client-go之discovery包(上篇)源码分析

@TOCdiscovery包用于发现服务器支持的API 组、版本和资源的方法及服务端支持的swagger apidiscovery_client.godiscovery_client.go定义全局变量const ( // 如果动态获取resource失败,重试的次数 defaultRetries = 2 // protobuf mime 类型 mimePb = "application/[email protected]+prot

2021-07-16 15:11:04 460 3

原创 client-go之applyconfigurations包源码分析

applyconfigurations包总览applyconfigurations包admissionregistration包utils.goapplyconfigurations包用于构建服务端 Apply requests(类似于kubectl apply 但是kubectl的是客户端),通过源码来看,其实和kubernetes/api的各种类型的结构体相似(方法不同),不妨大胆猜测下,估计是想用户apply时的对象和k8s隔离,防腐层的效果。admissionregistration包

2021-07-16 10:17:09 702 3

原创 kubernetes之client-go总览

client-go总览[可参考][k8s-client-go-0.21.2]client-go总览client-go总览[可参考][k8s-client-go-0.21.2]client-go总览applyconfigurations包discovery包dynamic包 用于动态生成informer/lister/client等informer包kubernetes包listers包metadata包pkg包pkg包plugin包rest包restmapper包scale包third_party包too

2021-07-15 17:51:36 311 2

原创 controller-runtime之controllerManager启动流程

上篇分享了controller-runtime之controllerManager创建流程,本篇是controllerManager启动流程的流程图解,帮助大家更清晰的理解其执行过程。

2021-07-14 13:47:54 276 2

转载 南北流量和东西流量——它们是什么意思?

在Service Mesh微服务架构中,我们常常会听到东西流量和南北流量两个术语。南北流量(NORTH-SOUTH traffic)和东西流量(EAST-WEST traffic)是数据中心环境中的网络流量模式。下面我们通过一个例子来理解这两个术语。假设我们尝试通过浏览器访问某些Web应用。Web应用部署在位于某个数据中心的应用服务器中。在多层体系结构中,典型的数据中心不仅包含应用服务器,还包含其他服务器,如负载均衡器、数据库等,以及路由器和交换机等网络组件。假设应用服务器是负载均衡器的前端。当我们访

2021-07-07 14:42:54 3897

原创 controller-runtime之controllerManager创建流程

原图下载

2021-07-06 17:33:53 196 2

原创 informer机制在controller-runtime的执行流程

相信大家在学习k8s的informer机制时,会有很多疑惑。本文笔者使用controller-runtime带大家领略informer的设计魅力。

2021-07-03 11:39:14 284 2

原创 sigs.k8s.io controller-runtime系列之十二 health分析

简介之前介绍过sigs.k8s.io controller-runtime系列之十一 finalizer分析sigs.k8s.io controller-runtime-finalizer 。本文主要介绍pkg/health的源码分析。目录结构health.go函数// getExcludedChecks 提取要从查询参数中排除的健康检查名称。func getExcludedChecks(r *http.Request) sets.String { checks, found :=

2021-06-30 16:28:16 241 1

原创 sigs.k8s.io controller-runtime系列之十一 finalizer分析

简介之前介绍过sigs.k8s.io controller-runtime系列之十 sourceeventhandler分析sigs.k8s.io controller-runtime-sourceeventhandler 。本文主要介绍pkg/finalizer的源码分析。目录结构types.goRegisterer接口// Registerer持有Register方法,它将检查key是否已经注册,如果已存在,返回异常;如果未注册,它会将Finalizer添加到终结器map中作为提供的

2021-06-29 09:29:54 365

原创 sigs.k8s.io controller-runtime系列之十 sourceeventhandler分析

简介之前介绍过sigs.k8s.io controller-runtime系列之九 config分析sigs.k8s.io controller-runtime-config 。本文主要介绍pkg/source和pkg/event和pkg/handler的源码分析。主要为controllerManager中的属性提供默认配置目录结构source/source.goSource结构体// 源是事件的源(eh.g。对Kubernetes对象、Webhook回调等创建、更新、删除操作)//

2021-06-28 14:27:54 779 1

原创 sigs.k8s.io controller-runtime系列之九 config分析

简介之前介绍过sigs.k8s.io controller-runtime系列之八 cluster分析sigs.k8s.io controller-runtime-cluster 。本文主要介绍pkg/config的源码分析。主要为controllerManager中的属性提供默认配置目录结构config.goControllerManagerConfiguration结构体// 定义了解析config文件必须的方法并且为ctrl.Manager配置Optionstype Contro

2021-06-25 11:21:11 511 1

原创 sigs.k8s.io controller-runtime系列之八 cluster分析

简介之前介绍过sigs.k8s.io controller-runtime系列之七 certwatcher分析sigs.k8s.io controller-runtime-certwatcher 。本文主要介绍pkg/cluster的源码分析。目录结构cluster.goCluster结构体 提供了与集群交互的各种方法。type Cluster interface { // SetFields将设置对象已实现inject接口的对象上的任何依赖项,例如inject.Client。 S

2021-06-24 08:46:12 538

原创 sigs.k8s.io controller-runtime系列之七 certwatcher分析

简介之前介绍过sigs.k8s.io controller-runtime系列之六 webhook分析sigs.k8s.io controller-runtime-webhook 。本文主要介绍pkg/certwatcher的源码分析。目录结构certwatcher.goCertWatcher结构体 监视证书和密钥文件的更改。当任何一个文件更改时,它调用读取和解析这两个函数,并使用新的证书。type CertWatcher struct { sync.RWMutex

2021-06-23 08:52:29 209 1

原创 sigs.k8s.io controller-runtime系列之六 webhook分析

简介之前介绍过sigs.k8s.io controller-runtime系列之五 cache分析[sigs.k8s.io controller-runtime-cache] 。本文主要介绍pkg/webhook的源码分析。目录结构alias.go 为webhook常用到的obj定义别名server.goServer结构体// Server 是一个准入 webhook 服务器,可以为流量提供服务, 生成相关的 k8s 资源进行部署。type Server struct { //

2021-06-22 10:43:51 1018 2

原创 sigs.k8s.io controller-runtime系列之五 cache分析

简介之前介绍过sigs.k8s.io controller-runtime系列之四 client分析sigs.k8s.io controller-runtime-client 。本文主要介绍pkg/cache的源码分析。目录结构cache_suite_test.go 注册测试GVK 校验k8s环境 获取client config依赖ginkgo做集成测试,表示该文件夹内的测试例执行之前执行,BeforeSuite和AfterSuite,会在所有测试例执行之前和之后执行如果BeforeS

2021-06-03 16:35:47 1298

原创 sigs.k8s.io controller-runtime系列之四 client分析

简介之前介绍过sigs.k8s.io controller-runtime系列之三 controller分析sigs.k8s.io controller-runtime-controller 。本文主要介绍pkg/client的源码分析。目录结构interfaces.goPatch接口 是可以应用于Kubernetes对象的补丁type Patch interface { // Patch的类型(字符串形式 "application/json-patch+json"/"applic

2021-04-28 17:14:29 3924 5

原创 sigs.k8s.io controller-runtime系列之三 controller分析

简介之前介绍过sigs.k8s.io controller-runtime系列之二 manager分析sigs.k8s.io controller-runtime-manager 。本文主要介绍pkg/controller的源码分析。目录结构controller_suite_test.go 注册测试GVK 校验k8s环境 获取client config依赖ginkgo做集成测试,表示该文件夹内的测试例执行之前执行,BeforeSuite和AfterSuite,会在所有测试例执行之前和之后

2021-04-23 17:10:10 1569 1

原创 sigs.k8s.io controller-runtime系列之二 manager分析

简介之前介绍过sigs.k8s.io controller-runtime系列之一 builder分析sigs.k8s.io controller-runtime-builder 。本文主要介绍pkg/manager的源码分析。目录结构manager_suite_test.go 校验k8s环境 获取client config依赖ginkgo做集成测试,表示该文件夹内的测试例执行之前执行,BeforeSuite和AfterSuite,会在所有测试例执行之前和之后执行如果BeforeSu

2021-04-18 00:00:05 1200 1

原创 sigs.k8s.io controller-runtime系列之一 builder分析

简介之前介绍过controller-runtime总览sigs.k8s.io controller-runtime总览 。本文主要介绍pkg/builder的源码分析。目录结构builder_suite_test.go 校验k8s环境 获取client config依赖ginkgo做集成测试,表示该文件夹内的测试例执行之前执行,BeforeSuite和AfterSuite,会在所有测试例执行之前和之后执行如果BeforeSuite执行失败,则这个测试集都不会被执行control

2021-04-16 17:21:29 1366 2

原创 sigs.k8s.io controller-runtime总览

controller-runtime总览可参考examples 官方给出的例子hack 官方给出的可执行文件,代码检查,ci等pkg controller-runtime 的具体代码实现examplesbuiltins本示例为已存在的ReplicaSet资源实现自定义控制器和webhooksmain.go 例子的入口函数创建一个manager(pkg/manager)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Erz66K1-161847902

2021-04-15 17:32:12 2096 5

转载 Hot Redeploy:"schema change not implemented"

Hot Swap failedServer Debug: schema change not implemented; Server Debug: Operation not supported by VM原因:这是正常的jvm hotswap限制,因为它只允许修改方法体,不能有方法或属性的添加和删除。...

2019-03-14 16:05:14 4519

转载 JAVA IO 以及 NIO 理解

由于Netty,了解了一些异步IO的知识,JAVA里面NIO就是原来的IO的一个补充,本文主要记录下在JAVA中IO的底层实现原理,以及对Zerocopy技术介绍。IO,其实意味着:数据不停地搬入搬出缓冲区而已(使用了缓冲区)。比如,用户程序发起读操作,导致“ syscall read ”系统调用,就会把数据搬入到 一个buffer中;用户发起写操作,导致 “syscall write ”系统...

2018-09-14 08:55:25 108

webhook server创建启动流程

webhook server创建启动流程

2021-08-03

informer机制在controller-runtime的执行流程

informer机制在controller-runtime的执行流程

2021-07-14

controllerManager启动流程.jpg

controllerManager启动流程.jpg

2021-07-14

controllerManager创建流程.png

controllerManager创建流程.png

2021-07-14

idea vue.js插件

idea vue.js插件 亲测可用 

2018-12-05

05-16真题案例 分析 论文

05-16真题案例 分析 论文 ,自己也要考,刚看了一点感觉还行特意分享

2018-09-06

系统集成项目管理工程师官方指定教材 第二版

图书目录 第1章 信息化基础知识 第2章 信息系统服务管理 第3章 信息系统集成专业技术知识 第4章 项目管理一般知识 第5章 立项管理 第6章 项目整体管理 第7章 项目范围管理 第8章 项目进度管理 第9章 项目成本管理 第10章 项目质量管理 第11章 项目人力资源管理 第12章 项目沟通管理 第13章 项目合同管理 第14章 项目采购管理 第15章 信息(文档)和配置管理 第16章 变更管理 第17章 信息系统安全管理 第18章 项目风险管理 第19章 项目收尾管理 第20章 知识产权管理 第21章 法律法规和标准规范 第22章 职业道德规范 第23章 案例分析

2018-09-06

jotm jar包

jotm jar包 自测可用 分 享 供 码 友下 载 使 用

2017-12-20

jave-1.0.2 语视频转格式jar包

jave-1.0.2语视频转格式jar包 相信会帮助到你 自测可用

2017-12-20

jd java反编译工具

快速读取class文件,可以关联整个项目的读取、方便快捷

2017-11-15

oracle驱动jar包

在使用ireport时需要的jar包 亲测可用 希望能帮助到需要的人

2017-11-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除