SkyForm ECP基于Kubernetes构建AIaaS平台

封面2
■ 文/ 天云软件 张伟 1. 背景介绍 作者在之前的文章《在SkyForm ECP上运行深度学习框架》中介绍过深度学习框架运行在kubernetes上的优势,以及这种实践方式的基本架构。 社区中也出现了很多tensorflow on kubernetes的方案,比如最早使用jinja模板的方案(点击了解),以及后来的kubeflow(点击了解)和Tensorflow/k8s(点击了解),都是为了能够更好的把tensorflow运行在kubernetes上,简化手工搭建tensorflow集群时的繁琐工作。 其中Tensorflow/k8s用kubernetes的CRD定义新的资源类型TFJob,可以在TFJob中定义PS、Worker和TensorBoard的信息,方便创建一个分布式的tensorflow集群。 SkyForm ECP的AIaaS的方案和社区方案的一个简单对比如下: Tensorflow/k8s kubeflow AIaaS方案 深度学习框架支持 Tensorflow Tensorflow Tensorflow,...
More

Kubernetes1.7两大新特性 | 直接通过containerd管理容器、自动伸缩条件

timg
 ■ 文/ 天云软件 产品总监 马俊  支持绕过docker,直接通过containerd管理容器 背景情况 从Docker1.11版本开始,Docker依赖于containerd和runC来管理容器,containerd是控制runC的后台程序,runC是Docker公司按照OCI标准规范编写的一个操作容器的命令行工具,containerd这个后台程序还可以操作满足OCI标准规范的其他容器工具,也就意味着以后只要是按照OCI标准规范开发的容器工具,都可以被containerd使用起来。使用containerd的好处是,当docker daemon或者containerd两个进程crash后,应用容器不会“死掉”,未来要是实现的功能是,当containerd daemon重新启动后可以同应用容器重新建立连接。 从Docker1.11版本开始,daemon模块调用关系图如下: 美国时间2016年12月14日,Docker公司宣布将containerd从Docker Engine中分离,并捐赠到一个新的开源社区独立发展和运营,阿里云,AWS, Google,IBM...
More

深度学习简介及支撑深度学习的解决方案

OLYMPUS DIGITAL CAMERA
■文/天云软件 CTO 牛继宾  天云软件技术开放日沙龙分享已圆满落幕,近几天已陆续放出沙龙期间技术大牛们的干货分享现场实录及相关文件,感谢关注。此文为第4篇,也是最终篇,其余几篇干货分享实录请点击文章末尾相关阅读获取。由天云软件CTO牛继宾给大家带来名为“深度学习简介及支撑深度学习的解决方案 ”的精彩分享,以下为演讲实录。   牛继宾:谢谢大家留在最后和我做一个技术交流。首先是深度学习,是依赖于最早的神经网络。神经网络是什么概念?我输入一组数据,基于每个节点的预算,会最终输出数据,比较常见的是做类似于分类,类似于识别,用得最多的是语言识别,图像识别等。传统的神经网络只有三四层,精度比较低,基本上应用在工业上比较难,深度学习相比,有了更多隐层(hidden Layer)。 首先介绍一下GPU,这个图介绍了GPU和CPU的分别,一颗CPU大概是8个核或者12个核。普通的X86服务器,两颗CPU,基本上是24核,GPU不一样,一颗GPU有上千个核,你一旦把运算放在上面有上千个线程并发计算,特别适合有多个隐层,多个参数计算的深度学习神经网络算法。除了核特别多,CPU往往不会一直在...
More

如何基于K8S打造轻量级PaaS平台

OLYMPUS DIGITAL CAMERA
■文/天云软件 CTO 牛继宾 4月23日天云软件技术开放日已圆满落幕,接下来几天将陆续放出沙龙期间技术大牛们的干货分享现场实录及相关文件,敬请关注。此文为第2篇,由天云软件CTO牛继宾给大家带来名为“如何基于K8S打造轻量级PaaS平台”的精彩分享,以下为演讲实录。 牛继宾:大家下午好,我从几个角度介绍一下PaaS平台。我们把天云软件基于K8S与Docker构建轻量级平台叫做ECP,就是弹性计算平台。我们知道刚才马俊讲的CMP,更多是在IaaS这一层面的,IaaS这一层面很多工作在主机、存储、网络上。到PaaS这一层面,大家对PaaS的理解可能会有很多的差异,比如说互联网基于它的API能力开放的应用开发框架理解为PaaS,还有像运营商开放的能力可以是定为PaaS,开发环境也是PaaS。不管是哪一个方向,大家在PaaS通用上都是说提供了一种环境,这种环境可以支撑应用快速去做开发、部署与运行,同时支撑应用更好做弹性更灵活的调整。 建设目标上这四个角度(参见ppt截图),是大家都认同的。第一个系统高可用,用了PaaS平台之后,不在关心底下的IaaS资源了。不要关心虚拟机HA、DRS等...
More

