Kubernetes1.7两大新特性| 日志审计变化& PodDisruptionBudget控制器变化

timg
 ■ 文/ 天云软件 产品总监 马俊  日志审计变化 背景概念 出于安全方面的考虑,Kubernetes提供了日志审计记录,用来记录不同普通用户、管理员和系统中各个组件的日志信息。 Kubernetes日志审计是Kube-apiserver组件的一部分功能,通过日志审计来记录apiserver上面所有请求处理过程。每条审计日志记录包括两行: 1、请求行:唯一ID、源IP、请求用户、请求资源信息、模拟信息等。 2、响应行:唯一ID、相应信息代码。 通过唯一ID就可以识别出对应的请求行和响应行。 下面的例子就是admin用户查询default命名空间中POD信息的两行审计日志信息。 2017-03-21T03:57:09.106841886-04:00 AUDIT: id="c939d2a7-1c37-4ef1-b2f7-4ba9b1e43b53" ip="127.0.0.1" method="GET" user="admin" groups="\"system:masters\",\"system:authenticated\"" as="<...
More

vRA 7.3 环境扩展 (Part 3)

Multi-cloud-220x105
vRA 7.3 环境扩展 (Part 3) 作者 :Nikolay Nikolov 翻译:李崇民 之前我们尝试用精彩的vra-command工具来对vRA环境进行扩展。现在我们要深入研究可对vRA进行配置的REST API。也许你早已熟知vRA API,并已开始使用。当你打开浏览器并浏览https://you-vra-va:5480/config,就会看到一个非常友好的UI界面,里面列出了所有针对基础设施的修改选项。 当你单击某个命令时,甚至还可以直接对该命令进行测试。这会在当前VA环境中触发一个curl请求,并在同一页面上显示请求的结果。 这非常简洁!就像使用vra-command一样,可以按照你想要的方式来扩展vRA环境。 为了方便大家,在这里准备了一个Powershell脚本,可以执行所有的配置操作。脚本在文章的最后给出,可以使用的开关项如下: script-name.ps1 [install-webcert] [install-mgrcert] [install-vracert] [invite-cluster] [install-web] [in...
More

Openface在Kubernetes上的实践

人脸识别
 ■ 文/天云软件 研发工程师 陈雪锋 一、概述 本文介绍的是在Kubernetes中实现Openface的一个demo。Openface是一个基于dlib、OpenCV和深度卷积网络的开源应用。其源码和资料可以参考本文结尾处链接,在此不作赘述。 Openface进行人脸识别的过程如下图可以分为几个过程: 1. 鉴别人脸位置 检测人脸位置目前在各个相机、手机等照相应用中都有使用,会自动聚焦于人脸,Openface中使用的是dlib、OpenCV的人脸检测方法。 2. 提取特征向量,进行人脸“校准” 得到原始图像+人脸位置的输入,这一步就要检测人脸中的关键点,然后根据这些关键点对人脸做对齐校准。这些关键点包括眼睛大小位置、鼻子位置、嘴的位置等。然后提出这些特殊点进行校准,无论是在侧脸、低头或是仰视的角度,都能粗略地将眼睛和嘴巴集中到图片中的同一位置。 3. 深度卷积处理 这一步利用深度卷积网络将输入的人脸图像转成128*1的向量表示。这一步骤通常要重复几百万次,之后就可以为每一个人脸生成128个测量,对于同一个人的多张不同图片,它都能够给出基...
More

vRA 7.3 环境扩展 (Part 2)

