自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hahachenchen789的博客

What does not kill me,makes me stronger.

  • 博客(28)
  • 收藏
  • 关注

原创 BVT(Borrowed Virtual Time )调度算法

BVT是一种CPU时间调度算法基本原理BVT是一种公平性优先的调度算法,该算法将时间分为实际时间和虚拟时间,其中实际时间为硬件计时器记录的时间,虚拟时间为对实际时间经过某种规则计算后得到的时间值。该算法用虚拟时间来监控进程的执行时间,每次总是调度具有最早的有效虚拟时间的VCPU。这这种调度算法考虑到了运行实时和交互件的应用程序的一些Guest操作系统,允许这些操作系统“借”一些时间片,就是说:在一...

2018-06-30 17:59:40 2298

转载 阿里搜索秒即弹性调度

目前阿里巴巴搜索的分布式服务一般都是基于Hippo+Carbon来调度的,包括部署、扩缩容、名字服务注册。如下图:其中:Hippo:一层调度(资源调度),解决机器资源分配问题,将一个物理机分成很多资源,根据应用单机不同的资源需求动态创建不同规格的容器(Docker)。一个容器被视作一个Slot。Carbon:二层调度(业务调度),基于各种服务状态决策单机服务是否正常,以决策是否需要自动做机器迁移。...

2018-06-28 22:42:40 1072

转载 阿里搜索hippo架构

hippo是目前阿里搜索主要的调度系统,hippo是一套分布式调度系统。与YARN和K8s的目的相同,都是提供为集群资源调度服务。hippo架构hippo是典型的master-slave架构,这与YARN类似,多个master通过zookeeper选主做failover和调度结果的持久化,master上主要是根据业务需求和资源供给进行资源预估,匹配算法和合理资源分配,资源分配的结果通过心跳发向各个...

2018-06-28 21:27:27 7421

转载 淘宝TPP系统解析