云计算到底怎么玩?三大云玩家带你玩转技术到实践

71d39aff88ce6f211ca1ce6221ce44fd
  扫描二维码收看沙龙实况录像 技术的发展迅猛而多变,近几年,移动互联网、云计算、大数据、物联网、人工智能、区块链等新一代计算技术高速发展,各领域的细分技术层出不穷。然而,新技术往往都是云计算的基础上,回看云计算的发展,同样充满着变化与创新,IaaS、PaaS、SaaS、CaaS,Openstack、Docker,云管理、弹性计算、高性能计算等等,企业级云计算正热火朝天。 4月23日,天云软件技术开放日在北京联合创业办公社举行,来自天云软件、阿里云、亚信三大企业级云系统的专家,以及关注云计算的开发者们齐聚一堂,从OpenStack到IaaS,从PaaS到CaaS,从云管理到高性能计算,展开了一场围绕云系统技术与实践的探讨。 天云软件CEO张福波博士在开场白中表示,作为一个IT老兵,他见证了海龙大厦从车水马龙到一片哀鸿,这代表着世界在发生着快速的变化,科技的发展同样如此。无论是云计算、大数据,还是人工智能、机器学习,其最重要的目的便是技术推动事物的发展,用新技术解决存在的问题,天云软件便是秉持着这样的理念成立的。天云软件认为,底层技术发展...
More

专题三:分布式机器学习集群方案介绍之基于Kubernetes的GPU调度

专题封面1
■文/天云软件 CTO 牛继宾 伴随着人工智能技术的发展,尤其是深度学习的兴起,许多之前机器学习领域的问题与难点逐步的得到了解决,训练效率与学习准确率都得到了质的提升。深度学习的实现,需要多种技术进行支撑,比如服务器、GPU、集群、集群管理调度软件、深度学习框架、深度学习的具体应用等。我们把这些技术进行归类,认为服务器、GPU、分布式集群、集群调度管理软件等作为深度的学习的系统支撑平台,也是机器学习领域的必备技术。天云软件作为国内较早做云计算、分布式集群计算、集群调度管理软件等的公司,在机器学习系统支撑平台上也有自己的独特的理解与实现。因此,本次分享将作为一个系列,内容罗列如下: 第1篇:深度学习简介,GPU计算的原理,分布式机器学习原理(to see see); 第2篇:分布式深度学习的两种集群管理与调度的实现方式简介(to see see again);  第3篇:分布式机器学习集群方案介绍之基于Kubernetes的GPU调度; 第4篇:分布式机器学习的集群方案介绍之HPC实现。  本次介绍第3篇—分布式机器学习集群方案介绍之基于Kuberne...
More

Kubernetes1.6新特性:支持新的卷插件

timg
 ■ 文/ 天云软件 产品总监 马俊 背景介绍 在Kubernetes中卷的作用在于提供给POD持久化存储,这些持久化存储可以挂载到POD中的容器上,进而给容器提供持久化存储。 从图中可以看到结构体PodSpec有个属性是Volumes,通过这个Volumes属性可以关联到结构体Volume和结构体VolumeSource,而且这个Volumes属性是一个数组类型,就是说POD可以关联到多个不同类型的卷上面。 结构体Container表示POD中的容器,这个结构体有一个属性VolumeMounts,通过这个属性让容器知道具体挂载的存储路径,这个VolumeMounts属性也是一个数组类型,就是说容器可以挂载多个存储路径。 支持新的卷插件 Kubernetes一共支持26种卷插件。在Kubernetes1.6中又增加了三种新的卷插件Projected、PortworxVolume和ScaleIO。 ScaleIO ScaleIO是一家以色列的存储技术初创企业,其核心技术是虚拟SAN(存储区域网)技术。所谓虚拟SAN,是指利用软件将应...
More

