SkyForm AI云智慧教育应用PaaS一体机解决方案

拼字游戏
产品介绍 SkyForm AI云是基于Kubernetes和Docker技术的分布式AI云管理平台。它集成了丰富的企业级特性,包括:用户、权限管理控制,底层GPU资源调度和管理,镜像、应用和容器的全生命周期管理,服务的编排调度,全链路的运维监控和日志分析等,内置开箱即用的AI算法开发与运行环境,为AI应用提供从开发到交付全流程服务。 客户需求 利用人工智能技术加快推动人才培养模式、教学方法改革,是构建新型教育体系的基本需求。同时国家积极倡导开展智能校园建设,推动人工智能在教学、管理、资源建设等全流程应用。建立以学习者为中心的教育环境,提供精准推送的教育服务,实现日常教育和终身教育定制化已经成为未来教育发展的突破口。因此,智慧教育应用将会成为下一个爆发性增长的风口,然而当前AI应用的研发和部署的门槛依旧较高,为了加速产品交付和运维效率以快速响应日新月异的市场需求,这就需要专业的AI PaaS应用基础平台作支撑。 方案设计 天云软件SkyForm AI云平台的软实力和天地超云一体机的硬实力完美地进行优势互补、无缝结合,从而打造智慧教育云一体机解决方案,助力教育行业...
More

云计算时代催生下一代网络变革-软件定义的网络之集成应用篇

封面2
■ 文/ 天云软件 任曙光 本文将对SDN与云平台集成方案、主流应用场景进行进一步讨论以及典型应用案例的分享。 在云计算环境中,最核心的几个特点:资源池化、按需分配、弹性伸缩、自助服务。因此SDN是云化网络资源的必由之路。对于云平台与SDN的集成可以利用SDN控制器的北向接口API进行对接,若云平台网络是基于OpenStack-Neutron,则众多厂商已经开发/开源了与之对接的插件,可以作为多种异构SDN产品统一网路适配平台。 OpenStack-Neutron 与 SDN Neutron是OpenStack生态中必不可少的虚拟化网络解决方案,那么它到底属不属于SDN,我们可以对照前文(基础篇)对SDN的定义评判一下: Neutron网络由Neutron Server集中式控制; 对网络可编程; 提供统一开放的网络操作API。 除了没有看到关于控制平面与转发平面之类术语之外,似乎都满足SDN的定义。其实Neutron通过易扩展的开放的插件式架构可以集成其他SDN控制器来完全地满足SDN的要求。 Neutron的架构 图1. Op...
More

由设计实现认识AngularJS

AJS-cover
■ 文/ 天云软件 杨明翔 在谈论前端的框架、技术之前,先提一下设计模式。每个框架不是代码的累加,而是有一套贯穿灵魂的思想。之前初步学习Angular框架时是由项目入手,却没有完整化的学习其中的很多设计思想、实现原理,碎片化的知识积累反而延缓了前进的步伐,一路走来磕磕绊绊。今天就从设计原理、实现原理方面认识一下AngularJS的几大特征。 一、MVC模式 AngularJS是典型的MVC(model-view-controller)架构的衍生。在前端中,我们可以简单的理解为: V-View,视图层,一般是我们的html文件层,用于展示数据内容。 C-Controller,控制器,帮助将M层数据给V,或者当View层数据有所改变时通知M层,M层数据也做相应的改变。 M-Model,模型,当我们需要使用到数据的时候,数据暂存在这里。如var vmData={name:’vm-2018’},或者从数据库中取出数据之后,将数据赋给一个对象或者变量,都可以理解为数据模型。 传统MVC 在AngularJS的MVC中,Model作为控制器与...
More

云计算时代催生下一代网络变革-软件定义的网络之技术架构篇

封面2
■ 文/ 天云软件 任曙光 我们在基础篇中对SDN的基础概念、核心思想以及市场现状都进行简单地阐述,在本文中将就技术实现方面深入展开讨论。 在ONF于2016年发布的《SDN Architecture Issue 1.1》白皮书中,给出了最新的SDN架构,如下图所示: 图1. SDN架构 SDN自上而下分为三层:应用层、控制器、转发平面,控制器开放标准的南向接口、北向接口进行应用的开发和设备的接入。由上图可见SDN主要研究重点是控制器组件,控制器的核心功能是将底层的资源进行编排和功能的虚拟化(Orachestration & Vritualization)来满足上层应用的请求。 A-CPI:即Application-Controller Plane Interface,控制器通过A-CPI北向接口对网络应用或者更高层次的控制器暴露网络服务和资源; D-CPI:即Data-Controller Plane Interface,控制器通过D-CPI南向接口对数据转发设备提供的服务和资源进行控制、管理和消费; Resource:代表任何可用于...
More

