- 博客(54)
- 资源 (24)
- 收藏
- 关注
原创 kubelet - container manager
containerManager 负责 node 节点上运行的容器的配置信息,如cgroup、cpu、device;pod的创建流程参考:http://www.tianfeiyu.com/?p=2825一构成1.QOSContainerManager维护pod对应的Qos,用于调度、驱逐、设置各资源的cgroup等模块2.cgroupManager根据pod的Q...
2020-03-17 17:19:41
2167
原创 informer
list-watch机制list-watch有两部分组成,分别是list和watch。list非常好理解,就是调用资源的list API罗列资源,基于HTTP短链接实现;watch则是调用资源的watch API监听资源变更事件,基于HTTP 长链接实现Watch API和apiserver保持一个长链接,接收资源的状态变更事件并做相应处理。如果仅调用watch API,若某个时间点连接...
2020-01-07 16:05:32
5158
转载 Metrics-server
概述从 v1.8 开始,资源使用情况的监控可以通过 Metrics API的形式获取,具体的组件为Metrics Server,用来替换之前的heapster,heapster从1.11开始逐渐被废弃。Metrics-Server是集群核心监控数据的聚合器,从 Kubernetes1.8 开始,它作为一个 Deployment对象默认部署在由kube-up.sh脚本创建的集群中,如果是其他...
2019-07-17 17:40:38
9209
原创 CCM
https://github.com/kubernetes/community/blob/master/contributors/design-proposals/cloud-provider/cloud-provider-refactoring.md当前 Cloud Provider 工作原理apiserver,kubelet,controller-manager 都配置 cloud p...
2019-07-12 17:05:48
1461
原创 算法笔记
排序算法可以说是一项基本功,解决实际问题中经常遇到,针对实际数据的特点选择合适的排序算法可以使程序获得更高的效率,有时候排序的稳定性还是实际问题中必须考虑的,这篇博客对常见的排序算法进行整理,包括:插入排序、选择排序、冒泡排序、快速排序、堆排序、归并排序、希尔排序、二叉树排序、计数排序、桶排序、基数排序。 代码都经过了CodeBlocks的调试,但是很可能有没注意到的B...
2018-11-20 16:28:29
234
转载 算法集合
第1题把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \4 8 12 16 转换成双向链表4=6=8=10=12=14=16。 首先我们定义的二元查找树节点的数据结构如下: struct BSTreeNo...
2018-10-31 14:15:23
1779
转载 lvs工作原理
负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。一、负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用户的请...
2018-09-30 11:36:14
1238
翻译 tcp协议
TCP的报头:1. 源端口号:表示发送端端口号,字段长为16位。2. 目标端口号:表示接收端口号,字段长为16位。3. 序列号:表示发送数据的位置,字段长为32位。每发送一次数据,就累加一次该数据字节数的大小。注意:序列号不会从0或1开始,而是在建立连接时由计算机生成的一个随机数作为其初始值,通过SYN包发送给接收端主机。然后再将每转发过去的字节数累加到初始值上表示数据的位置。4. ...
2018-09-07 15:45:56
405
原创 docker笔记
1.Docker镜像的内容主要包含两个部分:第一,镜像层文件内容;第二,镜像json文件。2.Docker守护进程会在Docker镜像的最上层之上,再添加一个可读写层,容器所有的写操作都会作用到这一层中。而如果Docker容器需要写底层Docker镜像中的文件,那么此时就会涉及一个叫Copy-on-Write的机制,即aufs等联合文件系统保证:首先将此文件从Docker镜像层中拷贝至最上层的可读...
2018-04-16 15:25:16
961
原创 Kubernetes GarbageCollector
GarbageCollector controller1.--enable-garbage-collector参数决定是否启动GCcontroller2.通过disvoveryclient获取所有可以删除的资源3.获取默认需要被忽略不删除的资源4.创建GarbageCollector和GraphBuilder对象5.调用syncMonitors为每个可以删除并不能忽略的
2017-10-24 15:27:35
848
原创 kubelet VolumeManager 流程
1.govm.desiredStateOfWorldPopulator.Run(sourcesReady,stopCh)将podmanger中pod挂载的volume信息同步到desiredStateOfWorld中2.govm.reconciler.Run(stopCh)执行volume的detach/attach/mount/unmount操作,同步已经挂载好的volume信息到desir
2017-10-24 15:25:15
1438
原创 Attach detach controller manager 流程
一:初始化1.adc调用InitPlugins()初始化volumeplugins。1.1初始化dynamicplugins(Currentlyonly Flexvolume plugins are dynamicallydiscoverable.Flexvolume允许用户编写自己的驱动程序,并在Kubernetes中添加对其Volume的支持)1.2初始化kubernetes已
2017-10-24 15:24:39
1389
原创 kubernetes笔记
2.Service仅支持UDP和TCP协议,所以像ping的ICMP协议是用不了的,所以无法ping通Service IP。3.Foreground 级联删除在 foreground 级联删除 模式下,根对象首先进入 “删除中” 状态。在 “删除中” 状态会有如下的情况: 对象仍然可以通过 REST API 可见 会设置对象的 deletionTimestamp 字...
2017-10-24 15:17:14
761
翻译 heat SoftwareConfig
要通过Heat来部署应用,至少三个资源会被使用到:OS::Heat::SoftwareConfig 用于存储应用部署的执行脚本,每一个脚本都应该用一个SoftwareConfig来存储。其中group表示这是一个script脚本,将会被script模块执行。此外还支持ansible、chef、puppet、salt等脚本。config属性存放要执行的脚本内容,通常我们会通过get_file
2017-07-05 14:09:57
3016
转载 RBAC vs ABAC
目前 Kubernetes 中有一系列的鉴权机制。https://kubernetes.io/docs/admin/authorization/鉴权的作用是,决定一个用户是否有权使用 Kubernetes API 做某些事情。它除了会影响 kubectl 等组件之外,还会对一些运行在集群内部并对集群进行操作的软件产生作用,例如使用了 Kubernetes 插件的 Jenkins,或者是利用
2017-06-06 19:57:29
10405
转载 rc与deployment的区别
rolling update,可以使得服务近乎无缝地平滑升级,即在不停止对外服务的前提下完成应用的更新。replication controller与deployment的区别replication controllerReplication Controller为Kubernetes的一个核心内容,应用托管到Kubernetes之后,需要保证应用能够持续的运行,Replication
2017-06-05 15:53:06
5222
原创 kubelet源码分析
kubelet的启动1.将kubeConfig、管理Pod和docker的参数、定期同步Pod和docker信息的参数导入到cfg中2.根据cfg的属性创建多种Restclient对象访问kube-apiserver,如EventClient\discovery\kubeclient3.根据cfg的属性创建cloudprovider,获取云供应商Cloud的资源。4.根据cfg的属
2017-06-03 15:33:16
947
原创 Haproxy解析
简介HAProxy是一款提供高可用性、负载均衡以及基于TCP和HTTP应用的代理软件,HAProxy是完全免费的、借助HAProxy可以快速并且可靠的提供基于TCP和HTTP应用的代理解决方案。HAProxy适用于那些负载较大的web站点,这些站点通常又需要会话保持或七层处理。 HAProxy可以支持数以万计的并发连接,并且HAProxy的运行模式使得它可以很简单安全的整合进架构中,同时可以保
2015-08-16 21:56:25
2798
原创 cpu使用率的计算
http://blog.youkuaiyun.com/tenfyguo/article/details/7476306proc文件系统/proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为内核与进程提供通信的接口。用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取/proc目录中的
2014-12-25 17:14:36
9054
原创 ceilometer的map_reduce机制
Map/Reduce是一个聚合工具。比如SQL和mongodb的group(by),countdistinct等都是聚合命令。Map/Reduce其实是一个分布式计算的思想的实现的软件框架。就是你遵循这个框架的规范,编写上层代码可以实现你的分布式计算,并能把所有计算结果聚合到一起得到最终一个简单的结果。基于Map/reduce写出来的应用能运行在上千台服务器组成的集群上,并以一种可靠的容错
2014-12-11 11:00:05
1068
转载 OpenStack Eventlet
Eventlet库在OpenStack服务中上镜率很高,尤其是在服务的多线程和WSGI Server并发处理请求的情况下,深入了解eventlet库是很必要的。Eventlet库是由second life开源的高性能网络库,从Eventlet的源码可以知道,其主要依赖于两个关键的库: 1.greenlet 2.select.epoll (或者epoll等类似的库)
2014-11-13 22:34:42
1218
原创 AMQP之RabbitMq
AMQP协议是一个高级抽象层消息通信协议,RabbitMQ是AMQP协议的实现。它主要包括以下组件:1. Server(broker): 接受客户端连接,实现AMQP消息队列和路由功能的进程。2. Virtual Host:其实是一个虚拟概念,类似于权限控制组,一个Virtual Host里面可以有若干个Exchange和Queue,但是权限控制的最小粒
2014-11-13 22:15:50
2885
转载 Heat-AutoScaling
在openstack的I版本中,Heat中添加了对于AutoScaling资源的支持,github上也提供了对应的AutoScaling的模板,同时也支持使用ceilometer的alarm来触发Scaling Policy。AutoScaling定义的流程首先定义一个Auto Scaling Group,该Group 定义了可以持有资源的类型以及的最大、最小资源数
2014-11-12 23:30:50
1584
原创 eclipse+pydev调试openstack
1.为了调试openstack,另外安装一个eclipse。2.在eclipse上安装pydev插件: window->preferences->general->networkconnect
2014-11-04 13:00:10
2185
原创 devstack安装openstack
devstack是一套用来给开发人员快速部署Openstack开发环境的脚本,其实对于整个安装过程没有什么好说的,因为脚本写的很完善,全程无脑式安装也没什么大问题,但是因为公司里的网络环境不给力,我的安装过程中还是遇到不少问题,在这里记录一下。系统要求:Ubuntu 12.04(最好是刚安装好纯净系统,因为我之前在安装过Openstack服务的机器上试验过,会出现一些莫名错误)。下面正式开
2014-11-03 22:20:29
5275
1
原创 Python---装饰器
装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。假如我要计算一个函数的执行时间:import time def foo(): print 'in foo
2014-10-24 22:48:09
1184
转载 openstack-ceilometer解析
ceilometer的数据采集机制ceilometer主要负责监控数据的采集,采集的项目包括虚拟机的性能数据,neutron-l3-router使用的网络带宽,glance&cinder&swift等租户使用信息,甚至是通过snmp采集物理机的信息,以及采集支持opendaylight的网络设备信息。基本概念ceilometer 主要有下面几个概念:meter 是ceilo
2014-09-16 10:39:41
4655
原创 nova service执行流程
Novaproject下面具有多个service,api,compute,sceduler等等,他们的启动过程都几乎类似,这一篇博客就详细记录nova-sceduler的启动过程。文章中贴出的源码都是从OpenStackFolsom版截取过来的。下面就开始分析nova-sceduler的启动过程了,后面还有涉及到启动之后,做的一些周期性工作,这部分可能与sceduler无关,是在compute
2014-09-09 19:52:41
1544
原创 Linux内核RPC请求过程
这篇文章讲讲服务器端RPC报文的处理流程。服务器端RPC报文的处理函数是svc_process,这个函数位于net/sunrpc/svc.c中。这个函数需要一个svc_rqst结构的指针作为参数,svc_rqst是与RPC请求相关的一个数据结构,这里包含了接收到的RPC消息,RPC消息的解析结果也放在这个数据结构中,RPC消息的处理结果也放在这个消息中了。这个数据结构的定义在include/lin
2014-04-18 20:13:47
2741
原创 Jboss低版本项目热部署到Jboss7
低版本项目迁移到Jboss7 1. Jboss7新特性1.1 构建在Modular Service Container上,充分地利用了多核处理器的能力,并发、按需启动服务,启动速度更快、占用内存更小。1.2 全面兼容Java EE61.3 支持JDK6/71.4 统一的配置和管理1.5 兼容OSGI 4.2,支持OSGI和Java EE组件模型集成。
2014-03-06 16:35:32
2275
原创 rhel6.5安装OpenJDK1.7.0 + JBoss7.1.1 + maven3.0.4
rhel6.5安装OpenJDK1.7.0 + JBoss7.1.1 + maven3.0.4 目录1、安装openJDK1.7.0.11.1、运行安装命令...11.2、确认Java 成功安装...22、安装JBoss7.1.1.22.1、jboss7.1下载...22.2、添加用户...22.3、设置开机启动...52.4、赋
2014-02-24 16:15:50
1415
原创 Linux内核kprobe机制
一、kprobe简介kprobe是一个动态地收集调试和性能信息的工具,它从Dprobe项目派生而来,是一种非破坏性工具,用户用它几乎可以跟踪任何函数或被执行的指令以及一些异步事件(如timer)。它的基本工作机制是:用户指定一个探测点,并把一个用户定义的处理函数关联到该探测点,当内核执行到该探测点时,相应的关联函数被执行,然后继续执行正常的代码路径。kprobe实现了三种类型的探测点:
2014-02-19 11:28:09
4499
原创 linux实习笔记(二)
http://www.ovirt.org/Subprojects***********************************************NO.1********************************************************如果文件在之前并不存在,那么就创建它.如: 1 : > data.xxx
2014-02-14 10:54:42
1258
原创 virsh的使用与实例步骤安装虚拟机
Libvirt有两种控制方式,命令行和图形界面图形界面:通过执行名virt-manager,启动libvirt的图形界面,在图形界面下可以一步一步的创建虚拟机,管理虚拟机,还可以直接控制虚拟机的桌面。 命令行:virsh list #显示本地活动虚拟机virsh list –a
2013-11-22 10:03:20
22625
原创 Systemtap学习笔记
SystemTap 的架构让我们深入探索 SystemTap 的某些细节,理解它如何在运行的内核中提供动态探针。您还将看到 SystemTap 是如何工作的,从构建进程脚本到在运行的内核中激活脚本。动态地检查内核SystemTap 用于检查运行的内核的两种方法是 Kprobes 和 返回探针。但是理解任何内核的最关键要素是内核的映射,它提供符号信息(比如函数、变量以及它们的地址)。有了内核映射之后
2013-11-21 11:32:05
4839
原创 linux实习笔记(一)
2013-11-14在linux下面察看版本信息,通常使用的命令是uname ubuntu系统:$ uname -aLinux wanghaifeng-laptop 2.6.32-23-generic #37-Ubuntu SMP Fri Jun 11 07:54:58 UTC 2010 i686 GNU/LinuxRedHat系统:$ uname -aLinux
2013-11-14 13:52:07
4242
原创 最新百度 阿里 华为 腾讯 谷歌面试笔试题及解析
8月15日,百度2道面试题:1、来自《编程之美》的概率题:一个桶里面有白球、黑球各100个,现在按下述规则取球:的 i 、每次从通里面拿出来两个球; ii、如果取出的是两个同色的求,就再放入一个黑球; ii、如果取出的是两个异色的求,就再放入一个白球。问:最后桶里面只剩下一个黑球的概率是多少?2、算法题:给你一个自然数N,求[6,N]之内的所有素数中,两两
2013-10-11 16:03:08
48326
原创 c++深入笔记
C++类型转换分为:隐式类型转换和显式类型转换第1部分. 隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。 int ival = 3;double dval = 3.14159;ival + dval;//i
2013-09-24 20:28:35
1982
原创 操作系统原理学习笔记--进程管理
进程管理要点:基础:进程描述及控制策略:进程调度实现:互斥与同步避免:死锁与饥饿解决:几个经典问题进程的引入程序的顺序执行源代码程序,目标程序和可执行程序程序执行:编辑,编译,链接,执行程序的结构:顺序,分支,循环结构程序执行的特征:顺序性,封闭性,可再现性程序并发执行多道程序设计技术:多个程序并发执行程序并发执行时的特征:间断性,非封闭性,不可再现
2013-09-23 23:18:04
3339
原创 android Java 笔试考题
前19题为常考题目!!(版本号:201108141031)1、Android的四大组件是哪些,它们的作用? 32、请介绍下Android中常用的五种布局。 33、android中的动画有哪几类,它们的特点和区别是什么 34、android 中有哪几种解析xml的类?官方推荐哪种?以及它们的原理和区别。 35、ListView的优化方案 46、请介
2013-09-18 21:14:06
7219
Windows mobile 上用QT编写的QQ源码
2014-02-16
android代码集合
2013-07-31
源代码例子集合
2013-07-29
android源代码集合
2013-07-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人