纯干货!Ceph中国行西安站之冯建建演讲实录

冯健健演讲照
3月25日,Ceph中国行西安站技术沙龙在西安高新区的和颐酒店如期召开,来自西安各大IT公司的从业人员和高校的学生们纷纷前来学习交流。此次沙龙第三场演讲是由天云软件西安研发中心架构师 冯建建负责主讲,主题为《kubernetes& ceph集成中的踩坑经验谈》。首先讲了什么是Kubernetes及一些新特性,接着对Kubernetes中实现数据持久性存储的persistent volume机制进行详细介绍,最后对Kubernetes与ceph集成过程中的踩坑经验进行总结说明。现场引起了很多参与者的热烈反响与积极提问。 演讲实录 1.  k8s存储系统介绍 在k8s集群中,运行服务离不开持久化地将数据保存起来,这就涉及到k8s的存储系统了。k8s的存储系统在运行机制上基于docker原生的volume机制,本质上都是先将存储挂在到主机上,经过处理后,通过docker的volume机制挂载到容器中。但在存储实现上,k8s自己包装了一套volume plugins,用于对接各种存储的后端实现。这些存储实现从基本用途来说,大致可以分为以下几类: ...
More

Kubernetes1.5两大新特性 | 支持Photon卷插件、自定义资源类型

timg
■ 文/ 天云软件 产品总监 马俊 支持Photon卷插件 一、背景介绍 在Kubernetes中卷的作用在于提供给POD持久化存储,这些持久化存储可以挂载到POD中的容器上,进而给容器提供持久化存储。                                              从图中可以看到结构体PodSpec有个属性是Volumes,通过这个Volumes属性可以关联到结构体Volume和结构体VolumeSource,而且这个Volumes属性是一个数组类型,就是说POD可以关联到多个不同类型的卷上面。 结构体Container表示POD中的容器,这个结构体有一个属性VolumeMounts,通过这个属性让容器知道具体挂载的存储路径,这个VolumeMounts属性也是一个数组类型,就是说容器可以挂载多个存储路径。 二、支持新的卷插件 Kubernetes一共支持23种卷插件。在Kubernetes1.5中又增加了一种新的卷插件PhotonPersistentDisk。 三、Photon Photon是VMware自家的Linux版本...
More

Kubernetes1.5新特性:支持Windows容器

timg
■ 译/ 天云软件 产品总监 马俊 一、Windows容器概述 1、Windows 容器类型 Windows容器包括两个不同类型的容器: Windows Server 容器 - 通过进程和命名空间隔离技术提供应用程序隔离。 Windows Server 容器与容器主机和该主机上运行的所有容器共享内核。 Hyper-V 容器 - 通过在高度优化的虚拟机中运行每个容器,在由 Windows Server容器提供的隔离上扩展。在此配置中,容器主机的内核不与Hyper-V容器共享。 2、Windows容器基础知识 容器主机:使用Windows容器功能配置的物理或虚拟计算机系统。容器主机将运行一个或多个Windows容器。 容器映像:在对容器文件系统或注册表进行修改时(如软件安装),将在沙盒中捕获它们。在许多情况下,你可能希望捕获此状态,以便可以创建继承这些更改的新容器。这就是映像的本质:一旦容器停止,你便可以放弃该沙盒,或者可以将其转换为新的容器映像。例如,让我们想象你已从Windows Server Core操作系统映像部署一个容器。然后你将MySQL安装到此...
More

kubernetes如何使用Harbor作为私有镜像仓库

8.pic_hd
■ 文/ 天云软件 云平台研发工程师 葛林 一、概述 Harbor使用了基于角色的访问控制策略,当从Harbor中拉去镜像的时候,首先要进行身份认证,认证通过后才可以拉取镜像。在命令行模式下,需要先执行docker login,登陆成功后,才可以docker pull。通常情况下,在私有云环境中使用kubernetes时,我们要从docker registry拉取镜像的时候,都会给docker daemo配置--insecure-registry属性来告诉docker daemo我们所使用的docker registry是可信的,这样才能从私有的docker registry中拉取镜像。 但是如果要使用Harbor作为kubernetes的镜像仓库的话,这种方式就不适用了,下面让我们看看如何来使用Harbor作为kubernetes的镜像仓库。 二、实现探索 我们在命令行方式下,输入docker login登陆成功后,会在/root/.docker/ 目标下生成一个config.json文件。打开后可以看到如下的内容: 这里的内容就是docker dae...
More