云计算时代催生下一代网络变革-软件定义的网络之基础介绍篇

封面2
■ 文/ 天云软件 任曙光 背景 在云计算改造传统IT的步伐下,传统的IT架构一一被颠覆重构,网络也不例外,传统网络设备必须单独一个个进行手动配置,对于云计算环境中快速变化的需求,极大地受软件配置、交付和管理方式的限制。同时传统模式的网络设备业态几乎被寡头垄断,但随着5G、IoT、云计算等新业务、新运营模式的兴起,互联网流量呈爆炸式增长,传统网络厂商的创新能力已严重不能满足当前日新月异的业务需求。SDN(Software Defined Network:软件定义的网络)应运而生,成为下一代计算机网络变革的主要推手。 什么是SDN? 开放网络基金组织(ONF)对SDN的定义为:”Thephysical separation of the network control plane from the forwarding plane, andwhere a control plane controls several devices.“ Figure 1:SDN标准模型 SDN的历史背景 SDN的概念最初是由美国斯坦福大学的Clean Slat...
More

OpenStack云计算与HPC之一: 前言和OpenStack与HPC虚拟化

openstack
 ■ 译/ 天云软件 王艳东此篇文章翻译编辑自OpenStack全球悉尼峰会《Crossroad of Cloud and HPC》。 一、前言 OpenStack®是领先的开源云计算IaaS平台,助力世界上许多非常著名的科学研究机构。令人惊讶的是,科学研究学科包含了一些最流行的OpenStack云应用案例,面对科学研究计算IT基础设施的挑战,OpenStack提供了令人信服的解决方案。 在科学研究工作中,高性能计算(HPC)和高吞吐量计算(HTC)工作负载要求大规模扩展能力和集群网络:大量的存储、高性能的计算和高速的网络,并且作业和基础设施需要具备可管理性。OpenStack开发社区正在迅速扩展服务以支持这些需求。通过OpenStack私有云管理资源,研究人员能够在满足业务需求的IT环境中工作。软件定义的基础设施具有动态性、自动化的特性,减少了浪费在安装和配置过程中的时间,使研究人员能够最大限度地投入到研发工作上。 本文旨在介绍高性能计算系统架构师和研究计算经理,他们通过探索云计算的优势为HPC工作带来好处,也可以被当前的OpenStack用户用来深入研究OpenSt...
More

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

浅谈Grafana在SkyForm CMP 5中的运用

PS-3
■ 文/ 天云软件 刘苇 前言 监控系统是SkyForm CMP 5中重要的组成部分,而要对成千上万的虚拟机和主机进行多种维度的监控,必将产生海量的监控指标数据。如果要将这些海量数据在前端采用JS图表插件来展示出图,会产生查询性能慢,定制性差,开发成本大,开发耗时等等各种问题。 为了解决以上问题,SkyForm CMP 5使用了Grafana来作为仪表盘和报表工具的开发。 Grafana介绍 Grafana到底是什么呢? Grafana是一个自定义报表、显示图表开源仪表盘工具,它可支持使用多种数据源(比如Elasticsearch、Collectd、Zabbix、MySql等等)。它具有功能齐全的度量仪表盘和图形编辑器,灵活丰富的图形化选择项帮助用户简单快捷的创建仪表板,并提供目标解析器,来降低度量和函数编辑的难度。 下面我们来简单介绍一下Grafana的一些强大功能: 1、丰富的绘图配置功能 作为一个数据可视化工具最重要的当然是要有强大的绘图功能 点击、选择区域进行时间轴的zoom in及zoom out 方便快速选择时间区间 支...
More

浅谈vSphere高可用性

vsphere方形
■ 文/ 天云软件 吴亚松 vSphere 高可用性自发布以来就备受企业用户关注,它具有易操作,低成本,高可用的优点。也不像传统的应用集群技术,需要提供额外的备用硬盘或分层软件。企业可以低成本的利用VMware这特性为服务提供连续性,避免长时间宕机而造成不必要的损失。 谈及HA,这里介绍下vSphere的两大核心组件:ESXi和vCenter Server。 ESXi ESXi就是Hypervisor,类似操作系统,直接安装在裸设备上,可以实现虚拟化核心功能的软件,实现一台物理机上可并发运行多个操作系统。 vCenter Server 现实生产环境中,通常有很多台ESXi主机,而vCenter Server可以将众多的ESXi主机组成集群进行统一管理,避免了不同ESXi主机间来回切换的麻烦。与ESXi不同之处在于,vCenter Server有两个版本:window版本和Linux appliance版本(区别后面介绍)。 集群 谈及到vSphere高可用性,这里需要熟悉vSphere中集群的概念。在vSphere中,vCenter Se...
More