Multi-cloud-220x105
作者:Nikolay Nikolov  翻译:李崇民 上一篇文章中 我们安装了一个分布式的vRA 7.3环境,其中每个角色都采用了单节点方式。 由于vRA是你的关键资产,当你必须要为vRA中的每个角色额外增加一个节点时,会希望系统服务中断的时间越少越好。 有几种实现方式可以达成这个目标,人们通常会选择其中最麻烦的一种,即使用VAMI(Virtual Appliance Management Infrastructure)和vRA套件的安装程序。其实还有其它选项,例如使用每一个vRA虚拟程序中都有的非常酷的vra-command工具。除了看起来酷以外,将这些安装任务自动化后,在云服务需要更高性能时,可以随时添加节点。 设备 我们从给环境增加一个虚拟设备开始。整个过程可能有一点奇怪,我们并不是真的增加一个新设备,而是将其加入当前节点代表的群集中。为方便说明,将我们上文安装过的节点命名为Node01,新节点命名为Node02,具体过程如下: 1、对新设备进行配置,包括IP地址,DNS等。 2、连上Node01的SSH。 3、取得Node02的VAMI证书,这样N...
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

vRA 7.3环境扩展 (Part 1)

Multi-cloud-220x105
作者:Nikolay Nikolov  翻译:李崇民 假设你是一个不喜欢浪费资源的人,你会在条件允许时乘坐公共交通或者电动车,你会对垃圾进行分类,只在必要时才购买新的登山装备,总是随手关掉浴室的灯,与此同时,你也确实喜欢虚拟基础设施所带来的可扩展特性。即便你只是喜欢“按需增长”这个概念,那么这篇博客也是适合你的。说句题外话,如果你还没开始这么做的话,你确实应该考虑乘坐公共交通并对垃圾进行分类。 基于高可用性(HA)的考虑,vRA的部署大多属于分布式部署。然而,在达到冗余需求的同时,这样的环境浪费了太多的资源,因为这些环境几乎很少会遇到性能不足的问题。如果你已经搭建了vRA,然后在某个时间点你了解到系统的真正需求只是很多的Windows虚拟机,各种各样的应用和外部数据库。这种情况下你其实并没有高可用性的需求,因为容灾方案其实已经覆盖了高可用的需求,或者你只是需要搭建一个概念验证(POC)系统,这时你完全可以从搭建“单节点分布式环境”开始起步。这是一个在vRA 参考环境中经过简化的配置图: 可以看到,我们只有一个节点来对应于每个角色(管理服务器,DEM和代理甚至合并在一个服务器...
More

Kubernetes1.7新特性:新增StorageOS卷插件和Local持久存储

timg
 ■ 文/ 天云软件 产品总监 马俊  背景介绍 在Kubernetes中卷的作用在于提供给POD存储,这些存储可以挂载到POD中的容器上,进而给容器提供存储。 从图中可以看到结构体PodSpec有个属性是Volumes,通过这个Volumes属性可以关联到结构体Volume和结构体VolumeSource,而且这个Volumes属性是一个数组类型,就是说POD可以关联到多个不同类型的卷上面。 结构体Container表示POD中的容器,这个结构体有一个属性VolumeMounts,通过这个属性让容器知道具体挂载的存储路径,这个VolumeMounts属性也是一个数组类型,就是说容器可以挂载多个存储路径。 在Kubernetes中还提供了一种持久化存储,持久化存储就是PersistentVolume,简称PV,PV是独立于Pod的生命周期单独存在的。 从图中可以看到kubernetes1.7中提供了两种新的PV插件,分别是StorageOS和Local。 新的卷插件 Kubernetes1.7现在一共支持27种卷插件,其中在Kubernetes1...
More

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

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

亚信AIF:大平台,小架构,轻应用

OLYMPUS DIGITAL CAMERA
  ■ 文/亚信软件 高级架构师 李春林 天云软件技术开放日沙龙分享已圆满落幕,接下来几天将陆续放出沙龙期间技术大牛们的干货分享现场实录及相关文件,敬请关注。此文为第3篇,由亚信软件高级架构师李春林给大家带来名为“亚信AIF:大平台,小架构,轻应用”的精彩分享,以下为演讲实录。     李春林:大家好,我来自亚信。我不知道大家在座有多少人了解亚信这个公司?亚信是90年代成立的,创建中国的骨干网ChinaNet,亚信应该算是互联网的先驱了,于2000年在纳斯达克上市。大家知道电信业的BOSS系统,国内有三大运营商,中国电信、中国移动、中国联通,我们给运营商提供BOSS系统。BOSS系统是一个极其复杂的系统,由非常多子系统组成,比如计费、CRM等等。我们是电信运营商的软件集成商、软件提供商。天云软件主要是做底层PAAS下层,我们平台架构AIF主要是PAAS上层,我来自AIF的架构部,我们做一些技术平台,更多是面向开发者的平台。 零几年,年纪稍微大一点用过apache的struts的朋友都知道,它是java界流行的比较早的MVC框架,主要是解决后端、界面、控制逻辑和业务逻辑分层的问...
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

企业级云管理平台的架构实现与落地实践、趋势分析

OLYMPUS DIGITAL CAMERA
 ■ 文/ 天云软件 产品总监 马俊  4月23日天云软件技术开放日已圆满落幕,接下来几天将陆续放出沙龙期间技术大牛们的干货分享现场实录及相关文件,敬请关注。此文为第一篇,由天云软件产品总监马俊带来的IaaS专题:企业级云管理平台的架构实现与落地实践、趋势分析,以下为演讲实录。 马俊:我给大家介绍一下云管平台,OpenStack现在比较流行,企业级客户IT架构在OpenStack上会有一个云管的平台,整个业界对云系统建设也都是怎么认识的。 我们看其实最下面有一个虚拟化的层,这里面有Vsphere、KVM、XenServer,然后在上面技术架构层上发生了变化,最开始从Vcenter逐渐发展成OpenStack,我们发现需要个云管平台,这个平台把底下的不同技术架构进行统一管理,整个业界也都是按照这个层次来进行IT系统建设。现在OpenStack比较流行的,企业用户上了OpenStack以后,在CMP上的需求就出来了,单单通过OpenStack或者vCenter这样的技术架构是不能解决用户在管理上的需求的。 我们看一下企业级云管理平台的架构,这是我们的架构,核心是CMDB和调度,...
More

专题四:分布式机器学习的集群方案介绍之HPC实现

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

专题二:分布式深度学习的两种集群管理与调度的实现方式简介

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

专题一:深度学习简介,GPU计算的原理,分布式机器学习原理

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

在100,000个核心集群上运行100万个作业

one_million_jobs1-150x150
 随着客户在更大的环境中部署OpenLava。可扩展性,吞吐量和性能变得越来越重要。为了满足这些领域的客户需求,OpenLava 提供了一些重要的增强功能: o  并行化作业事件处理以加速集群启动并最小化停机时间。 o   增强的守护进程间通信,提高效率和性能。 o   其他调整参数,为集群管理员提供其他工具,以提高性能,响应速度和可扩展性。 在发布OpenLava之前,天云软件使用HPC Cluster-as-a-Service在100,000个内核组成的集群上进行了大规模测试,这是我们迄今为止进行过的最大的测试。 测试的目的是证明: OpenLava可以管理大规模工作负载 - 1,000,000个作业跨越近100,000个内核。 OpenLava可以处理EDA(电子设计自动化)仿真环境(平均运行时间大约为4分钟)中常见的大型工作负载模式类型。 OpenLava可以快速调度作业并响应用户命令,即使在负载非常高的时段。 OpenLava可以大规模实施复杂的资源共享策略(例如,fairshare),以增加现实性。 OpenLava可以可靠地...
More

使用OpenLava运行MPI作业

timg
介绍 OpenLava是一个开源的,IBM Platform LSF工作量兼容管理器,可以安排串行和并行作业。MPI(消息传递接口)是高性能计算(HPC)应用中广泛使用的编程接口,用于并行化大规模问题的执行。有多个常用的MPI实现。本文档介绍如何使用OpenLava运行MPI应用程序。 大多数MPI实现支持与常用工作负载管理器的集成。在大多数情况下,这些集成使用工作负载管理器特定的远程任务启动器来启动和监视在集群主机上执行的MPI任务。此方法的主要目标是使工作负载管理器能够跟踪和控制组成MPI作业的进程。一些工作负载管理器,如IBM Platform LSF,使用这样的工具来跟踪MPI任务的CPU和内存使用。 在理想状态下,启动和管理MPI任务的过程将在所有工作负载管理器和MPI实现中保持一致。在实际情况中,事情并不是那么简单。考虑到创新的速度,流行的开源MPI实现(如OpenMPI)和不同版本的工作负载管理器的快速发布周期,HPC环境本质上很复杂,有许多移动部件,这对并行工作负载尤其如此。通过简化方法,使MPI作业在工作负载管理器的控制下可靠且可预测地运行,可以大大...
More

在OpenLava中探索Fairshare调度

timg
  分享的好处非常明显。无论我们是共享一杯苏打,公寓还是HPC集群,分享都可以降低我们的费用。 OpenLava 的功能之一是fairshare调度。对于不熟悉fairshare调度的用户,这个新特性指的是根据策略共享资源。如果一个集群花费了一百万美元,而部门A贡献了800,000美元,而部门B贡献了200,000,000美元,基于80/20(当有争用时)共享资源可能被认为是公平的。Fairshare不意味着“平等份额” - 但它的意思是根据政策分享,通常与现有资源成比例。A部门可能有不同级别的员工。如果我的首席科学家和实习生之间的资源冲突,我可能需要一些措施,以确保聪明的实习生不能垄断集群,留下我的首席科学家无所适从。同时我也想测试一下层次共享。 OpenLava获取Fairshare Fairshare调度在IBM Platform LSF中已存在多年,在OpenLava中,开源调度程序添加了此功能。为了演示共享场景,我将OpenLava设置如下: 首先,一个OpenLava配置文件中,我定义了两组用户。即我公司有工作人员和合作伙伴。我为他们各自设置一个...
More

在OpenLava中管理并行作业

parallel_lines_example-150x150
  Blaunch,并行作业远程任务启动器 HPC环境本质上是复杂的,这对并行工作负载而言尤其如此。若能使MPI作业在工作负载管理器的控制下可靠且可预测地运行,将大大有助于缓解一系列潜在问题,并使HPC环境更具可靠性。 在理想环境中,启动和管理MPI任务的过程将在所有工作负载管理器和MPI实现中保持一致。在现实环境中,事情并不总是那么简单。好消息是,在OpenLava中 运行和管理并行作业就简单多了。 超越无密码SSH 大多数MPI的实现,需要使用无密码SSH作为其远程主机上任务的启动机制。这是一个很好的解决方案,但调度外的任务调度器绕过资源计费和控制机制,使它们更难管理。任何有经验的集群管理员都会告诉你,只要一个命令就可以结束、挂起或恢复并行作业,而不是编写自定义脚本来处理作业调用失败或运行错误后仍在各种群集主机上运行的顽固或孤立线程。 Blaunch简介 新的OpenLava Blaunch工具提供了一个能够替代SSH作为启动并行应用程序的便捷方法。通过在Blaunch下运行并行作业,任务在OpenLava远程执行服务(RES)的控制下运行。通过Bl...
More

OpenLava——EDA的最佳支撑平台

u=4254361932,405576976&fm=23&gp=0
半导体设计制造生态系统 纵观国内外半导体设计制造生态系统,可大致分为四个部分: 以高通、联发科技、苹果、德州仪器等为代表的设计企业,其拥有或购买核心IP,借助设计工具完成半导体产品的设计。 以台积电、中芯国际等为代表的生产企业,其多为设计企业代工;当然,有些企业兼备设计与生产双重角色,如Intel、三星、华为等。 以cadence、synopsys、华大九天等为代表的EDA设计工具提供商,借助计算平台向设计企业和生产企业提供优秀的EDA工具。 以IBM、天云软件等为代表的计算平台提供商,提供IBM LSF、SkyForm OpenLava等计算平台,其产品或解决方案可与EDA工具捆绑,助力EDA工具效率的提升,加快上线速度,为设计和生产企业带来竞争力。   半导体设计制造流程 上图中: “1.规格设计”、“2.EDA设计工具(使用者)”是由半导体设计生产企业进行,比如高通、联发科技、苹果、华为、三星等; “2.EDA设计工具(提供者)”是由EDA工具厂商提供,比如c...
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

一种在Swarm集群中实现IP保持的方法

微信配图
■ 文/ 天云软件 系统架构师 李崇民 Docker在1.12版本中开始集成Swarmkit,本文研究在Swarmkit管理的集群中实现IP保持的方法。 Swarmkit简介 Swarmkit是Docker公司推出的Docker集群管理和容器编排工具,自Docker1.12版本,开始集成到Docker-engine里发布。Swarmkit是从Swarm项目发展而来。作为Docker自身的编排系统,可提供服务编排,集群管理和调度功能。 Swarmkit中节点分为两类 1. 工作节点 负责通过执行器运行任务。Swarmkit的默认执行器为Docker容器执行器(Docker Container Executor); 2. 管理节点 负责接收和响应用户的请求,将集群状态调节成最终状态。 图1 Swarm集群结构示意图 图1给出了Docker中Swarm集群的组织方式,集群中可包含多个manager节点,这些 manager选举一个节点作为leader节点。由leader节点负责整个集群的管理工作。如果该leader节点出现故障,剩余manager节点会重新选举...
More

SkyFormCMP和ECP助力运营商双模IT建设

e353cad06f177797bae6c81c980f5295
■ 文/ 天云软件 产品总监 马俊 双模IT介绍 双模IT的概念是Gartner在2014年提出的,之后便引起热议,双模IT指出了企业数据中心会同时存在两种不同的IT模式,一种是传统型模式,一种是探索型模式。 传统型模式:用传统的IT技术架构和服务来满足应用需求。 探索型模式:用创新的IT技术架构和服务来满足应用要求。   双模IT就是将传统型模式和探索型模式同时管理起来的实践方式。 举例来说,当传统企业数据中心引入虚拟化技术时,就会存在传统IT设备管理和虚拟机管理两种不同的管理模式,但是由于虚拟机管理同物理机管理很相似,所以在实践中其实大部分企业都按照传统IT设备管理的方式来管理虚拟机,这种企业其实还是单模IT。但是当企业数据中心引入容器、引入DevOps后,对应用、服务、集群、容器就无法按照传统IT设备管理方式来管理了,就需要采用新的管理方式,那么这个时候企业就变成了双模IT。 运营商现状 运营商经过多年的建设和优化,IT管理系统在端到端管理、基于大数据的运营分析、云环境下虚拟资源管控等方面的能力不断加...
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

9月24日企业级容器技术实践沙龙——刘春阳演讲实录

OLYMPUS DIGITAL CAMERA
(本文由现场速记并经刘春阳本人确认后整理而成) 大家好!我是来自于天云软件的刘春阳,我主要是负责我们公司容器化以及平台化产品的规划和设计。今天我主要跟大家分享一下在平台性的产品,特别是针对企业平台性的产品设计过程当中,可能会面临什么样的需求,面临什么样的问题。同时包括我们自己在面对这些问题时,采取的一些技术选型和思考。 我们先对这个标题做个语法断句。企业,应用容器化的,痛点、坑、和解决之道。开宗明义,我们是针对企业的。在企业这个背景下,构建平台性产品,就必须面对权利相关的东西,平台上多业务融合的东西。就像上一位讲师说的,在HOST模式情况下,怎么考虑端口的问题,就必须要考虑。下面我正式开始分享一下我们在这方面的思考。   这是我今天讲的内容,首先是技术背景和行业特性的介绍。基于这个背景,分析一下要做一款企业级的平台性产品的时候,需求来自于哪些方面,以及有一些什么样的原则。最后我们是我们的产品在设计过程当中的技术方面的选择和我们的思考。   第一个是技术背景。应该说这几年,云计算这个领域可以说是精彩纷呈,基本上每年都有1-2个技术的热点,云计算、大数据、容器。从去年开始容...
More

云计算应用技术发展与企业异构资源池统一管理案例分析

92228a2dc22255e81bb1ca33006d8cc5
■ 文/ 天云软件 高级实施架构师 高铭 大家好!今天分享一个私有云平台的实施和升级案例。 客户是一家研发公司,用户主要是公司的研发测试人员。 这个环境的特点一是虚拟机的生命周期较短。一般一个项目开始会申请一批虚拟机,随着研发测试结束虚拟机就会销毁,而且在使用中经常会有测试失败,虚拟机重建的情况。 特点二就是负载较集中,每逢月底或周末前会有一个业务高峰期,周末或节假日时间负载明显变小。 我们先来看看第一个版本的云架构: 上图中: 1. 用户新建了两个资源池,并且都采用CloudStack平台。 2. Hypervisor采用了VMware vSphere 和Linux KVM 两种。 3. 存储分别用到了本地存储和共享存储,共享存储VMware 使用iSCSI,KVM使用NFS。 当一期项目实施时,OpenStack还在测试阶段,但是CloudStack已经稳定上了生产,而且考虑到用户已经有了vSphere 虚拟化池,所以采用了CloudStack平台作为资源池。同时这个项目也是用户试点,客户提出要使用异构的虚拟化技术,所以之后又新加了一个KVM的POD。 存...
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

如何使用New Relic监控基于Docker的应用程序

0ad8b760ffee6b751b79ee7981f111df
■ 作者:Jarkko Laine ■ 译者:天云软件 刘宁 一、介绍 Docker是当前发展最快的新技术之一,它是一种部署软件和建立可伸缩网络服务架构的解决方案,Docker允许你按照特定的角色与用途将你的应用程序架构进行解耦并使用容器进行承载。通过使用Docker,你也可以在操作系统级别指定应用程序的依赖关系,让我们更接近JAVA最原始的承诺:“一次编写,随处运行”。 Docker的缺点是, 把代码封装到一组容器中可能会导致缺乏可见性:容器变成了黑盒子并使得开发人员对容器内部的工作方式几乎不可见。 为了解决这个问题,New Relic接手了此项任务并使得其服务器端的监控工具(服务器和APM)支持Docker。在2015年6月,所有的New Relic的用户均可通过New Relic实现对Docker的监控。 在宣布对Docker的支持以后,来自New Relic的Andrew Marshall写到:“现在,你可以从应用程序开始深入(这才是你最关心的),然后到个体的Docker容器,再到物理服务器,而不再有盲点”。 通过使用New Relic工具集监控基于Docke...
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

Docker应用的可视化监控管理

4b1fa8310c5a6aa52e6bb3e6431b918a
■ 文/ 天云软件 产品总监 马俊 本文介绍一个开源项目Weave Scope,项目地址是https://github.com/weaveworks/scope。Weave Scope这个项目会自动生成容器之间的关系图,方便理解容器之间的关系,也方便监控容器化和微服务化的应用。 首先,我们在一台机器上面安装docker,然后安装Weave Scope项目。 sudo wget -O /usr/local/bin/scope https://git.io/scope sudo chmod a+x /usr/local/bin/scope sudo scope launch 上面的脚本会从Docker Hub上面下载最新的Scope镜像,然后我们在web浏览器中输入http://ip:4040,我们就会看到下面所示页面。 在页面中可以按照进程视图、容器视图和主机视图进行呈现,并且可以进行查询。 如果选择的是容器视图,那么在左下角可以根据容器属性进行过滤,可以只显示系统容器,或者只显示应用容器,或者同时显示系统容器和应用容器,在左下角还可以根据容器状态进行过滤,可以只...
More

docker容器资源配额控制

fc76dda82a4d45b087f599a098fa99ca
■ 文/ 天云软件 容器技术团队 docker通过cgroup来控制容器使用的资源配额,包括CPU、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制。 cgroup简介 cgroup是Control Groups的缩写,是Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如 cpu、memory、磁盘IO等等) 的机制,被LXC、docker等很多项目用于实现进程资源控制。cgroup将任意进程进行分组化管理的 Linux 内核功能。cgroup本身是提供将进程进行分组化管理的功能和接口的基础结构,I/O 或内存的分配控制等具体的资源管理功能是通过这个功能来实现的。这些具体的资源管理功能称为cgroup子系统,有以下几大子系统实现: blkio:设置限制每个块设备的输入输出控制。例如:磁盘,光盘以及usb等等。 cpu:使用调度程序为cgroup任务提供cpu的访问。 cpuacct:产生cgroup任务的cpu资源报告。 cpuset:如果是多核心的cpu,这个子系统会为cgroup任务分配单独的cpu和内存。 dev...
More