Kubernetes调度之亲和性和反亲和性

ganhuo
■ 文/ 天云软件 云平台开发工程师 张伟 背景 Kubernetes中的调度策略可以大致分为两种,一种是全局的调度策略,要在启动调度器时配置,包括kubernetes调度器自带的各种predicates和priorities算法,具体可以参看文章《Kubernetes调度详解》;另一种是运行时调度策略,包括nodeAffinity(主机亲和性),podAffinity(POD亲和性)以及podAntiAffinity(POD反亲和性)。 nodeAffinity主要解决POD要部署在哪些主机,以及POD不能部署在哪些主机上的问题,处理的是POD和主机之间的关系。 podAffinity主要解决POD可以和哪些POD部署在同一个拓扑域中的问题(拓扑域用主机标签实现,可以是单个主机,也可以是多个主机组成的cluster、zone等。),podAntiAffinity主要解决POD不能和哪些POD部署在同一个拓扑域中的问题。它们处理的是Kubernetes集群内部POD和POD之间的关系。 三种亲和性和反亲和性策略的比较如下表所示: 策略名称 匹配...
More

Kubernetes 1.3新特性:新的资源回收控制器

20151120100232_969
■ 文/ 天云软件 产品总监 马俊 天云软件为大家介绍Kubernetes 1.3新特性: 核心概念 在kubernetes 1.3中新增了一个资源回收控制器GarbageCollector,用这个控制器来替代kubernetes 1.2中的资源回收控制器GC。 如下为kubernetes 1.2中的资源回收控制器结构体: 如下为kubernetes 1.3中的资源回收控制器结构体: 在kubernetes 1.2中,如果要实现对资源级联回收功能,需要通过客户端进行资源级联回收调用的方式实现。比如存在一个replica set类型的资源,在这个资源下面存在多个POD资源,如果我们使用命令行的方式进行级联删除,我们需要使用kubect命令先删除replica set下面对应的所有POD资源,然后再删除这个replica set资源,对资源级联删除的逻辑处理都要通过客户端来实现。 在kubernetes 1.3中,可以将对资源级联回收功能的逻辑处理放到服务端来实现,这样就减少了客户端维护逻辑处理的工作量,方便了用户使用,从而进一步完善了kubernetes作为一个...
More

Kubernetes 1.3新特性:POD中的初始化容器

20151120100232_969
■ 文/ 天云软件 产品总监 马俊 在kubernetes 1.3的POD中有两类容器:一类是系统容器(POD Container),一类是用户容器(User Container);在用户容器中,现在又分成两类容器:一类是初始化容器(Init Container),一类是应用容器(App Container),其中应用容器包含卷容器(Volume Container)。下面看看kubernetes 1.3中同POD相关的各个实体信息: 在PodSpec中,可以看到有两个同容器相关的变量,分别是InitContainers和Containers,其中变量InitContainers代表初始化容器,变量Containers代表应用容器。这两个容器都对应相同的容器实体,如下图所示: 其中POD同容器的对应关系如下图所示,从图中可以看出来,POD同初始化容器之间的对应关系是从0到N,POD同应用容器之间的对应关系是从1到N。 初始化容器是kubernetes 1.3的新特性,初始化容器适用下面几个使用场景: 一、如果容器中的应用使用到了一个外部服务,需要等这个外部服务可以...
More

高可用Kubernetes集群原理介绍

20151120100232_969
■ 文/ 天云软件 云平台开发工程师 张伟 1. 背景 Kubernetes作为容器应用的管理中心,对集群内部所有容器的生命周期进行管理,结合自身的健康检查及错误恢复机制,实现了集群内部应用层的高可用性。 Kubernetes服务本身的稳定运行对集群管理至关重要,影响服务稳定的因素一般来说分为两种,一种是服务本身异常或者服务所在机器宕机,另一种是因为网络问题导致的服务不可用。本文将从存储层、管理层、接入层三个方面介绍高可用Kubernetes集群的原理。 2. Etcd高可用方案 Kubernetes的存储层使用的是Etcd。Etcd是CoreOS开源的一个高可用强一致性的分布式存储服务,Kubernetes使用Etcd作为数据存储后端,把需要记录的pod、rc、service等资源信息存储在Etcd中。 Etcd使用raft算法将一组主机组成集群,raft 集群中的每个节点都可以根据集群运行的情况在三种状态间切换:follower, candidate 与 leader。leader 和 follower 之间保持心跳。如果follower在一段时间内没有收到来自...
More