揭秘SkyForm CMP 5.0:微服务应用开发框架之SkyStack

网站封面
■ 文/ 张富生 前言 在过去的十余年里面,软件开发行业逐渐分成了两个领域,一部分是企业应用开发,为客户开发,软件要安装到企业客户自己的资源上,客户负责运维(或者通过技术支持),一部分是互联网软件,为自己开发,自己开发并运维一套软件通过网络给最终用户使用。同时,这两个领域使用的技术栈也逐渐分化,前者主要关注功能实现,标准化,易安装,易运维,后者主要关注高并发,高可用,高性能及纵向伸缩性等。 随着微服务概念的提出,这两个领域似乎又形成了一个合流,都在微服务化。这里体现在: 由于SaaS 的兴起,使得一些企业应用厂商也开始采用互联网模式,遇到用户规模的问题。同时企业应用很难纯 SaaS 化,面对大客户的时候,势必面临私有部署的问题,所以必须探索一种既能支撑用户规模,同时要能方便私有化部署的架构。为了解决这些问题,我们在即将发布的SkyForm CMP5.0产品开发上使用了微服务应用架构。 微服务介绍 微服务出现之前,有很大一部分开发商都采用单体应用开发方式,我们先看一下微服务架构和传统开发中的单体应用架构的区别。 1.微服务与单体应用的区别 单体应用特点:代码完...
More

利用Jenkins生成maven项目镜像及容器

fengmian
导读:本文根据天云软件研发工程师12月28日在DockOne技术社区的分享整理而成,文章结尾处有社区问答具体内容。以下是分享详情: 一、Jenkins是什么? 目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。它是一种实践,旨在缓和和稳固软件的构建过程。并且能够帮助您的开发团队应对如下挑战: 软件构建自动化:配置完成后,CI系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进行构建。 构建可持续的自动化检查:CI系统能持续地获取新增或修改后签入的源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI系统会不断确认这些新代码是否破坏了原有软件的成功构建。这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费的时间和精力。 构建可持续的自动化测试:构建检查的扩展部分,构建后执行预先制定的一套测试规则,完成后触发通知(Email,RSS等等)给相关的当事人。 生成后后续过程的自动化:当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包...
More

Kata Containers介绍