传统企业PaaS平台功能设计与业务上云思考

14042211207001
■ 文/ 天云软件 技术总监 牛继宾 伴随着Docker技术的兴起,以及容器集群管理平台Mesos、Kubernetes、Swarm、Rancher等的大行其道,仿佛PaaS平台及其相关技术一下进入了黄金时期,各种各样的技术组合,各种各样的技术验证,以及伴随着容器相关的创业公司布道,仿佛只要有了PaaS平台及其相关的技术,就能解决一切的企业IT问题。但是,企业IT,尤其是非互联网传统企业,PaaS平台的构建与业务上云是一个长期的过程,绝不是一个Docker+kubernetes/Mesos/Swarm构建完以后就能完成的,IaaS年代是这样,PaaS年代也是这样。 在互联网公司或者自研发型的应用,开发环境与部署运行环境非常的类似,这也是Docker或者容器相关技术在应用上的一个很大的优势(比如构建开发、测试、部署的DevOps流水线),但是在传统企业便不一定能行得通,比如某个企业的IT应用开发维护是外包的,标准软件需要采购、应用开发需要在应用开发商完成、硬件是另外的硬件提供商,到货后需要硬件系统集成、标准软件部署、应用开发部署调试,需要很多供货商来完成,往往以项目经理统筹完成,很难...
More