应用容器化之Kubernetes实践

a6ca15267bef876948be8977edadfad8
■ 文/ 天云软件 研发工程师 陈晓宇 本次分享主要以ZooKeeper、Redis、Kafka、MongoDB等应用容器化在Kubernetes平台上面实践。从计算、网络、存储方面解析应用在集成中的问题,以及部分传统应用在容器化过程中设计的应用二次开发等问题。首先介绍应用Docker化的需求和局限、接着介绍基础平台,整体环境包括Kubernetes和ECP,然后介绍具体应用如ZooKeeper在集成中的实践,最后介绍部分开源应用在容器化过程中设计到的二次开发。 容器是一种轻量级的虚拟化技术,拥有持续集成、版本控制、可移植性、隔离性和安全性等优点,越来越多的应用跑在容器里面。但也有其缺陷,并不是所有场景都适合如高性能计算,已经满负荷运行的应用没有必要虚拟化,一些对IO等运行环境要求比较高应用不适合容器化如Oracle数据库。 容器给应用程序提供了一个独立的运行环境,并不是像虚拟机那样提供一套完整的操作系统,这是容器和虚拟机最大的区别,所以在用户在使用虚拟化如KVM、Vmware时候很少会担心到应用能不能跑到虚拟机里面,通常只是针对虚拟化环境做性能调优,如KVM的CPU绑定、内存气...
More

Kubernetes 1.3:QoS服务质量管理

20151120100232_969
■ 文/ 天云软件 产品总监 马俊 在kubernetes中,每个POD都有个QoS标记,通过这个Qos标记来对POD进行服务质量管理。QoS的英文全称为"Quality of Service",中文名为"服务质量",它取决于用户对服务质量的预期,也就是期望的服务质量。对于POD来说,服务质量体现在两个指标上,一个指标是CPU,另一个指标是内存。在实际运行过程中,当NODE节点上内存资源紧张的时候,kubernetes根据POD具有的不同QoS标记,采取不同的处理策略。 在Kubernetes中,POD的QoS服务质量一共有三个级别,如下图所示: 这三个QoS级别介绍,可以看下面表格: QoS级别 QoS介绍 BestEffort POD中的所有容器都没有指定CPU和内存的requests和limits,那么这个POD的QoS就是BestEffort级别 Burstable POD中只要有一个容器,这个容器requests和limits的设置同其他容器设置的不一致,那么这个POD的QoS就是Burstable级别...
More

Kubernetes 1.3:Quota配额管理

20151120100232_969
■ 文/ 天云软件 产品总监 马俊 在kubernetes的controller-manager模块中有一个ResourceQuotaController控制器,通过这个控制器管理所有的资源配额,目前可以管理的资源包括POD、CPU和内存。 下面会介绍ResourceQuotaController控制器是如何进行管理的。首先,我们看一个结构体PodSpec,这个结构体用来存放POD的描述信息,如下图所示: 在这个结构体中有一个变量ActiveDeadlineSeconds,这是一个可选的正整型变量,也就是变量的值需要大于0。对于每个POD,当POD在NODE上启动之后kubernentes就可以获取这个POD运行时间,如果给这个POD对应的PodSpec中设置了数值,那么就意味着如果POD运行时间超过了这个POD对应的ActiveDeadlineSeconds变量值,那么kubelet会把这个POD设置成Failed状态,并重新进行同步,其实kubelet就是操作PodStatus这个结构体的Phase变量,将这个变量设置成Failed状态,下图就是PodStatus结构...
More

Kubernetes 1.3新特性:集群联盟——在全球快速部署和管理应用

20151120100232_969
■ 译者:天云软件 产品总监 马俊 Kubernetes作为生产级别的容器编排管理工具,从发布到现在已经一年多的时间了。作为从Kubernetes 诞生就可开始参与的人来说,为今天kubernetes的成功而激动。在过去的几个月里,我们一直在为Kubernetes创造的一个新功能而兴奋,这个新功能就是“集群联盟”。 Kubernetes v1.3在2016年7月份发布了,里面介绍了对“集群联盟”的支持。这个功能使企业能够快速有效的、低成本的部署和管理跨公有云和数据中心的应用。这个功能会按照地理位置创建一个复制机制,将多个kubernetes集群进行复制,即使遇到某个区域连接中断或某个数据中心故障,也会保持最关键的服务运行。让我们来看看“集群联盟”控制平面架构,并使用一些用例来分析。 集群联盟:管理多个kubernetes集群的集群 为了追求高可用性和更高的性能,要将应用部署到多个数据中心或多个公有云中。通过引入“集群联盟”控制平面,Kubernetes v1.3迈出了第一步,使自己成为了一个多区域业务编排框架。 “集群联盟”在架构上同kubernetes集群很相似。有一个...
More

