欢迎来到数人云客户系统

    有问题你可以提交一个工单让我们来处理,并和服务人员协作解决工单问题。后期可以查看我们的帮助文档知识库,或参与社区讨论。

帮助支持

公告与新闻

  • 关于数人科技的报道

    36氪:Docker + Mesos: 数人科技让私有集群编排更简单

    容器技术大会 数人科技分享Mesos容器云实践

    基于Mesos和Docker的分布式计算平台(王璞)

    数人科技王璞:Mesos是云计算下一个热点,云运维与PaaS有刚需

    MesosCon 总结 | 苹果、彭博、Netflix的Mesos使用经验分享

    闲谈集群管理模式

    容器化,这就是我们想要的未来

    基于Mesos和Docker的分布式计算平台(王璞)


    查看详细页面
  • 数人云(Omega Cloud )

        数人云是一款是以分布式技术为基础的云操作系统。其采用了 Mesos 分布式计算框架,Docker 容器等最新技术,将底层资源进行统一管理、动态调度。为用户实现了一个高性能,高可靠,易使用的分布式云生产环境。

    通过使用数人云操作系统,用户能够像用一台服务器一样使用整个集群,并可以通过 web 界面就完成绝大部分的运维管理工作。与虚拟机技术提供的“硬件虚拟化”相类比,数人云进行了“操作系统虚拟化”。这样数人云用户就可以专注在其自身业务的开发和运营,而无需花费大量精力进行基础环境运维。

    001559fbb4962649eb7292dbc620f07

    弹性的云生产环境——支持业务无限增长

    数人云操作系统可以管理任意规模的应用。数人云是通过将应用层与资源层解耦,动态调度和分配资源来实现整个集群的弹性缩放功能。不管是10还是10000台服务器,数人云都可以在整个集群轻松实现弹性扩展。从而轻松应对业务的爆发式增长。

    应用层弹性

    • 将应用部署在负载均衡器后,根据实时的需求变化,自动调整应用实例数量。

    • 一键部署应用实例到整个集群。只需要几分钟或几秒钟。

    资源层弹性

    当你的业务增长或有新业务要上线时,我们可以很容易的将新的资源添加到整个集群资源池中。

    • 扩展计算资源:将数人云节点安装到新的服务器或虚拟机,并连上网络。数人云会自动发现这些新的资源,并将其添加到整个集群中。

    • 自动弹性缩放:数人云可以通过云服务商的 API 接口按需自动扩展或收缩集群规模,以应对爆发式增长。

    001559fbb4d0b36e58de6f531a741ea

    “高可用” 服务器会宕机,但业务不会掉线

    当您开启高可用服务后,数人云会自动为宕机服务器上运行的节点重新分配资源,保障业务不掉线,高可靠运行。这也就意味着您不用再为一两台服务器的宕机,而经历一个不眠之夜。

    提升资源利用率

    传统的数据中心或云的资源利用率只有个位数。数人云可以将不同应用自动混合部署到整个集群,不受单个服务器边界限制,明显提升了资源利用率。根据大规模使用分布式操作系统的用户提供的数据(例如腾讯和谷歌),一般说来整体利用率可以提升到60-90%。

    易管理

    数人云拥有极高的易用性。在此之前,管理分布式应用,或监控数十台,上千台服务器的运行情况是一件很困难的事情。数人云强大的命令行工具和控制面板,让这一切都变得容易起来。 最重要的是集群扩展变地十分容易,只需要简单地添加底层服务器资源即可。集群的管理复杂度不会随着规模扩展而明显增加。

    “易部署” 一次开发,到处运行

    数人云使用 Docker 容器技术封装应用。通过将应用,依赖关系,配置信息打包在一起,Docker 封装的应用拥有了极高的可移植性。这样就使得用户不需要重写代码,就可以在公有云,私有云或混合云上部署和管理应用。

    此外,无论集群大小,对于您而言其逻辑上是一台机器,应用的部署、运行和监控如同在单机进行。可以方便开发者进行持续交付,推进产品迅速迭代优化。使用数人云后,应用迭代更新的速度可以提高7倍以上。


    查看详细页面
  • 试用数人云指南

    数人云是一个高性能的分布式操作系统,目的在云计算环境下向用户提供一个高性能、高可靠和易管理的应用运行环境。它既可以部署在用户租用的公有云上,也可以部署在私有云或者传统物理机上。数人云将整个集群服务器的计算和内存资源统一管理,能够让用户像管理一台机器一样管理所有的的服务器,数人云负责动态调度下层资源,大大简化了管理工作。数人云作为一个分布式系统,技术栈主要包括了Mesos和Docker,需要安装如下的组件:

    • Mesos,负责集群运算和存储资源的动态调度

    • Marathon,负责应用的发布和管理

    • Bamboo和HAProxy,负责服务发现

    • Chronos,负责定时任务

    001559fbb0f0d3f1837bb30f8f1af8e

    公有云部署

    试用数人云非常简单。如果您希望在公有云上进行试用,可以在公有云的服务市场直接使用数人云构建的镜像,例如

    其他公有云正在陆续接入中。如果您有急切需求,请联系我们 info@shurenyun.com


    线上试用数人云管理和发布应用


    请访问www.shurenyun.com注册试用,用户手册中详细介绍了如何发布应用,有问题可以联系我们 info@shurenyun.com

    使用 Docker 来打包应用

    如果您想将您的应用发布到 Mesos 集群中,你需要掌握使用 Docker 来封装应用的基本知识。Docker的安装和配置请参考如下资料,目前需求的Docker版本请参照软硬件环境列表。

    建议熟悉 Docker 的基本使用方法,包括:

    • Dockerfile的编写

    • Docker网络配置有关知识

    • Docker Registry的使用

    • 如何自己制作和上传镜像


    查看详细页面

使用说明