介绍
■ 文/ 天云软件 储启明 美国东部时间12月5日早上8点,OpenStack基金会于KubeCon峰会正式发布基于Apache 2.0协议的容器技术Kata Containers项目(https://katacontainers.io)。Kata Containers是一个Novel实现的轻量虚拟机,可以无缝地与容器生态系统进行集成。Kata Containers 项目的主要目标是将虚拟化的安全隔离优势和容器的快速启动特点结合起来。 Intel Clear Container聚焦在性能(<100ms启动时间)和安全上的提升,而Hyper runV优势在支持多种不同的CPU架构和虚拟化解决方案。Kata Containers项目通过整合Intel Clear Containers和Hyper runV技术,能够支持不同平台的硬件,并且兼容Open Container Initiative(OCI)和Kubernetes container runtime interface(CRI)接口规范。通过整合两个项目,Kata Containers同时具备了性能和兼容性的双重优势...
More

SkyForm ECP前端技术点浅谈

封面
■ 文/ 天云软件 前端工程师  杨明翔 导读:SkyForm ECP是由天云软件自主开发的一套开放的、基于容器技术的应用集群管理平台。它内置了丰富的容器镜像及通用中间件基础服务,结合强大的应用编排功能,可以帮助企业在已有的IT基础架构之上快速构建出大规模具有弹性的应用系统。 一.WebSocket网络协议 前段时间笔者在SkyForm ECP产品的开发过程中,需要做一个Web端的Linux控制台功能。结合后端同事的建议,采用了WebSocket网络协议来辅助完成这个功能。在这里先简单介绍一下WebSocket网络协议: 1、简介 WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。 2、背景 长久以来, 创建实现客户端和用户端之间双工通讯的web app都会造成HTTP轮询的滥用: 客户端向主机不断发送不同的HTTP呼叫来进行询问。这会导致一系列的问题: 服务器被迫为每个客户端使用许多不同的底层TCP连接:一个用于向客户端发送信息,其它用于接收每...
More

Case Study:广东省某电子政务云

222
■ 文/ 天云软件 运维工程师  于凯伦 导语:近日,天云软件成功中标广东省某电子政务云建设项目。为更加直观地帮助大家理解电子政务云,本文就该项目的背景、目标、方案、收益做出全面分析。 电子政务是国家实施政府职能转变,提高政府管理水平、公共服务水平和应急能力的重要举措,更有利于带动整个国民经济和社会信息化的发展。广东省某政府机构意识到向电子政务转变的重要性,在经过长期对比和筛选后,最终携手拥有众多成功案例的天云软件开启电子政务云之旅。 一、现状分析: 政务服务平台日益庞大的系统和复杂化导致设备忙闲不均,造成资源浪费。资源利用率低下,资源协调调度困难。 信息不能共享,政务服务平台难以发挥资源整合作用。 运营运维管理日趋复杂,运维水平普遍较低,占用了企业大量的时间和精力,花费大量的人力资源成本。 为了打破这些现状,探索建立“互联网+政务服务”工作模式,广东省某政府机构全面实施电子政务工程,打造开放、互动、共享、创新的信息化生态圈,以更好的提升行政效率,进一步降低行政成本,更好的发挥社会管理职能。 为更好的实现“智慧政务”,围绕电子政务工程的顶层架构规...
More

客户案例 | 某运营商应用大数据云智能监控平台

c12c1d71e35bffcd5eeab0b3f89bc22b
■ 文/天云软件 运维工程师 于凯伦 项目背景 大数据是信息技术与专业技术、信息技术产业与各行业领域紧密融合的典型领域,有着旺盛的应用需求、广阔的应用前景。广东GDP多年蝉联全国第一,某运营商广东省分公司为提高其在通信行业的地位,节省重复的功能开发成本,提高对业务的监控能力,减轻在运维方面的负担,同时把握这一新兴领域带来的机遇。通过建立大数据智能云监控平台,不断跟踪研究大数据、坚持技术创新与应用创新的协同共进,加快各领域对大数据监控平台的开发与利用,推动大数据的应用进入新的腾飞阶段。 项目痛点 目前市面上一般的监控平台,基本处理逻辑是基于个人经验设定阀值,当监控的指标达到或超过阀值后产生报警。主要存在以下的问题: 1、当前的云监控平台多数采用分散部署,多层次分级部署可以减轻服务端压力,但是会增加运维人员在部署和维护方面的困难。 2、采用分散处理,针对不同的数据源,开发独立的程序进行部署和解析,容易造成开发、运维以及升级扩展的困难。 3、基本采用批量设置静态阀值。阀值不合理,大面积虚假报警,同时不能反映动态真实环境,对所产生的报警,以及各报警之间的依...
More

SkyForm CMP产品UI模块化实践

UI02
■ 文/ 天云软件 前端工程师  王培培 一、概述 SkyForm CMP是一个开放、中立的企业级云管理平台,sf-ui是针对它的UI框架。早期的UI框架中使用jquery+bootstrap进行开发,以每个菜单为编码单位进行代码上的隔离,方便了任务的分配,但同时也造成框架配置项激增,页面风格不够统一。由于每个人只负责自己的菜单项,导致每个人都不想接手其它人的代码,框架的后期维护越发困难。 为了解决这些问题、优化项目,在后台采用了微服务模式进行开发后,通过查阅资料,决定采用模块化的思想对sf-ui框架进行重构,减少配置项、统一风格,减轻工程师重复编码的工作和项目的维护成本。 为了解决以上提到的问题,这里对新的UI框架sf-ui进行了以下思考: 1、选用angularjs+bootstrap进行编码开发。选用angularjs是因为它是纯客户端技术,本身封装了一些低级操作,包括:DOM操作、事件监听、输入验证等,能让开发者更多地关注业务逻辑,同时angularjs还提供了数据与视图的双向绑定、依赖注入等技术。这些都极大地方便了前端实现模块化开发,前端的模块划分从菜单转变成业...
More

在SkyForm ECP上运行深度学习框架

timg
■ 文/ 天云软件  张伟、马巍娜 深度学习框架简介 近两年随着AlphGo的走红,深度学习技术已然成为最流行技术中的佼佼者,各种开源的深度学习框架也层出不穷,其中Tensorflow、MXNet和Caffe等凭借易部署、易上手、灵活性高等特点大大降低了深度学习技术的入门门槛。 Tensorflow、MXNet和Caffe的简单对比如下表: 随着训练任务的复杂度不断提高,训练数据的规模不断扩大,深度学习框架的集群方案受到用户越来越多的关注。在大规模的集群环境下,对所有的机器、任务等进行管理是一项繁琐的工作,尤其是TensorFlow,每次启动任务必须登录到每台机器上执行启动命令,这种使用方式尤为不便。容器集群技术为简化这些工作提供了新的思路。 SkyForm ECP简介 SkyForm ECP是一个开放的、基于容器技术的应用集群管理平台。SkyForm ECP内置丰富的容器镜像及通用中间件基础服务,结合强大的应用编排功能,可以帮助企业在已有的IT基础架构之上快速构建出大规模具有弹性的应用系统,提高业务效率,降低IT成本,从繁杂的基础架构管理中...
More

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

SkyForm Cube—EDA的最佳支撑平台

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