Kubernetes 1.3新特性

20151120100232_969
■ 文/ 天云软件 产品总监 马俊 本次分析的kubernetes版本号:v1.3.0。 scheduler模块 新增了kube-api-content-type参数,表示scheduler模块发送给api-server的请求类型,默认值是“application/vnd.kubernetes.protobuf”。 新增了hard-pod-affinity-symmetric-weight参数,表示POD调度规则亲和力的权重,取值范围从0到100。 新增了failure-domains参数,这是一个字符串参数,表示POD调度时亲和力参数。在调度POD的时候,如果两个POD有相同的亲和力参数,那么这两个POD会被调度在相同的节点上;如果两个POD有不同的亲和力参数,那么这两个POD不会在相同的节点上。 在结构体Affinity中增加了两个参数PodAffinity和PodAntiAffinity,这两个参数会使用到failure-domains参数输入值。 type Affinity struct {        NodeAffinity *NodeAffinity...
More

从kubernetes看如何设计超大规模资源调度系统

20151120100232_969
■ 文/ 天云软件 云平台开发工程师 张伟 张伟现主要负责天云软件SkyForm云平台设计及开发工作。熟悉各种开源IaaS平台,如CloudStack,OpenStack;熟悉各种资源管理及调度框架,如Kubernetes,Mesos,YARN,Borg等。   背景 在大数据时代,为了合理分配大规模集群的资源,满足日益增多的服务和任务的资源需求,出现了诸如Borg,Mesos,YARN,Omega等一系列的集群资源调度系统。从系统的架构来考虑,可以把它们划分为集中式调度器(Borg),双层调度器(Mesos,YARN),以及共享状态调度器(Omega)。虽然架构不同,但是它们的设计目标(简单合理的利用集群资源)和主要职责(为任务分配主机资源)都是一样的。 Borg是集中式调度器的代表,它作为集群调度器的鼻祖,在google有超过10年的生产经验,其上运行了包括GFS,BigTable,Gmail,MapReduce等各种类型的任务。Borg虽然是一个集中式的调度器,但是通过多主共同协作可以轻松支撑10K节点以上的集群,就像Borg论文中说的那样:We are not s...
More

基于Docker的分布式服务研发实践

fc76dda82a4d45b087f599a098fa99ca
■ 文/ 天云软件 云平台研发工程师 葛林 葛林现主要负责SkyForm CMP、容器管理平台的设计与研发工作,对Docker、容器管理集群如:kubernetes、Swarm有一定的研究积累和经验。 Docker自从发布以来,短短3年的时间就迅速成长为各家争先追捧的宠儿,各家企业都希望能够借助Docker来提升自己的产品、优化现有的研发流程。本文分享Docker在天云软件分布式服务研发过程中的应用与实践,主要介绍使用Docker、Compose构建分布式服务的CI/CD体系;容器技术的引入为天云软件的SkyForm CMP带来了哪些变化;围绕着CI/CD,如何使天云软件在日常研发活动中变得更加敏捷、高效。 Skyform CMP简介 SkyForm CMP是一款中立、包容的能够对多种异构资源实现统一管理的云系统软件。SkyForm CMP能够为用户提供简单、统一的管理平台,内置丰富的资源管理与交付功能,可以对原本静态的IT基础设施进行管理、调度和按需分配。 SkyForm CMP的核心子服务是由SkyForm Cloud Service Gateway、SkyForm ...
More

天云软件正式推出PaaS平台整体解决方案

paas00
■ 文/ 天云软件 技术总监 牛继宾 牛继宾现主要负责公司云计算平台(IaaS、PaaS)项目技术方案和解决方案;在加入天云软件之前,曾任职于IBM系统科技部、VMware研发中心。 今天下午,亚信数据橘云产品发布会在清华文津国际酒店四层多功能厅举办。天云软件作为亚信的重要战略合作伙伴应邀出席,公司技术总监牛继宾带来了题为《天云软件PaaS云平台建设方案》的主题演讲,标志着公司倾力打造的PaaS平台整体解决方案正式推出。该方案可与包括亚信大数据Hadoop平台在内的众多大数据平台深度集成,从而为客户提供完整的PaaS平台能力。 传统云计算带来的挑战 高可用问题:传统IOE架构的问题在于设备成本高、scale out能力不足。在私有云IaaS平台实施以后,IOE硬件逐步替换为x86设备,IOE软件逐步替换为分布式体系,且伴随着开源组件越来越多的引入。某种程度上来说,x86设备越多、分布式系统复杂性越高、开源组件引入的越多,对高可用性的挑战越多,而IaaS一定程度解决了x86集中管理与资源提供的问题,但不能解决分布式系统、开源组件统筹管理这类问题。 敏捷开发问题:...
More

kubernetes调度详解

20151120100232_969
■ 文/ 天云软件 云平台开发工程师 张伟 张伟现主要负责天云软件SkyForm云平台设计及开发工作。熟悉各种开源IaaS平台,如CloudStack,OpenStack;熟悉各种资源管理及调度框架,如Kubernetes,Mesos,YARN,Borg等。   经过六个月的持续优化,kubernetes宣布1.2版本已经可以支持1000+节点的群集,并且有相当出色的响应能力,这对kubernetes来说是一个重大的改进。随着kubernetes集群规模的扩大,kubernetes调度器作为集群的大脑,在如何提高集群的资源利用率、保证集群中服务的稳定运行中也会变得越来越重要。本文将从调度流程、调度算法、资源限制几个方面详细介绍kubernetes调度器。 kubernets调度器 kubernets scheduler主要负责的工作是:接受API Server创建的新Pod,并为其安排一个主机,将信息写入etcd中。当然在这个过程中要处理的事情远远没有这么简单,需要综合考虑多种决策因素,比如把同一个replication controller的Pod分配到不同的主机上,防...
More

从源代码看kubernetes 1.2新特性

20151120100232_969
■ 文/ 天云软件 产品总监 马俊 马俊现主要负责SkyForm系列产品管理工作,曾经负责过 SkyForm云管理平台早期几个版本的研发管理工作;先后参与过国家863计划国产数据库、电信运营商BOSS系统、中国联通WAP Billing Gateway、运营商语音广告调度系统的研发工作;熟悉数据库系统、运营商业务和运营商IT资源环境、各种IaaS平台、资源管控和资源调度等相关技术;当前主要关注Hadoop、Docker及相关资源调度技术,如kubernetes、Mesos、YARN等。 本次分析的kubernetes版本号:v1.2.1-beta.0。 scheduler模块 v1.2比v1.1去掉了bind-pods-qps参数和bind-pods-burst参数,取而代之的是kube-api-qps参数和kube-api-burst参数。v1.2比v1.1多了scheduler-name参数,这个参数代表用来给POD指定使用哪个调度器,对应到POD的annotation中就是 “scheduler.alpha.kubernetes.io/name”参数,从名字可以看...
More

1000+节点:kubernetes 1.2性能和可扩展性更新介绍

20151120100232_969
■ 作者:Wojciech Tyczynski,软件工程师,Google ■ 译者:天云软件 容器团队 我们自豪地宣布的,kubernetes 1.2 版本现在可以支持1000+节点的群集,同时99%的API减少了 80%的访问延迟。这意味着仅仅六个月,在不影响用户体验的情况下,我们提升了10倍的性能——99%的 pod 启动时间小于 3 秒,并且99%的 API操作延迟仅有几十毫秒(在超大集群中,LIST操作是个例外,大概需要花费几百毫秒)。 言语苍白,眼见为证,请看视频(译者注:需要翻墙,你懂的~):https://youtu.be/9C6YeyyUUmI 在上面的视频中,你看到在1000个节点规模的群集上,集群访问逐步增加到100K次查询(QPS),包括rolling update请求在内,而没有宕机、没有任何延迟。这种情况已经足以应付互联网排名前100位网站的访问量了。 在这篇博客,我们会介绍达到这样的成果我们所做的工作,并且讨论我们未来支持更大规模集群的计划。 测试方法 我们针对如下的服务等级目标来对kubernetes的可扩展性进行基准测试: ...
More