TPP(Taobao Personalization Platform, 也称阿里推荐平台 ) 平台承接了阿里集团300+重要个性化推荐场景,包括手淘首页猜你喜欢、首图个性化、购物链路等。除了提供应用层面的支持和封装,还肩负着机器分配和维护各场景运行稳定的重任。理想情况下,TPP平台上的场景owner不需要关注底层的资源分配情况,平台尽可能的提高CPU利用率,同时保证平台上场景的稳定。QPS(每秒...

2018-06-28 20:08:34 4694

原创 Yarn Scheduler Load Simulator (SLS)-调度算法选择源码解析

如何为SLS选择调度算法。这里谈下本人的理解sls通过slsrun.sh脚本来运行,其中要加入配置文件sls-runner.xml。在该配置文件中,有关于调度算法的配置: </property> <property> <name>org.apache.hadoop.yarn.server.resourcemanager.scheduler....

2018-06-23 15:02:36 594

翻译 Kubernetes scheduler V2草案

大家都知道目前Kubernetes的调度器在可扩展性和性能上面还存在很多不足,在业界,不管是国内外大企业还是创业的新型云服务公司在面临调度的一系列本地化需求时都会自己定制或者使用webhook机制来兼容,但仍然要面临定制后不好和官方同步改动和webhook性能太差不够灵活的问题。所以,我们对更高可扩展性的调度器需求愈来愈强烈。下面是新更新的官方第二版调度器的设计草案,因为有些设计和我们内部的调度器...

2018-06-20 21:53:04 497

原创 Yarn Scheduler Load Simulator (SLS)-调度模拟器

YARN的调度器和调度算法总是一个让人感兴趣的方面。比如FIFO,capacity和fair调度算法。每个调度算法都有其自己的特征,而调度的决策受许多因素影响,如公平性、容量保证和资源的可靠性等。在部署一个调度算法到生产集群之前,评估一个调度算法是非常重要的,不幸的是,评估一个调度算法不是那么容易的,评估一个实际的集群是非常耗费时间和成本的,并且很难找到一个足够大的集群用来评测。因此,在一些特定负...

2018-06-20 20:21:35 1815 2

原创 k8s-kubectl进程源码分析

kubectl与之前的kubernetes进程不同,它不是一个后台运行的守护进程,而是kubernetes提供的一个命令行工具(CLI),它提供了一组命令来操作kubernetes集群。kubectl入口类源码位置如下:/cmd/kubectl/kubectl.gofunc main() { rand.Seed(time.Now().UTC().UnixNano()) command := ...

2018-06-13 17:06:32 1666

原创 k8s-kubelet进程初始化源码分析

kubelet命令的入口类源码位置如下:/cmd/kubelet/kubelet.go入口main函数如下:func main() { rand.Seed(time.Now().UTC().UnixNano()) command := app.NewKubeletCommand(server.SetupSignalHandler()) logs.InitLogs() defer logs...

2018-06-10 15:50:32 595

原创 k8s-kube-proxy运行机制分析

在每个Node上都会运行一个kube-proxy服务进程,这个进程可以看做service的透明代理和负载均衡器。其核心功能是将某个service的访问请求转发到后端的某个Pod上。对每一个TCP类型的service,kube-proxy都会在本地Node上建立一个socketserver来负责接收请求,然后均匀发送到后端某个Pod端口上。这个过程默认采用Round Robin负载均衡算法。此外,s...

2018-06-09 17:48:37 4501

原创 k8s-kubelet运行机制分析

在每个Node节点(又称minion)上都会启动一个kubelet服务进程,该进程用于处理Master节点下发到本节点的任务。管理Pod和Pod中的容器。每个kubelet进程会在API server注册节点自身信息,定期汇报节点资源使用情况。节点管理节点通过设置kubelet的启动参数--Register-node,来决定是否向API server注册自己。若该参数的值为true,则kubele...

2018-06-09 16:41:22 1255

原创 k8s-scheduler原理分析

scheduler在整个系统中承担了承上启下的重要功能,承上是指它负责接收controller manager创建新的Pod,为其安排一个落脚的目标Node,启下是指安置工作完成后,目标Node上的kubelet服务进程接管后继工作。也就是说scheduler的作用是通过调度算法为待调度Pod列表上的每一个Pod从Node列表中选择一个最合适的Node。k8s scheduler当前提供的默认调度...

2018-06-09 15:39:23 2426

原创 k8s-controller manager原理分析

controller manager作为集群内部的管理控制中心,负责集群内的Node,Pod副本,服务端点(endpoint),命名空间(namespace)等的管理,当某个Node意外宕机,CM会及时发现此故障并执行自动化修复流程,确保集群始终处于预期的工作状态。如下图所示:CM内部包含了RC,node controller,namespace controller等多个控制器,每种控制器都负责...

2018-06-09 12:03:36 5551

原创 k8s-API server原理分析

我们都知道, k8s的API server核心功能是提供了k8s各类资源对象(Pod,RC,service)的增,删,改,查及HTTP REST接口。server是通过一个名为kube-apiserver的进程提供服务。该进程运行在master节点上,默认情况下,在本机8080端口提供REST服务。通常我们可以通过命令行工具kubectl来与API server交互。它们之间的接口是RES...

2018-06-09 10:57:57 13040

原创 k8s安装与配置

一、k8s安装最简单的安装方法是使用yum install kubernetes命令,但仍需修改各组件的启动参数,才能完成配置。也可以下载二进制包,手动配置安装。k8s master节点安装部署etcd,kube-apiserver,kube-controller-manager,kube-scheduler服务进程,我们使用kubectl作为客户端与master进行交互操作。在工作Node上仅需...

2018-06-08 22:10:20 1020

原创 k8s基本概念与术语

k8s大部分概念比如Node,Pod、RC,service等都可以看做一种资源对象,几乎所有的资源对象都可以通过k8s提供的kubectl工具执行增,删,改,查等操作并将其保存在etcd中持久化存储。1.mastermaster指的是集群控制节点,来负责整个集群的管理和控制,基本上k8s的所有控制命令都是发给它。我们后面执行的命令基本都是在master节点上运行的。通常它会占据一个独立的x86服务...

2018-06-08 19:47:59 11460 1

原创 k8s简单实例-java web tomcat

此java web应用简单,是一个运行在Tomcat的Web App。如下图所示:通过浏览器http协议访问此应用,会显示一个表格的页面,数据来自数据库。此应用需要启动两个容器,web app容器和my sql容器,并且web app容器需要访问mysql容器。在docker时代,假设我们再一个宿主机上启动了这两个容器,则我们需要将mysql容器的IP地址通过环境变量的方式注入web app容器中...

2018-06-08 12:12:01 8983 6

原创 kubernetes是什么

首先,它是全新的基于容器技术(docker,rocket)的分布式架构领先方案 。是谷歌保密了十几年的秘密武器-borg的一个开源版本。borg是谷歌内部使用的大规模集群管理系统。其次,kubernetes的设计思想是全自动管理,不必再费心于负载均衡器的选型和部署实施问题,不必再考虑引入或自己开发一个复杂的服务管理框架,也不必头疼于服务监控和故障处理模块的开发,将精力更加集中于业务本身,由于k8s...

2018-06-08 00:05:25 879

转载 k8s-kubectl功能源码分析

kubernetes里的命令行接口叫做kubectl,用来控制kubernetes集群,我们要追踪的命令是kubectl create -f-会从指定文件创建k8s资源,我们要创建的资源是使用了nginx基础镜像的单副本pod。首先是kubectl命令的创建,在/cmd/kubectl/kubectl.go文件中,实现了kubectl命令的创建:func main() { rand.Seed(t...

2018-06-07 15:11:34 1843

原创 k8s-kubelet功能源码分析

kubelet这是k8s中的一种服务,每个节点上都会运行kubelet服务进程,默认监听10250端口,接收并执行master发来的指令,管理pod和pod中的容器。定期向master节点汇报资源使用情况。一、kubelet启动流程kubelet是作为一个cmd命令运行,因此接口源码也就是main入口,肯定在cmd文件夹中。cmd/kubelet/kubelet.gofunc main() { ...

2018-06-06 19:20:31 1090

原创 k8s源码架构目录分析

api: 输出接口文档用,基本是json源码build:构建脚本cmd:所有的二进制可执行文件入口代码,也就是各种命令的接口代码。pkg:项目diamante主目录,cmd只是接口,这里是具体实现。cmd类似业务代码,pkg类似核心plugin:插件test:测试相关的工具third_party:第三方工具docs:文档example:使用例子Godeps:项目依赖的Go的第三方包,比如docke...

2018-06-06 16:28:58 4222 2

原创 YARN-client提交任务处理过程

Client向RM提交任务的过程大致分为七步,如下图:1. Client向RM发出请求2. RM返回一个ApplicationID作为回应3. Client向RM回应Application Submission Context(ASC)。ASC包括ApplicationID、user、queue,以及其他一些启动AM相关的信息,除此之外,还有一个Container Launch Context(C...

2018-06-05 21:38:15 7393 1

转载 资源控制平台介绍与YARN的优缺点

Yarn脱胎于MRv1,并克服了MRv1的种种不足。先来看看MRv1让人诟病的地方,主要是可靠性差、扩展性差、资源利用率低、无法支持异构的计算框架:1.可靠性差: MRv1是主从架构,主节点的JobTracker一旦出现问题就会导致整个集群不可用。2.扩展性差: MRv1的主节点JobTracker承担集群的资源管理和作业调度功能,一旦同时提交的作业较多,JobTracker将不堪重负,成为整个集...

2018-06-05 15:12:43 3547 1

原创 wordpress下载主题出现FTP窗口

在wordpress主题商店下载主题时,会弹出FTP的上传窗口,要求输入服务器的域名,以及用户名和密码。这对于本地安装的用户而言显然无法使用。方法:在wp-config.php文件的最后一行后加入如下语句:define("FS_METHOD", "direct"); define("FS_CHMOD_DIR", 0777); define("FS_CHMOD_FILE", 0777); ...

2018-06-04 20:59:09 1117

原创 centos+apache+mysql+php搭建wordpress

wordpress是很好用的博客框架,轻量化,易配置部署。非常适用于个人博客建站。本篇博客在centos上搭建wordpress,与服务器搭建步骤基本类似,服务器只需要购买域名就可以实现公开化了。wordpress官网给出了对于安装该框架的环境配置需求:1.PHP 7.2 or greater-PHP版本7.2以上2.my sql 5.6 or greater OR MariaDB 10.0 or...

2018-06-04 20:02:28 1763

原创 centos安装php7.2

目前php最高稳定版本是7.2,wordpress中也建议采用该版本。若直接采用centos中的yum安装:sudo yum -y install php,版本是5.4,远远不够,因此我们要手动更新rpm即可。首先获取rpm:rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm ...

2018-06-04 16:16:55 23528 5

原创 centos7安装my sql 5.7

如果直接运行: sudo yum install sql-server,

2018-06-04 14:13:31 1307

转载 Hadoop2源码分析-YARN RPC 示例介绍

原博客:https://www.cnblogs.com/smartloli/p/4664842.2.YARN的RPC介绍  我们知道在Hadoop的RPC当中,其主要由RPC,Client及Server这三个大类组成,分别实现对外提供编程接口、客户端实现及服务端实现。如下图所示:    图中是Hadoop的RPC的一个类的关系图,大家可以到《Hadoop2源码分析-RPC探索实战》一文中,通过代码...

2018-06-02 11:21:33 252

空空如也

空空如也

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

TA关注的人

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