从源码看Docker Registry v2中的Token认证实现机制

token00
■ 文/ 天云软件 容器技术团队 概述 Docker Registry v2在认证方面提供了基于Token的认证方式,允许用户使用自己的认证服务来进行认证,这就使得在企业内部利用现有的认证系统来实现对访问Docker Registry的用户进行认证成为可能。那么该如何使用企业内部已有的认证系统来实现Token认证,本文将从阅读源码的角度来对Token认证的实现过程进行说明。本次分析的Docker Registry版本号:v2.4.0。 认证流程 我们以在命令行中输入docker login https://reg.skycloud.com为例来看一下认证流程: docker client接受用户的输入命令,将命令转化为调用engine-api的RegistryLogin方法; 在api的RegistryLogin方法中通过http调用registry中的auth方法; 在auth方法中由于是v2版本的,所以会调用loginV2方法; 在loginv2方法中会进行调用/v2/接口,该接口会对请求进行认证。,此时的请求中并没有包含token信息,认证...
More

Docker 1.11 daemon模块新特性

docker logo
■ 文/ 天云软件 马俊 本次分析的Docker版本号:v1.11.0。 我们来看daemon模块,daemon模块核心的结构体是Daemon,同v1.10.0相比增加了containerd和defaultIsolation两个变量,删除了execDriver变量。 type Daemon struct {        ID                      string        repository                string        containers                container.Store        execCommands           *exec.Store        referenceStore            reference.Store        downloadManager           *xfer.LayerDownloadManager        uploadManager             *xfer.LayerUploadManager...
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

SkyForm CMP管理异构资源池案例

屏幕快照 2016-05-24 上午11.27.48
■ 文/ 天云软件 售后实施工程师 高铭 高铭现主要负责SkyForm CMP的实施与运维工作,对CloudStack、OpenStack、VMware vSphere、KVM有较多生产环境实际实施部署经验。 本文介绍SkyForm CMP在天云软件某客户(代称“A公司”)管理异构的多资源池的实际应用场景。 A公司共三类资源池,由于历史原因,资源池的类型跨度较大。虚拟化软件方面,有VMware vSphere、Ubuntu 12(KVM)、CentOS 7.0(KVM)等;存储方面,当前支撑业务的存储类型有本地存储(raid)、分布式存储(ceph)、IP-SAN(iscsi);网络方面,由于资源池和虚拟机所属用户以及安全等级不同,划分了管理网络、存储专网、研发测试网、MIS专网等。 资源池 虚拟化 存储 VMware资源池 VMware vSphere 5.1 本地存储 iscsi OpenStack社区版 Ubuntu 12 本地存储 ceph iscsi(emc vnx) OpenStack商用版...
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

docker容器网络通信原理分析

docker logo
■ 文/ 天云软件 云平台开发工程师 冯建建 冯建建现主要负责天云软件SkyForm CMP的设计和开发工作,熟悉CloudStack,OpenStack等开源云平台软件,同时对docker有一定研究积累和经验。 概述 自从docker容器出现以来,容器的网络通信就一直是大家关注的焦点,也是生产环境的迫切需求。而容器的网络通信又可以分为两大方面:单主机容器上的相互通信和跨主机的容器相互通信。而本文将分别针对这两方面,对容器的通信原理进行简单的分析,帮助大家更好地使用docker。 docker单主机容器通信 基于对net namespace的控制,docker可以为在容器创建隔离的网络环境,在隔离的网络环境下,容器具有完全独立的网络栈,与宿主机隔离,也可以使容器共享主机或者其他容器的网络命名空间,基本可以满足开发者在各种场景下的需要。按docker官方的说法,docker容器的网络有五种模式: bridge:docker默认的网络模式,为容器创建独立的网络命名空间,容器具有独立的网卡等所有单独的网络栈,是最常用的使用方式。 host:直接使用容器宿...
More

SkyForm CMP同Mirantis OpenStack兼容测试

mos00
■ 文/ 天云软件 QA工程师 王秀菊 王秀菊现主要负责天云软件SkyForm系列产品QA质量保证工作,曾经参与过SkyForm CMP v3.1的QA工作,有丰富的云底层平台经验;从事过VMware和Citrix系列产品的QA工作,对vSphere虚拟化技术有着丰富的经验;当前主要关注Mirantis OpenStack及EasyStack的产品和技术。 SkyForm CMP介绍 SkyForm CMP是一个企业级的云管理平台,向下对接企业传统IT资源和云资源池,向上为系统管理员提供all-in-one的IT资源管理能力,为最终用户提供云服务交付。SkyForm CMP集成了vSphere、OpenStack、Cloudstack和x86物理机,扫清了企业使用云计算的“最后一公里”障碍,实现多数据中心、多资源池的异构混合云的统一管理。 SkyForm兼容MOS案例介绍 MOS部署方案 Mirantis OpenStack (MOS)是一款提供开源云基础架构解决方案OpenStack的订阅部署服务的产品,能够部署集群式(HA) OpenStack环境。当然,针对于...
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