- 博客(20)
- 收藏
- 关注
原创 gang scheduler在kube-batch中的实现
目录一、名词解释二、流程图gang scheduler介绍:一个kube-batch作业(kube-batch job)可能有多个pods, 这些pods要不全部执行,要不一个都不执行。一、名词解释 k8s job:一些pod集合 kube-batch task: pod,一个kube-batch task就是一个pod kube-batch podGro...
2020-04-05 20:59:00 1157
原创 kube-batch源码梳理
一、Cache“缓存与封装”,主要两个功能: 调用 K8s 的 sdk,watch集群中节点、容器的状态变化,将信息同步到自己的数据结构中。 封装了 API server 的接口。kube-batch 中,只有 cache 模块和 API Server 交互,其他模块只需要调用 Cache 模块接口即可。比如 Cache.Bind 接口,会调用 API Server...
2020-04-05 17:17:09 1483
原创 kubelet源码分析(一)——kubelet启动流程及pod状态变化感知和消费流程
目录1、kubelet启动流程1.1cmd/kubelet/app/server.go Run方法1.2cmd/kubelet/app/server.go run方法1.3cmd/kubelet/app/server.go RunKubelet方法1.4cmd/kubelet/app/server.go CreateAndInitKubelet方法1.5c...
2020-03-15 21:10:39 932
原创 kubernetes kubebuilder实现crd(二)
本篇主要介绍如何在crd中添加字段信息1、看下config/samples下面的yaml文件:kubectl get guestbooks.webapp.my.domain -o yamlspec: # Add fields here foo: bar这里参数里只有foo:bar2、我们来加个虚拟CPU,内存信息:直接api/v1/guestbook_t...
2020-02-16 16:45:59 472
原创 kubernetes kubebuilder实现crd初探
目录1、crd介绍2、使用kubebuilder开发crd2.1 准备环境2.2 创建一个项目2.3创建api2.4、编译第一步:修改DockerFile,记得关掉go mod第二步:修改Makefile第三步:构建镜像2.5 安装CRD第一步:修改Makefile第二步:执行命令2.6 启动controller第一步:修改Makef...
2020-02-12 22:58:35 1514
原创 kube-controller-manager inform机制学习
介绍controller中的传感器主要由Reflector, Informer, Indexer组成Reflector通过List&Watch kube-apiserver来获取k8s资源数据,获取到资源数据后,会在Delta队列放入一个包括资源对象信息本身以及资源对象事件类型的Delta记录Informer不断从Delta队列中弹出Delta记录,一方面把事件交给事件回调函数,另...
2020-01-12 21:28:58 443
原创 kubernetes daemonSet源码学习
kubernetes daemonSet源码学习一、daemonSet controller对象创建1、给Informer注册EventHandler2、声明核心处理函数二、daemonSet controller启动1、run函数2、failedPodsBackoff *flowcontrol.Backoff三、DaemonSet的同步1、syncDaemonSet函数2、manage函数3、c...
2020-01-05 21:57:11 542
原创 Go 基本语法(方便查询,不断完善中。。。)
一、tips1、main函数只有在main包中才可以跑起来2、package名字是随便起的,不一定非要有个实体的文件夹3、一个较为复杂的傻瓜for循环 :)for i, j := 0, len(stringValue)-1; i <= j; i, j = i+1, j-1 { if stringValue[i] != stringValue[j] { re...
2019-09-08 01:48:07 264
原创 idea创建go项目
idea创建go项目go编程第一步详细步骤如下:首先保证idea plugin中有go插件,没有自己安装一下;新建go项目这里选择的是go的安装路径要在gopath的src目录下写个test程序,测试可以跑起来新建一个model包,里面定义Student ,在main中也是可见的...
2019-09-08 00:24:20 2590 1
原创 二分查找练习
目录一、原生二分查找及其变种二、变种2.1.总结2.1.1.模板2.1.2.首先判断出是返回left,还是返回right2.1.3.判断比较符号2.2.题 2.2.1.查找第一个相等的元素(结果是2)2.2.2.查找最后一个相等的元素(结果是3)2.2.3.查找最后一个小于key的元素 (结果是1)2.2.4.查找第一个大于key的元素(结果是4) ...
2019-02-24 21:15:28 585
原创 Netty源码分析——NioEventLoopGroup & NioEventLoop
目录 1、NioEventLoopGroup1.1 类图1.2 初始化1.创建线程执行器2.创建EventLoop,并存储到EventExecutor类型的数组中3.创建线程选择器2、NioEventLoop2.1 类图2.2 selector2.3 run1.轮询io事件2.处理轮询到的key3.执行任务队列中的task1、NioEve...
2019-01-06 20:56:59 650 1
原创 Java IO模型与Netty线程模型
目录 一、概念介绍1、同步与异步2、阻塞与非阻塞3、同步阻塞io4、同步非阻塞io5、IO多路复用6、异步IO二、BIO(同步阻塞IO)三、伪异步IO四、NIO(同步阻塞IO)五、Netty线程模型1、Reactor单线程模型2、Reactor多线程模型3、主从Reactor多线程模型4、Netty线程模型实现一、概念介绍...
2018-12-10 08:55:34 925 1
原创 Netty框架中的设计模式
1、facade模式(外观模式)JDK的SocketChannel和ServerSocketChannel没有统一的Channel接口供业务开发者使用,对于用户而言,没有统一的操作视图,使用起来不方便。而Netty重新定义了Channel接口,采用facade模式进行封装,将网络io操作,网络io相关联的其他操作封装起来,统一对外提供。参考:https://www.cnblogs.com/...
2018-12-10 00:01:13 710
原创 java线程池
目录 1、ctl2、状态转换3、几个重要的参数及注意事项<1>corePoolSize<2>maximumPoolSize<3>keepAliveTime<4>workQueue(1) “直接执行” (常用的队列是 SynchronousQueue (同步队列).(2) 使用无界队列 (使用 Integer.M...
2018-12-09 23:25:41 141
原创 Netty实战练习——tcp拆包和粘包
目录一、发现问题二、自定义协议三、编解码链条四、运行结果源码地址:一、发现问题继续上篇帖子的内容,https://blog.csdn.net/weixin_43599368/article/details/84206351利用java原生序列化方式来编码解码,其余代码如下:RpcClient:package rpcserver.client;impor...
2018-11-25 23:44:43 437
原创 java序列化与反序列化
1、什么是序列化?序列化是将对象转换成字节数组的过程,反序列化是将字节数组转换成对象的过程。2、为啥要序列化?简单来说,因为网络传输的都是二进制的字节流,所以如果一个对象需要在网络传输,就需要序列化。3、java如何做序列化?两步:<1>实现序列化接口:Java.lang.Serializable 接口(这是一个标志接口,没有任何抽象方法),Java 中大多数类...
2018-11-25 17:29:13 157
原创 Netty实战练习——自定义Encoder和Decoder
目录实现encoder和decoder的方法一、利用netty1、实现messageToByte,使用java原生的序列化方式2、利用netty支持的现有序列化框架3、自定义序列化协议二、在handler的read和write方法中直接实现tcp拆包粘包见下篇需求:1、客户端向服务端发送自定义类InputParam:public class InputPa...
2018-11-18 23:05:22 2266
原创 Netty源码分析——ByteBuf
目录1、ByteBuffer介绍2、ByteBuffer缺点3、ByteBuf介绍4、ByteBuf常用API5、ByteBuf转换成标准的ByteBuffer6、ByteBuf源码分析7、最简单的将接收到的消息打印出来Netty 里面数据读写是以 ByteBuf 为单位进行交互的,ByteBuf是Byte数组的缓冲区,像java里的ByteBuffer1、By...
2018-11-17 15:06:15 553
原创 Netty实战练习——聊天室
目录 用netty实现一个简单的“聊天室”环境要求:项目结构:代码详情:1、ChatServerHandler.javaSimpleChannelInboundHandler:ChannelGroup:2、ChatServer.javaDelimiterBasedFrameDecoder:3、ChatClientHandler.java4、ChatC...
2018-11-11 21:08:54 351
原创 Netty实战练习——傻瓜服务器
目录 用netty实现一个简单的“傻瓜服务器”环境要求:项目结构:代码详情:1、FoolServerHandler.java2、FoolServer.java运行效果:源码地址:用netty实现一个简单的“傻瓜服务器”将接收到的数据打印在控制台上环境要求:JDK 1.8 Maven 3.3.3 Netty 4.1项目结构:代码详情:...
2018-11-11 20:33:23 465
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人