FAQ

  • SUSE如何能够支持docker?

    SUSE 12 已经商业支持Docker,SUSE 11需要用户自行安装Docker。

    查看详细页面
  • Docker与虚拟机有什么区别?

    从 Docker使用的认知来说,我们现在看到有一个趋势,就是把Docker当做虚拟机在宣传和使用,包括社区也在做一些类似“Docker热迁移”这样的 工作,我们认为这是对Docker理念的误读。在我们的使用实践中,我们可以感受到虽然理论上虚拟化和Docker都是一种“资源隔离”的技术,但虚拟化 主要的关注点是在资源角度,主要关注底层物理资源的隔离,主要目的是向上层应用提供已经完成资源隔离的虚拟机;Docker的关注点在应用角度,主要目的 是为应用提高一个与其它应用不冲突的“沙箱”,使得多个应用可以在同一台机器上互不冲突的运行,资源隔离只是Docker的手段而不是其目标。所以对 Docker的使用和管理应该是应用角度的。从流程上来说,使用虚拟机从流程上来说是申请一台虚拟机。而使用Docker,从流程上来说可能是申请一个应用部署操作。

    查看详细页面
  • 为什么我的多master集群在首页看到的CPU资源与实际不符

    多master的集群中master是不包括在集群可用资源的,只作为管理、控制资源,而监控数据显示的是集群中可以去部署应用的总CPU数,因此,这个数据只包括集群中slave的CPU。

    查看详细页面
  • 数人云对硬件、网络有什么要求?

    数人云产品依托于Docker,并且会安装数人云Agent来管理主机,因此推荐物理配置如下:  

     x86架构的物理机 or vm

    • CPU >= 2 核

    • MEM >= 4 GB

    • Disk >= 50 GB

     Network

    • 内网 >= 100 Mb

    • 外网 >= 2 Mb


    查看详细页面
  • 数人云如何实现应用横向扩展?(我的物理机够用,只是遇到突发情

    扩展有两个层面,一是资源层面,如果是物理机的话扩展是比较慢的,但通过数人云仍然可以快速将新增的机器加到集群里;二是应用层面,可以通过增减应用实例来实现承载能力的弹性伸缩。


    查看详细页面
  • 数人云适用于哪些应用场景?

    数人云现在的应用场景主要在两大方面:

    • 有横向扩展需求,业务增长、高并发这样的需求的互联网业务,

    • 大数据业务,多种分布式计算框架混用。

    作为企业级应用,数人云还包括各种支撑系统,日志、api、多租户、混合云集群等等。





    查看详细页面
  • Docker的安全性如何?

    我们对 Docker 安全的看法: Docker 不同于 VM,其本质是进程级别的隔离,隔离性及安全性明显弱于vm。同时随着Docker社区的发展,Docker 的安全机制已经日臻完善,这个我们可以从关于Docker安全的文章博客的发布时间上看出端倪:

    • 13-14年的Docker初期,大家对Docker安全的讨论特别多

    • 从15年开始,随着社区对Docker安全的加强,大家已经把更多的精力放在了Docker的容器编排上

    显 然 Docker 本身不适合公有的多租户隔离,但是 Docker 的隔离及安全性用作企业内部的私有云隔离绰绰有余。同时,我们可以将 VM 与  Docker 结合使用,  达到隔离性与性能的初衷。如有必要,也可以通过启用AppArmor、SELinux和GRSEC等加固解决方案,添加额外的安全层。


    附 件 《Introduction-to-Container-Security.pdf》[1] 是 Docker 官方于2015年3月发布的Docker 安全白皮书,该白皮书介绍了Docker的安全机制,默认安全策略,使用Docker隔离的最佳实践以及Docker安全的增强策略。《Docker官方 发布的关于容器安全的白皮书》[2] 是惠普的培训专家李毅对英文版的中文翻译。

    其次,Docker官网也对其安全策略进行详细的阐述 [3],《Docker安全性-官方文档》[4] 是对其的中文翻译。

    另外, Docker官方在2013年公布过一篇博客《Containers&Docker:How secure Are They?》[5] ,里面拿Docker与虚拟机和其他容器系统进行了对比,附件《Docker容器的安全性如何》是对其的中文翻译。

    然后, [6] [7] 是Redhat的Docker-enablement Team leader 在14年发布的关于通过Selinux等增强Docker安全的博客,[8] 以及科技媒体对其的翻译。

     

    [1] 《Introduction-to-Container-Security.pdf》  https://www.docker.com/sites/default/files/WP_Intro%20to%20container%20security_03.20.2015%20(1).pdf

    [2] 《Docker官方发布的关于容器安全的白皮书》  http://dockone.io/article/808

    [3]  https://docs.docker.com/engine/security/security/ 

    [4] 《Docker安全性——官方文档[译]》 http://blog.csdn.net/yangzhenping/article/details/41721073

    [5] 《Containers & Docker: How Secure Are They?》 http://blog.docker.com/2013/08/containers-docker-how-secure-are-they/

    [6] 《Are Docker containers really secure?》 https://opensource.com/business/14/7/docker-security-selinux

    [7] 《Bringing new security features to Docker》 https://opensource.com/business/14/9/security-for-docker

    [8] 《Docker安全性探讨与实践:探讨篇》 http://www.infoq.com/cn/news/2014/09/docker-safety/


    查看详细页面
  • 数人云如何使用Haproxy?使用haproxy时候,doc

    数人云没有使用haproxy-marathon-bridge ( Marathon官方已经废弃haproxy-marathon-bridge方式:https://mesosphere.github.io/marathon/docs/service-discovery-load-balancing.html ), 我们使用的是 bamboo,bamboo也是基于haproxy做服务发现的。 docker容器内部发现其他服务 与容器的配置管理有关,一般可以通过环境变量,配置文件,配置中心等方式来实现。





    查看详细页面
  • 数人云部署的容器怎么排查问题 ?

    在数人云上 ,日志查询时可以选择到具体的实例,就可以了查看实力日志了,而可选的实例,与应用是相关联的。

    查看详细页面
  • 已有的网络/分布式存储,比如NAS,怎么与数人云结合 ?

    需要先挂载存储到主机,把主机加入集群,创建应用时可以选择挂载主机上的目录。

    查看详细页面
  • 挂载目录在应用移除后是否被删除?

    目前不会删除。

    查看详细页面
  • 数据库如何通过数人云部署?

    请参考用户手册中快速实践中搭建wordpress (http://doc.shurenyun.com/practice/wordpress.html)时创建mysql服务的步骤,谢谢。


    查看详细页面
  • 有状态服务持久化是如何做的?

            Docker 镜像是由多个文件系统(只读层)叠加而成。当我们启动一个容器的时候,Docker会加载只读镜像层并在其上添加一个读写层。如果运行中的容器修改了现有 的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中该文件的副本所隐藏。当删除 Docker容器,并通过该镜像重新启动时,之前的更改将会丢失。

            为了能够保存(持久化)数据以及共享容器间的数据,Docker提出了Volume的概念。简单来说,Volume就是目录或者文件,它可以绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上。


    查看详细页面
  • 如何通过数人云实现应用的高可用?

     应用业务层的高可用需要业务逻辑来支持,数人云本身是分布式系统,负载均衡和服务发现模块也是数据共享的因此数人云能够实现架构层和网络层的高可用。

    查看详细页面
  • Bridge和Host有什么区别,各自适合什么场景

    在具体的场景中,网桥模式适用于无状态的微服务应用,提供消息转发的服务,比如中间件。Host 模式更适用于需要消耗大量系统性能的应用,特别是有大量网络流量和磁盘IO的应用,比如数据库服务。特别指出,两种网络模式都可以和数人云的网关 配合实现服务发现的功能,所以网络模式的选择并不会影响应用的扩展能力。

    查看详细页面
  • 是否可以替换为F5?

    HAproxy支持ssl,也是个容器,如果这个容器挂了,marathon会自动发现,之后会 recovery这个HAproxy,方便又安全。而F5提供API接口供调用,实例构建完后需要跑到F5上去配置负载均衡,自身的高可用也需要设备本身 的架构来保证,且出现问题时不像HAproxy那样可以自动恢复。便利性和安全性,还是有些差异的。

    查看详细页面
  • -v 的docker挂载目录与容器日志混在一起如何区分?

    数人云目前暂不支持收集挂载目录的文件日志,因此日志查询中只能查到容器日志。

    查看详细页面
  • 数人云是否能够收集应用的业务日志?数人云日志是哪些信息?

    数人云通过logspout对日志进行采集,收集容器的标准输出日志,对文件的日志采集仍在开发中。如果应用的业务日志会通过标准输出,则数人云可以收集到,且保存7天。

    查看详细页面
  • 数人云能否监控宿主机信息?

    数人云目前只监控宿主机的CPU、内存、磁盘的使用量。我们很快会提供网络的监控信息。

    查看详细页面
  • 为什么不能立即看到监控信息?

    监控信息每20s上报一次,因此应用部署成功/主机添加成功时需要经过20s才能看到监控信息。

    查看详细页面
  • 为什么我的应用总是在“部署中”?

    可能是应用的镜像获取失败但一直在尝试,也有可能是主机上资源不够,导致应用的实例无法成功启动。很抱歉这里没能给用户明确的信息判断应用不能部署成功的原因,我们已经注意到这个问题,正在改进。

    查看详细页面
  • 用户如何在应用中传参数?

    一般来说,有如下几种方案,难度由易到难。

    方案一:如果应用的配置值本身是固定的,那么我们可以直接将配置文件打到docker image里面;

    方案二: 通过环境变量方式传参,这种方案又可以细化成两种:

         1)在应用的docker镜像里面放一个应用启动脚本,该脚本会首先将配置文件中的值替换成环境变量的值,然后启动应用;

         2)调整应用读取配置的方式,使其可以读取环境变量的配置来启动应用; 这种方案的弊端在于,若应用扩展时依赖于其他实例,或者说需要知道其他实例的地址,则该应用无法自动扩展。进一步,我们认为这个应用是有状态应用; 

    方案三: 应用启动时拉取配置中心的配置文件,这种方案是方案二的变种,即在docker启动应用之前首先将应用的配置从配置中心拉取到容器里,然后再启动,方案三可以配合方案二使用。 弊端也与方案二中的一样。

    方案四: 通过一致性中间件zookeeper,etcd,consul等将你的应用改造成完全分布式应用,即改造你的应用使其启动时在zookeeper中获取配置,同时监听zookeeper中配置文件的更新,在配置更新时动态加载新的配置。


    查看详细页面
  • Agent 安装失败怎么办?

    数人云Agent安装时会首先做一些环境及端口检查,如果这时发现问题会终止安装过程并返回具体 的原因。当环境及端口都没有问题,但未能正常安装,即您在集群页仍然看不到主机,则可以查看目录 /var/log/omega-agent.log 的日志获取进一步信息,如有需要,请联系我们 info@shurenyun.com,或加入用户群164868857咨询。

    查看详细页面
  • 默认网卡选错了怎么办?

    默认网卡选择错误主机仍然可以连接到数人云平台,但是在该主机的详情页我们会看到主机的ip为空,同时主机上的服务会一直显示初始化中,因而该主机无法成为集群的正常节点使用。

    解决办法:在数人云管理平台删除该主机,然后重新执行添加过程。


    查看详细页面
  • 数人云对软件环境有什么要求?

    数人云对软件环境的要求包括:

    • 操作系统,使用64位 Linux 系统,已经通过测试的操作系统主要是CentOS 7+Ubuntu 14.04+,RHEL 6.5正在测试中;CentOS关闭selinux;

    • Docker环境,安装1.7.1以上的Docker,并确保 Docker Daemon 运行;

    • 网络环境,每台运行 Docker 的主机必须能够 ping 通数人云( www.shurenyun.com )并且同一集群内的主机相互都可以连通;开启 iptables-nat。


    查看详细页面
  • 数人云在客户的机器上收集了什么数据到云端?如何保证数据安全?

    对于在用户集群采集的信息,目前数人云会在用户集群采集两种信息即: 

    1)主机的一些基本 配置譬如 CPU,内存,磁盘空间等,以及通过数人云分发的应用的资源使用情况; 

    2)通过数人云分发的docker应用的日志。 

    其中主机的数据是通过ssl加密传输到数人云服务器的;日志数据考虑到数据传输的性能问题,目前是数据压缩后明文传输的,但日志采集模块支持定制,可以对接客户内部的日志服务器,从而避免将日志收集到云端。 另外,云端的日志数据默认会保留7天。


    查看详细页面
  • 数人云是否支持私有部署、混合云?

    数人云支持私有部署,如果您需要私有部署,请发邮件到info@shurenyun.com联系我们。数人云也支持混合云,即您添加的主机可以来自不同的云服务提供商。

    查看详细页面
  • 数人云跟公有云什么关系?

    公有云以提供云主机资源为核心业务,数人云主要提供集群管理及部署分布式应用的解决方案,用户在公有云购买的资源可以加入数人云平台进行管理。

    查看详细页面
  • 数人云/Docker/Mesos是否支持Windows?

    2015年,Docker 和微软联合发布了面向 Windows 的 Docker 客户端,微软也发布了支持  Docker 容器的 Windows Server 技术预览版,同时,Mesosphere 和微软合作,在MesosCon上公开了在  Windows Server 2016 预览版本上运行 Mesos 的第一个  demo,但是还都没有发布公开版本,距离能够在生产环境应用也还有一段时间。数人云目前支持Ubuntu和CentOS,会在将来支持Windows。

    查看详细页面
  • Mesos跟Openstack如何结合工作?

            从整体结构上看,数人云(Mesos)会在Openstack上面一层,两者结合后,向上对接用户应用,向下管理用户资源。

            结合的核心就是数人云中集群会对应到Openstack中的租户(Project)资源,在利用Openstack多租户实现资源隔离的前提下,数人云在集 群内上实现资源整合,编排应用容器,提高资源利用率;整合后的突出优势是能够实现结合应用监控的二级动态扩容方案,不仅能在集群内动态扩展Hot应用,同 时可以向下申请添加新的机器,实现集群扩容。

            实现层面,整合会涉及到 用户认证,集群管理,状态监控和动态扩容机制四个方面。


    查看详细页面
  • Mesos与Kubernetes的区别

            Mesos是基于两阶段调度的集群管理器,基于其两阶段调度特性,用户需要能够使用Mesos的“Mesos框架”(比如,Marathon,Aurora,Singularity),才能够像Kubernetes调度器那样工作。高度简化来说,Mesos用来管理集群资源,并且向其提供高层级的能接受这些资源来启动任务的“框架”。Mesos 作为数据中心管理系统,适用于任何开发框架和应用。目前唯一国内外大企业实际案例的,例如苹果75000台集群,twitter 4000台,国内BAT都在使用,浙江移动mesos集群承载了关键生产系统手机营业厅和CRM。

            而Kubernetes是基于Borg背后的理念而设计的容器集群管理器。Google的集群管理器没有两阶段调度的概念,而针对容器的集群管理,具有轻量化、模块化、便捷等特点;其社区活跃,发展速度快,但尚未获得大规模商用。除了两阶段调度,Mesos和Kubernetes还有很多区别,比如它们的依赖(Zookeeper、Etcd等等)以及使用方式等等。

            值得一提的是,Mesos 正在接受 Kubernetes 的理念,并已经开始支持 Kubernetes API,你可以在 Mesos 集群上搭建 Kubernetes 并部署 Kubernets 应 用。 

    对于 Mesos 和 Kubernetes 的技术选型: 

    • 如果是刚刚引入集群技术,那 Kubernetes 是一个很棒的开始。它可以用最快的、最简单的、最轻量级的方式来解决你的问题,并帮助你进行面向集群的开发。

    • 如果拥有已存在的工作任务(Hadoop、Spark、Kafka 等),Mesos 提供了一个将不同工作任务相互交错的框架,然后还可以加入一些新的东西,比如 Kubernetes 应用。 

    • 如果你需要强大的集群管理及调度功能而 Kubernetes 还没实现,那 Mesos 是最佳的选择,毕竟它已经成熟。


    查看详细页面
  • YARN和Mesos的区别

        Mesos 作为一个通用资源调度系统,对集群资源进行统一地调度;它针对数据中心应用特点设计,对长服务应用、大数据应用以及 Docker 应用都提供了良好的支持。

    YARN 从 MapReduce 基础演变而来,主要为了解决第一代 Hadoop 扩展性差、不支持多计算框架的问题,因此其对 Hadoop 生态系统中的大数据框架有着天然的支持;目前 YARN 正在向通用资源调度系统发展,将对于长服务、Docker 应用的支持加入其中。 从发展方向和功能方面看,Mesos 和 YARN 正趋于相同,但由于双方的设计初衷不同,在实现方面还是有些不同:

    • 框架担任的角色:在 Mesos 中,各种计算框架是完全融入 Mesos 中的,在 Mesos 中添加一个新框架,首先需要在 Mesos 中部署一套该框架;在 YARN 中,各种框架作为 client 端的 library 使用,仅仅是你编写的程序的一个库,不需要事先部署一套该框架。 

    • 调度机制:都采用双层调度机制,第一层由源管理系统(Mesos/YARN)将资源分配给应用程序(或框架),第二层应用程序将收到的资源进一步分配给内部的任务。但是资源分配器智能化程度不同,Mesos 是基于 resource offer 的调度机制,包含非常少的调度语义,只是简单的将资源推给各个应用程序,由应用程序选择是否接受资源,较为灵活;YARN 则不同,应用程序的 ApplicationMaster 会把各个任务的资源要求汇报给 YARN,YARN 根据需要为应用程序分配资源。 

    • 使用场景:如果需要对整个数据中心资源进行统一得管理和调度,Mesos 较为合适;如果您已经部署了 Hadoop,只需要在大数据集群中管理 Hadoop 或 Spark 等大数据作业,而不是需要管理整个数据中心的能力,Yarn 更为方便。

    • 隔离(/容器)机制:Mesos用lxc隔离, Yarn用进程(性能可能更好,在版本里面 Yarn 也开始尝试支持docker container了)


    另外,大家可以参考 Dockerone 社区翻译的一篇Mesos和YARN的区别以及它们如何协同工作

    查看详细页面
  • Mesos+docker的业务场景,解决了什么问题?什么样的

            理论上任何能在Linux上运行的应用,都可以被Docker化了然后部署到基于Mesos的云计算操作系统上。是否能够充分发挥出云操作系统的种种优势, 则取决于应用的软件架构。这个问题没有一个黑白分明的答案,不同的软件架构能够在不同程度上享受云带来的优势。云计算操作系统的主要优点如下:


    优势说明
    易部署利用Docker消除开发、测试和生产的差异性。实现快速部署,灰度发布和快速回滚
    横向扩张(scaling)快速扩张增加实例数量,顶住突增的高并发流量
    自动恢复(failover)当底层宿主机出现故障的时候,自动将应用“迁移”到其他宿主机上,确保服务不降级
    高资源利用率例如容器细粒度地划分宿主机资源,尽量多跑容器,提高资源利用率




            另外我们可以将一般企业应用,按照同底层资源(内存和持久化)的耦合程度。说白了就是状态信息是否放在本地,例如使用Java session(内存)来保持用户的购物车信息,那么意味着这个用户每次访问都要被负载均衡转发到这台服务器上。负载均衡必须维护用户session和相 应服务器的对应关系,否则用户很可能下次登录到没有保存自己登录状态的服务器上,被踢出登录。


    应用类型技术架构负载均衡说明
    无状态应用Tomcat、Apache、Nginx不需要会话保持用户状态保存在redis或者memcachd之类的缓存里
    有状态应用Weblogic、EJB需要会话保持用户状态保存在本机内存里面
    本地持久化应用各种传统数据库需要会话保持用户数据会在本地持久化






            其中技术框架只是个例子,例如使用tomcat 的应用不一定就是无状态的,只是说相对于weblogic可能性更大一些。

            我们看一下不同类型的应用,上云之后能够得到哪些好处:



    快速部署横向扩展自动恢复高利用率
    无状态是,可扩可缩是,可以杀掉别处重启
    有状态可以扩,但是要慢慢缩(graceful stop)不能。容器没有了,用户的状态信息也会丢失也许
    持久化是,但是要同步数据无法扩展,除非是分布式数据库不能。底层宿主机如果故障,持久化数据可能丢失。否,一般数据库本身的负载就比较高,底层资源使用比较充分







             我们看,一般互联网公司的软件架构已经实现了“三层架构”。业务逻辑实现无状态,用户状态放在缓存之中,而冷数据在保存在数据库里面。这样的应用的逻辑部分本身支持横向扩展,只要简单地Docker化并且进行配置分离,就可以快速上云。

    传 统基于Weblogic和EJB的企业应用,则属于第二种情况。这些应用简单Docker化之后也可以放到Mesos之上,不过前端负载均衡往往要支持 HTTP会话保持。这种应用的逻辑部分可以做到横向扩展,反正新用户会转发到新的容器实例上。当要关掉容器的时候,必须采用graceful stop的方法,通知容器停止接收新请求,直到处理完所有请求之后自行销毁。具体EJB的横向扩展功能,在另外一个FaQ里面会详述。

    至于数据库之类需要本地持久化的应用,一般采取将持久化部分挂载到本地存储(Docker的–v 参数),除非是底层存储也是分布式的,那么放到Docker里面的意义非常有限。


    关于Mesos实践:

    浙江移动如何将CRM接入DCOS平台

    http://www.hcgtwz.com/shqs/201601/14/4109.html

    http://news.vlongbiz.com/pic/2015-12-17/1450312362d2270719.html

    中国移动浙江公司数据中心操作系统(DCOS)实践

    http://www.infoq.com/cn/articles/practice-of-cmcc-zhejiang-data-center-operating-system

    Mesos云操作系统 让浙江移动玩转双十一

    http://blog.dataman-inc.com/20151112-1111-zhejiangyidong-mesos/

    平安科技Mesos运维实践

    https://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=401668286&idx=1&sn=a21d49f892b0709e1f20ba86ad4df673

    去哪儿网Mesos实践

    http://www.infoq.com/cn/articles/practice-of-mosos-in-qunar


    查看详细页面
  • 数人云是如何保证线上用户的数据安全的,或者说, 数人云在客户

    对于用户信息等数人云本身的数据,运维部有标准通用的安全策略。 

    对于在用户集群采集的信息,目前数人云会在用户集群采集两种信息即:

    1)主机的一些基本配置譬如 CPU,内存,磁盘空间等,以及通过数人云分发的应用的资源使用情况; 2)通过数人云分发的docker应用的日志。 其中1中的数据是通过ssl加密传输到数人云服务器的; 2中的日志考虑到数据传输的性能问题,目前是数据压缩后明文传输的,但日志采集模块支持定制,可以对接客户内部的日志服务器,从而避免将日志收集到云端。另外,云端的日志数据默认会保留7天,并有标准的运维安全策略。 

    查看详细页面
  • 为什么需要升级组件?

    新版本的组件通常会包含问题修复或新功能,当组件有新版本时,及时升级可以最大程度保证集群的正常工作。当您点击升级后,数人云平台会对整个集群依次升级有新版本的组件,如果升级遇到问题,您可以尝试再次升级,如果依然有组件未能成功升级,请联系数人云客服,发送邮件到 info@shurenyun.com 或 加入QQ交流群164868857,谢谢。

    查看详细页面
  • 集群中的主机需要开放端口吗?

    需要,加入数人云的主机至少要开放80和443端口,以保证主机上的服务组件与数人云平台之间的通信。

    查看详细页面
  • 为什么线下部署有的主机可以正常访问数人云,有的主机不行?

    检查不正常的主机

    hosts文件 是否正确配置了下面四个域名的解析如没有则添加

    x.x.x.x    offlinewww.shurenyun.com

    x.x.x.x    offlinedashboard.shurenyun.com

    x.x.x.x    offlinestreaming.shurenyun.com

    x.x.x.x    offlineforward.shurenyun.com




    查看详细页面
  • 我在 CentOS 上使用 docker 与 Ubuntu

     简单说,在某些场景下,DeviceMapper 的性能是要比 AUFS 差的,而在另一些场景下,反之。但无论是 DeviceMapper 还是 AUFS,亦或者是其他的 docker 存储驱动,它们严重影响到了容器性能是有前提条件的,那就是应用在频繁,或者说相对频繁的读写容器里面的文件系统。而这在实际的软件开发实践中,几乎是不可能,或者说完全可以规避掉的情况。首先,对于web 应用或者其他非存储型应用来说,它们一般会把数据存储到数据库中,所以,不会出现频繁读写容器里文件系统的情况;其次,如果应用需要频繁的读写本地文件系统,譬如把日志写到本地,或者Mysql存储到本地目录,对于这种情况,docker官方以及大家集体认同的方式是通过 docker -v 挂载数据盘来使用原生的系统文件驱动。从而这也就不会有什么太大了性能影响了。


      如果您想了解更多,请往下看,这里介绍下我们整理的 docker 官方以及 Red Hat 公司开发者对于 AUFS,DeviceMapper 在不同场景下的性能对比。


      首先,AUFS 是基于 file-level 的存储驱动,即所有的容器都直接使用了宿主机的文件系统;而 DeviceMapper 是基于 block-level 的存储驱动,可以理解为每个容器有自己的文件系统,在block这一层做数据共享。DeviceMapper 存储驱动进一步又分为 loop-lvm 与 direct-lvm 两种方式,前一种我们可以理解为 LiveCD 或虚拟VMware镜像加载系统,后一种理解为原生磁盘加载系统,所以后者是 docker 官方推荐的生产环境配置,而前者是在 CentOS 环境下安装 docker 的默认配置,这也是很多docker新人刚刚接触docker时吐槽 DeviceMapper 不给力的主要原因。

    另外,AUFS 的性能缺点主要表现在应用第一次写上层 docker image layer 的文件时会有延迟,并且延迟随文件的增大,layer的层数增多而变大。 DeviceMapper 的性能缺点表现在docker daemon启动慢,docker容器启动相对较慢,频繁的小文件写入会有性能问题。

    DeviceMapper 这些缺点中影响最大的是容器启动较慢的问题,但在配置了direct-lvm+volumn 的情况,创建并销毁1000个apache容器也只需要900s,这是 Red Hat 的开发者博客中详细测试过的[1]。

    另外,附上docker官方对于 DeviceMapper 的优化建议[2]:

    1. 生产环境使用 direct-lvm 模式。即额外挂载数据盘作为docker的存储。

    2. 为你的docker存储配置ssd盘

    3. 将频繁读写的目录挂载到数据盘


    [1] http://developerblog.redhat.com/2014/09/30/overview-storage-scalability-docker/

    [2] https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/

    [3] https://docs.docker.com/engine/userguide/storagedriver/aufs-driver/

    [4] http://www.infoq.com/cn/articles/analysis-of-docker-file-system-aufs-and-devicemapper#anch121685

    [5] https://www.projectatomic.io/blog/2015/06/notes-on-fedora-centos-and-docker-storage-drivers/

    查看详细页面
  • 必须通过数人云购买云主机吗?

    不是。如果您已经有自己的云主机,按照添加主机的说明直接添加即可。如果您需要购买云主机,可以在公有云购买云主机后,直接安装其服务市场提供的数人云镜像,该镜像将包含数人云主机agent,在主机安装系统的过程中即安装好了数人云的agent。

    查看详细页面
  • CentOS/RHEL 的 OS 如何停用 selinux


    • check selinux: getenforce

    • 临时停用: setenforce 0

    • 永久停用: vim /etc/sysconfig/selinux 设置 SELINUX=disabled 并重启系统


    查看详细页面
  • 为什么需要开启iptables nat?如何开启?

    如果不开启iptables nat,Docker容器将无法正常启动。

    Ubuntu 或 CentOS开启iptables步骤如下:

    安装 iptables-service: yum install iptables-servicessystemctl enable iptablesservice iptables save

    • 运行 sudo iptables -L | grep DOCKER 若输出

      DOCKER     all  --  anywhere             anywhere
      Chain DOCKER (1 references)

      则没问题。

    • 否则,运行 iptables-save > /etc/sysconfig/iptables 并编辑添加相应的内容:

      *nat
      :PREROUTING ACCEPT [27:11935]
      :INPUT ACCEPT [0:0]
      :OUTPUT ACCEPT [598:57368]
      :POSTROUTING ACCEPT [591:57092]
      :DOCKER - [0:0]
      -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
      -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
      -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
      COMMIT
      # Completed on Sun Sep 20 17:35:31 2015# Generated by iptables-save v1.4.21 on Sun Sep 20 17:35:31 2015
      *filter
      :INPUT ACCEPT [139291:461018923]
      :FORWARD ACCEPT [0:0]
      :OUTPUT ACCEPT [127386:5251162]
      :DOCKER - [0:0]
      -A FORWARD -o docker0 -j DOCKER
      -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
      -A FORWARD -i docker0 ! -o docker0 -j ACCEPT
      -A FORWARD -i docker0 -o docker0 -j ACCEPT
      COMMIT
      # Completed on Sun Sep 20 17:35:31 2015


    查看详细页面
  • 使用CentOS时为何需要关闭firewalld?如何关闭?

    若是 CentOS/RHEL 的 OS 最好停用 firewalldsystemctl disable firewalld/systemctl stop firewalld 并 systemctl mask firewalld, 原因:

    • 首先,firewalld 重启时, docker deamon 也需要重启

    • 其次,docker 有些版本,譬如:1.9 在使用 firewalld 仍然有bug


    关闭防火墙

    CentOS 7.0默认使用的是firewall作为防火墙 查看防火墙状态

    [root@master ~]# systemctl status firewalld.service

    ● firewalld.service - firewalld - dynamic firewall daemon

    Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)

    Active: active (running) since Wed 2015-12-30 13:39:17 CST; 20min ago

    Main PID: 802 (firewalld)

    CGroup: /system.slice/firewalld.service

    └─802 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

    Dec 30 13:39:12 master systemd[1]: Starting firewalld - dynamic firewall daemon...

    Dec 30 13:39:17 master systemd[1]: Started firewalld - dynamic firewall daemon.

    防火墙状态是运行的,我们使用

    [root@master ~]# systemctl stop firewalld.service

    关闭防火墙,使用

    [root@master ~]# systemctl disable firewalld.service

    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

    Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

    设置禁止firewall开机启动

    下面是防火墙命令:

    systemctl status firewalld.service#查看firewall状态

    systemctl start firewalld.service#启动firewall

    systemctl stop firewalld.service#停止firewall

    systemctl disable firewalld.service#禁止firewall开机启动


    查看详细页面
  • Mesos和Docker是否影响性能?

    应用的本地执行性能主要是由容器(Docker)决定的,Mesos只负责调度容器。Mesos 作为资源调度系统,采用双层调度机制,第一层由 Mesos 将资源分配给应用程序(或框架),第二层应用程序将收到的资源进一步分配给内部的 任务。由于 Mesos 是基于 resource offer 的调度机制,包含非常少的调度语义,只是简单的将资源推给各个应用程序,因此对应用性能基本无影响。 

    Docker 根据应用的使用场景的不同,有多种运行方式,如不同的网络设置选择、是否挂载主机磁盘目录等,这些设置对 Docker 应用性能的影响也不同。 IBM 针对 Docker 性能进行了详细的测试,并将 Docker、KVM 以及系统原生环境进行了性能对比,具体报告请参见: An Updated Performance Comparison of Virtual Machines and Linux Containers 


    查看详细页面
  • 为什么数人云的网络模式只有Bridge和Host?

    Docker网络模式主要分4种:

    • --net=bridge— 默认选项,用网桥的方式来连接docker容器。

    • --net=host— docker 跳过配置容器的独立网络栈。参数告诉docker不去打包容器的网络层。docker 容器的进程仍然被限制在它自己独有的文件系统、进程列表以及其他资源中。使用 ip addr 查看 docker 网络,它是建立在docker 宿主主机上的,有完整的权限去访问宿主主机的网络接口。注意这不意味着docker容器可以去重新配置宿主主机的网络栈,重新配置是需要 --privaleged=true 这个选项参数的,但有安全问题。

    • --net=container:NAME_or_ID— 告诉docker让这个新建的容器使用已有容器的网络配置。这个新建的容器将配置新的自己的文件系统和进程列表以及其他资源限制,但是将共享这个指定的容器的网络IP地址以及端口号,使得这两个容器可以通过 loopback接口相互访问。本机有效。

    • --net=none— 告诉docker为新建的容器建立一个网络栈,但不对这个网络栈进行任何配置,你可以去建立自定义的网络配置。

    因为none模式和container模式必须特殊处理,所以数人云网络模式只兼容Docker网络模式中的host和bridge。

    查看详细页面
  • Docker 中的文件打开数该如何设置?

    1) 全局默认的ulimit:
    docker -d –default-ulimit nproc=1024:2048
    docker -d –default-ulimit nofile=20480:40960 nproc=1024:2048 xxx

    2)也可以针对单个特殊的服务进行ulimit配置。
    docker run -d –ulimit nofile=20480:40960 nproc=1024:2048 xxx





    查看详细页面
  • 数人云的haproxy对多个后端的负载均衡策略是什么?用户可

    目前负载均衡采用最小连接数的策略来分配,暂时还不支持用户修改。

    查看详细页面
  • 为什么服务器上没有任务在跑磁盘却占满了?

    因为数人云系统建立在 docker 之上,所以占用磁盘的情况可能有以下几种:


    1、docker实例占用

    问题:

    这里主要说的是docker启动,关闭或者启动失败的实例占用空间。

    解决办法:

    使用 docker ps -a  查询实例创建情况,若 Exited 实例列表特别长,那么就是这个问题

    可以使用docker rm -f 实例名


    2、docker 镜像占用

    问题:

    这里主要说的是docker镜像占用磁盘空间

    解决办法

    使用docker images 查看镜像名

    使用docker rmi -f 镜像名  删除镜像


    3、实例内部数据占用

    问题

    这里主要说的是如果实例长时间使用或者特殊数据服务,需要把数据存储在docker实例内部的

    解决办法

    使用 ls 命令查看挂载docker服务目录

    使用 rm 删除不需要目录或文件


    4、挂载数据占用

    问题

    这里主要说的是启动容器的时候使用 -v 来挂在数据目录到容器中使用

    解决办法

    使用 ls 命令查看挂载目录

    使用 rm 删除不需要目录或文件

    查看详细页面
  • 数人云安全吗?

    首先,企业级环境一般都是内网环境,通过 iptable 已经把不必要的端口都屏蔽了。

    第二,数人云控制端和服务端使用 HTTPS端口交互。如果为了安全,可以使用 iptable 只对数人云的 IP 开放。    

    基本做完系统安全防护之后,就是帐号的安全。数人云管理面板基于 HTTPS 加密通信,只要用户不自己泄露密码,安全系数应该达到同行业平均水平。

    查看详细页面
  • 数人云和其他容器厂商(比如daocloud、灵雀云等)有何不

    我们和友商在容器领域各自开拓自己的一番天地。数人云针对企业私有的生产环境,搭建生产级别性能的私有PaaS。既支持私有物理环境,也支持公有云和 跨云管理。不但支持容器服务,而且还支持各种大数据(Spark、Hadoop)、持续集成(Jenkins)工具,帮助企业搭建完整的后台生产环境。

    查看详细页面
  • 数人云产品收费吗?是否包括培训服务?

            目前仍然处于全功能免费阶段,企业级功能的收费计划正在规划,会在产品页面上及时更新,同时我们提供了全面的在线文档。如果您对收费服务感兴趣或者需要其他形式的培训,可以发邮件到info@shurenyun.com联系我们,感谢您关注数人云,谢谢。

    查看详细页面
  • 数人云产品的稳定性如何?

    截止2015年底,数人云最大生产环境部署为800台服务器,稳定运行超过半年。商业部署对象包括知名商业银行、保险和能源等传统企业,以及百万用户级别的互联网社交应用。

    查看详细页面
  • proxy和gateway如何解决单点问题?

    目前的服务发现支持集群中配置多个gateway和proxy节点,对外服务直接把gateway地址列表配置到外部入口,对内服务需要调用方支持配置多个地址,后续升级方案会自动处理内部服务的HA。

    另一个方案,集群节点全部安装proxy,服务直接访问本节点地址,这样单节点失败不会影响其它节点,但有内网开销。


    查看详细页面
  • Redhat7.0 以上为什么无法安装Docker?

    这个是因为您的系统未完成Redhat的付费订阅,请您订阅后重试。如果您想免费测试,请更换系统为Centos7.0

    查看详细页面
  • Redhat7.0 以上版本是否支持数人云?

    是的,支持!

    查看详细页面
  • centos7关闭防火墙

    CentOS 7.0默认使用的是firewall作为防火墙 查看防火墙状态

    [root@master ~]# systemctl status firewalld.service
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
       Active: active (running) since Wed 2015-12-30 13:39:17 CST; 20min ago
     Main PID: 802 (firewalld)
       CGroup: /system.slice/firewalld.service
               └─802 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
    
    Dec 30 13:39:12 master systemd[1]: Starting firewalld - dynamic firewall daemon...
    Dec 30 13:39:17 master systemd[1]: Started firewalld - dynamic firewall daemon.

    防火墙状态是运行的,我们使用

    [root@master ~]# systemctl stop firewalld.service

    关闭防火墙,使用

    [root@master ~]# systemctl disable firewalld.service
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

    设置禁止firewall开机启动

    下面是防火墙命令:

    • systemctl status firewalld.service#查看firewall状态

    • systemctl start firewalld.service#启动firewall

    • systemctl stop firewalld.service#停止firewall

    • systemctl disable firewalld.service#禁止firewall开机启动


    查看详细页面
  • centos安装docker

    相信很多朋友使用 yum install docker 安装的docker,

    [root@master ~]# docker --version
    Docker version 1.8.2-el7.centos, build a01dc02/1.8.2

    这个版本的docker在启动我们的slave时有问题,目前只能卸载重新安装docker。

    使用

    • yum remove docker-1.8.2-10.el7.centos.x86_64

    • yum remove docker-selinux-1.8.2-10.el7.centos.x86_64

    卸载。

    使用curl -sSL https://get.docker.com/ | sh 重新安装的

    [root@master ~]# curl -sSL https://get.docker.com/ | sh
    + sh -c 'sleep 3; yum -y -q install docker-engine'
    warning: /var/cache/yum/x86_64/7/docker-main-repo/packages/docker-engine-selinux-1.9.1-1.el7.centos.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 2c52609d: NOKEY
    Public key for docker-engine-selinux-1.9.1-1.el7.centos.noarch.rpm is not installed
    Importing GPG key 0x2C52609D:
     Userid     : "Docker Release Tool (releasedocker) <docker@docker.com>"
     Fingerprint: 5811 8e89 f3a9 1289 7c07 0adb f762 2157 2c52 609d
     From       : https://yum.dockerproject.org/gpg
    
    If you would like to use Docker as a non-root user, you should now consider
    adding your user to the "docker" group with something like:
    
      sudo usermod -aG docker your-user
    
    Remember that you will have to log out and back in for this to take effect!

    启动docker

    [root@master ~]# service docker start
    Redirecting to /bin/systemctl start  docker.service
    [root@master ~]# systemctl enable docker #设置docker开机启动

    注:以上curl命令安装不成功的朋友,使用以下方法安装docker

    1.添加到 yum repo

     sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
    [dockerrepo]
    name=Docker Repository
    baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
    enabled=1
    gpgcheck=1
    gpgkey=https://yum.dockerproject.org/gpg
    EOF

    2.安装docker

    sudo yum install docker-engine

    3.启动docker

    sudo service docker start

    4.设置开机启动

    systemctl enable docker

    参考链接:


    查看详细页面
  • 什么是“一主机一容器”

    所谓“一主机一容器”,就是要求数人云在下发多实例应用时,每个主机最多只能运行一个此应用的实例。

    那么问题来了,为什么需要这样设置呢?

    场景一:我发布了一个网络模式为 Host 的应用,应用端口为8080,并设置容器个数为10,那么问题来了:因为 Host 模式下,容许该容器使用主机的网络堆栈,主机的所有网络接口将完全对容器开放,这种情况下,如果有2个容器同时部署在同一个主机上,会出现端口冲突。

    场景二:我发布了一个应用,为该应用添加了“应用/容器目录”,用来存放该应用的状态信息,那么问题来了:如果有2个容器同时部署在同一台主机上,这2个容器会同时使用这一个目录,如果目录中的数据文件是没有容器标记的,那么会出现数据冲突。


    查看详细页面
  • 数人云环境下如何更新应用?

    大致分为两种方法:

    • 第一种方法,每次应用更新都重新制作 Docker 镜像,并更新镜像版本。此种做法简单,易于理解,由镜像版本来体现应用版本;

    • 第二种方法,Docker 镜像不变,每次应用更新后,将执行文件放在可下载路径下(如 nginx,github 等),将下载命令和执行命令都写在脚本中,版本信息则通过环境变量传递给 Docker,Docker 每次启动时都通过执行脚本下载并执行应用程序。此种做法相对复杂,但是不需要重复制作 Docker 镜像,镜像版本和应用版本分离,便于Docker 基础镜像和应用程序的管理分离。

    用户可根据自身项目情况,选择以上两种方法。


    查看详细页面
  • 有没有关于 docker 的中文电子文档可以推荐?

    Docker 从入门到实践 https://yeasy.gitbooks.io/docker_practice/content/ 是一本不错的 docker 中文电子文档。


    摘要如下:


    本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍一些高级操作;第 10 章给出典型的应用场景和实践案例;11 ~ 13 章介绍关于 Docker 实现的相关细节技术。后续章节则分别介绍一些相关的热门开源项目。

    查看详细页面
  • Yarn能否和Mesos一起部署,Mesos能否管理Yarn

    yarn 与 Mesos 可以一起运行, 理论上,mesos 可以承载任何框架。


    另外,大家可以参考 Dockerone 社区翻译的一篇 Mesos和YARN的区别以及它们如何协同工作


     yarn与mesos一起运行的大致架构是这样的:


    0015684ecf764a6abbb63b46128fe11

    查看详细页面
  • 在高并发的情况下,数人云能承载多大的 qps 呢?

    前期我们的工程师通过数人云做过压测,下面是详细的压测报告地址

    https://dataman.gitbooks.io/shurenyun-user-manual/content/performance/index.html


    报告摘要:

    Mesos 集群性能测试

    在我们铺设的实验环境,Mesos 集群在

    • 3 个 master 节点

    • 500 台虚拟机

    • ubuntu 14.04 x86 * 2核4G

    前提下, 经测试可以承载10000个 docker 容器(nginx)。

    数人云网关节点(HAproxy)的性能测试

    • 我们目前没有在物理机上压测过,下面是官网发布的物理机上的测试结果

      10G的网卡,8KB的测试包,HAproxy 每秒能处理 2万5千个请求

      参考链接: HAproxy官网10G Nic 测试

    • 我们在 2核4G的 ucloud 云主机上的测试结果

      • 2vcpu

      • 4G mem

      • ubuntu 14.04 64位

      • 承载云主机的物理机:未知

      • 网卡:未知

      • 虚拟机

      • 测试架构:

        apache benchmark -> HAproxy -> 3 个 Nginx实例

    查看详细页面
  • 怎么能把业务混合跑在一个集群里,从而提高资源利用率?

    每个业务可以理解为数人云上的一个应用,只要集群资源充分,一个集群上可以部署多个应用。如果业务之间有依赖,则需要在搭建集群时添加可选组件以实现服务发现功能。

    查看详细页面
  • 添加主机时安装agent时,默认网卡不是eth0,如何安装?

        首先需要确定你的主机应该使用哪一个网卡, 你可以通过命令 ifconfig 查看网卡信息,然后找到你的主机用来与外部通信IP所在的网卡,该IP一般会是类似 192.168.111.23 或者 10.34.23.12 或者公网IP 123.234.123.344 等。

        第二步在添加主机时,安装agent时会有5秒的延时,默认选择eth0,如果不是,请及时输入Y , 然后将你第1步中确定的网卡输入到这里


    001567154440f6836d1ef16bc2c5c10


    0015671548cb96d4b21d081058a05dd

    查看详细页面
  • 发布应用时,为什么有些端口提示被占用?

    数人云在部署集群时,会在集群的主机上运行一些集群管理组件,这些组件会使用一部分端口,这些端口将被集群预留。

    另外,为了支持多应用的混合部署,以及可扩展的分布式架构特性,数人云会在集群建立后预留一部分端口。

    如果你的应用没有定义“应用地址”,那么可以通过数人云分配给该应用的预留端口访问该应用。但我们并不建议直接访问这些预留端口,而是为应用定义“应用地址”,合理规划该应用所要暴露的端口,并通过网关节点或代理节点地址去访问应用。



    查看详细页面
  • 数人云是如何实现服务发现的?

    如果发布的应用是无状态应用,则可以通过数人云对该应用进行水平扩展或收缩,例如 2048 或者 wordpress,可以在创建应用时指定多个容器个数,也可以通过“扩展”操作增加容器数。这里容器数量即为应用的实例数。

    针对多个实例的应用,就需要服务发现对这些实例的地址进行统一暴露。

    数人云为用户提供了完备的服务发现能力,在创建应用时,可以通过“应用地址”选择: 

    1. TCP/HTTP
      根据服务端口协议的不同,可以选择 TCP 转发或 HTTP 转发; 

    2. 对内/对外
      数人云不仅提供传统的对外服务发现,还为分布式服务提供了对内服务发现;对外服务发现通过外部网关对外提供服务,如果是 HTTP 服务,需要配置域名或外网 IP;对内服务发现通过内部代理,将多实例的微服务端口映射为统一暴露的端口;

    如果一个集群中包括多个网关节点或代理节点,那么一个定义了应用地址的应用就会具备多个可访问地址。


    查看详细页面
  • 数人云的磁盘使用是什么样的策略?

        Docker提供了-v参数,用来挂载container 外部存储,如:docker run -it -v /tmp/disk1:/tmp myImage bash,其中,/tmp/disk1为本地路径,/tmp 为容器内路径,如果磁盘挂载在/tmp/disk1,则此 Docker container 可以通过/tmp 访问该磁盘。数人云完全兼容Docker。

        在创建应用时,通过“主机/容器目录”选项,可以实现 -v 的操作。

    查看详细页面
  • 主机类型有什么不同?

    数人云默认将集群主机定义为两种类型:

    1. Master 节点:集群创建时,用户需要选择 Master 个数,向集群添加主机时,最先加入的相应个数的主机会被自动定义为 Master 节点;单 Master 集群中,Master 节点可以用于发布应用,多 Master 集群中,Master 节点只能作为管理节点、网关节点或代理节点使用,不可发布应用;在集群管理页,Master 节点的图标相对较大;

    2. Slave 节点:集群在添加完 Master 节点之后,再添加的主机都会被定义为 Slave 节点,用于执行发布的应用,也可以作为网关节点或代理节点使用;在集群管理页,Slave 节点的图标相对较小;


    另外,还提到2种特殊的主机类型,分别是:

    1. 网关节点:该类主机应配置外网 IP,用于对外暴露服务;

    2. 代理节点:该类主机会配置服务发现组件,用于内部服务发现;


    集群管理员在添加主机时,针对不同的主机配置和用途,选择相应的主机类型,有助于对集群的使用规划。

    查看详细页面

讨论社区 浏览社区