rackspace

这是有关使用Weave作为底层网络层的DCHQ平台可伸缩性的2博客系列文章的第二篇博客。 第一个博客介绍了在10个Weave群集上部署10,000个容器的情况,每个群集在Rackspace上具有3个云服务器,4GB内存和2个CPU。

在此博客中,我们将介绍2,000个容器的部署-但不是使用10个群集和3个云服务器,而是使用单个Weave群集和30个云服务器 。 DCHQ不仅可以自动化应用程序的部署和管理,还可以自动化13种不同的云和虚拟化平台上的基础架构配置和自动扩展。 在此博客中了解有关此可伸缩性测试的更多信息。

背景

尽管应用程序的可移植性(即能够在任何Linux主机上运行相同的应用程序)仍然是采用Linux容器的主要驱动力,但另一个关键优势是能够优化服务器利用率,以便您可以使用每一个计算。 当然,对于PROD之类的上游环境,您可能仍想为工作负载专门分配足够的CPU和内存–但是在DEV / TEST环境中(通常代表组织中的大多数计算资源消耗),优化服务器利用率可以节省大量成本。

在纸上这一切听起来都是不错的,但DevOps工程师和基础架构运营商仍在努力解决以下问题:

  • 如何将跨不同云的服务器分组到映射到业务组,开发团队或应用程序项目的集群中?
  • 如何监视这些群集并深入了解不同组或用户的资源消耗?
  • 如何在群集中的服务器之间建立网络,以便多个主机之间的容器可以相互通信?
  • 如何定义自己的基于容量的放置策略,以便可以使用群集中的所有计算?
  • 如何自动扩展集群以满足开发人员对基于容器的新应用程序部署的需求?

DCHQ提供托管和内部部署版本,可解决所有这些挑战,并为基础架构运营商或DevOps工程师提供最先进的基础架构设置,自动扩展,群集和放置策略。

  • 用户可以通过运行自动生成的脚本来安装DCHQ代理以及Docker和软件定义的网络层(可选),来注册在任何地方运行的Linux主机。 可以使用我们的REST API以编程方式自动执行此任务,以创建“ Docker服务器”( https://dchq.readme.io/docs/dockerservers )
  • 另外,DCHQ与13个云提供商集成,允许用户自动启动vSphere,OpenStack,CloudStack,Amazon弹性云计算,Google Compute Engine,Rackspace,DigitalOcean,SoftLayer,Microsoft Azure等众多虚拟基础架构。

为Nginx集群构建应用程序模板

登录到DCHQ(托管的DCHQ.io或内部部署版本)后,用户可以导航到“ 管理” >“ 应用程序/机器” ,然后单击+按钮创建新的Docker Compose模板。

为了进行此可伸缩性测试,我们创建了一个简单的Nginx群集。 您会注意到, cluster_size参数允许您指定要启动的容器数量(具有相同的应用程序依赖性)。

通过mem_min参数,您可以指定要分配给容器的最小内存量。

host参数允许您指定要用于容器部署的主机。 这样,您可以确保跨不同主机(或区域)的应用程序服务器群集的高可用性,并且可以遵守关联性规则,以确保例如在单独的主机上运行数据库。 以下是host参数支持的值:

  • host1,host2,host3等–在数据中心(或集群)中随机选择一个主机进行容器部署
  • <IP地址1,IP地址2等> -允许用户指定用于容器部署的实际IP地址
  • <主机名1,主机名2等> -允许用户指定用于容器部署的实际主机名
  • 通配符 (例如“ db- *”或“ app-srv- *”)–指定要在主机名中使用的通配符

在任何云上配置基础架构

保存应用程序后,用户可以注册云提供商以在13个不同的云端点(包括vSphere,OpenStack,CloudStack,Amazon Web Services,Rackspace,Microsoft Azure,DigitalOcean,HP Public)上自动配置和自动扩展群集。云,IBM SoftLayer,Google Compute Engine等。

首先,用户可以通过导航到“管理”>“仓库和云提供商”,然后单击“ +”按钮选择“ Rackspace”,为Rackspace注册一个Cloud Provider。 需要提供Rackspace API密钥-可以从“帐户设置”部分中获取。

然后,用户可以使用自动扩展策略创建集群,以自动启动新的Cloud Server。 可以通过导航到“ 管理” >“ 集群”页面,然后单击+按钮来完成。 您可以选择基于容量的放置策略,然后选择Weave作为网络层,以促进群集内多个主机之间安全,受密码保护的跨容器通信。 在这种情况下,我们还定义了一个自动扩展策略,该策略将自动旋转该群集中的云服务器,使其达到定义的最大限制(在本例中为30个云服务器)。 可以使用粒度权限来确保该群集只能由我们在此测试中使用的10个用户(user1 @ dchq.io,user2 @ dchq.io,…,user10 @ dchq.io)使用。 最后,可以在蓝图(或应用程序模板)级别上定义权限-以确保只有授权的应用程序可以部署到此共享集群。 在这种情况下,群集向“所有蓝图”开放。

用户现在可以通过基于UI的工作流,或者通过定义可以从自助服务库请求的基于YAML的简单计算机组成模板来在新创建的群集上配置大量Cloud Server。

基于UI的工作流 –用户可以通过导航至“ 管理” >“ 主机” ,然后单击+按钮以选择Rackspace来请求Rackspace Cloud Server。 选择云提供商后,用户可以选择所需的区域,大小和图像。 默认情况下,在Rackspace Cloud Server上打开端口以适应某些端口要求(例如,对于Docker是32000-59000,对于Weave是6783,对于RabbitMQ是5672)。 然后选择一个集群,然后可以指定云服务器的数量。

基于YAML的Machine Compose模板 -用户可以通过导航到Manage > Templates然后选择Machine Compose来为Rackspace创建Machine Compose模板。

Machine Compose模板支持的参数总结如下:

  • 描述 :蓝图/模板的描述
  • instanceType :云提供商特定值(例如,general1-4)
  • 地区 :云提供商的特定价值(例如IAD)
  • 映像 :强制–完全限定的映像ID /名称(例如IAD / 5ed162cc-b4eb-4371-b24a-a0ae73376c73或vSphere VM模板名称)
  • username :可选–仅适用于vSphere VM模板用户名
  • password :可选–仅适用于vSphere VM Template加密密码。 您可以使用端点https://www.dchq.io/#/encrypt加密密码
  • 网络 :可选–云提供商特定值(例如,默认值)
  • securityGroup :云提供商特定值(例如dchq-security-group)
  • keyPair :云提供商的特定值(例如私钥)
  • openPorts :可选–逗号分隔的端口值
  • count :虚拟机总数,默认为1。

保存Machine Compose模板后,用户可以从自助服务库中请求此计算机。 用户可以单击“ 自定义” ,然后选择用于配置这些Rackspace Cloud Server的Cloud Provider群集

使用DCHQ的REST API以编程方式部署Nginx集群

部署云服务器后,用户可以使用DCHQ的REST API以编程方式部署Nginx集群。 为了简化API的使用,用户将需要选择之前创建的集群作为默认集群。 可以通过导航到“ 用户名 > 我的配置文件” ,然后选择所需的默认集群来完成。

一旦选择了默认集群,用户就可以简单地执行以下curl脚本来调用“ deploy” API( https://dchq.readme.io/docs/deployid )。

在这个简单的curl脚本中,我们具有以下内容:

  • for循环,从1到20
  • 在每次迭代中,我们都使用分配给user1@dchq.io的默认集群来部署集群Nginx应用程序。
  • user1%40dchq.io用于user1@dchq.io,其中@符号用十六进制%40代替
  • 密码和主机之间的@不替换为十六进制
  • <id>是指Nginx集群应用程序ID。 可以通过导航到Nginx集群的Library > Customize来检索它。 该ID应该在URL中
  • 每次迭代之间使用sleep 22
  • 运行此脚本后,user1 @ dchq.io将部署200个Nginx容器-20个迭代部署每个10个容器的Nginx集群。

然后,我们对其他用户(user2 @ dchq.io,user3 @ dchq.io,...,user10@dchq.io)重复相同的过程-所有这些都部署到同一共享群集上。

您可以自己尝试使用curl脚本。 您可以安装DCHQ本地( http://dchq.co/dchq-on-premise.html ),也可以在DCHQ.io托管PaaS( http://dchq.io )上注册。

监视群集,服务器和运行中的容器的CPU,内存和I / O利用率

DCHQ允许用户监视群集,主机和容器的CPU,内存,磁盘和I / O。

  • 要监视集群,您只需导航至“ 管理”>“集群”
  • 要监视主机,您只需导航至管理>主机>监视图标
  • 要监视容器,您只需导航至Live Apps>监视图标

在启动2,000个容器之前和之后,我们跟踪了主机和群集的性能。

分解了2,000个容器之后,我们捕获了集群性能图表的屏幕截图。 您可以看到, 群集中30台云服务器之间总内存利用率为81%

您可以看到, 群集中30台云服务器中最高内存利用率为84%

当我们深入研究集群中的30台主机之一时,看到了更多详细信息,例如在该特定主机上运行的容器数,提取的映像数,以及CPU /内存/磁盘利用率。 在这种情况下,该特定主机内存利用率为83%

这是所有正在运行的200个Nginx集群的视图(每个集群有10个容器)。

结论

对于许多DevOps工程师和基础架构运营商来说,基于Docker的应用程序部署编排仍然是一个挑战,因为他们经常难以管理多个开发团队中的服务器池,其中访问控制,监视,网络,基于容量的放置,自动扩展策略和配额是需要配置的关键方面。

DCHQ提供托管和内部部署版本,可解决所有这些挑战,并为基础架构运营商或DevOps工程师提供最先进的基础架构设置,自动扩展,群集和放置策略。

除了先进的基础架构配置和集群功能外,DCHQ还通过先进的应用程序组合框架简化了企业应用程序的容器化,该框架通过跨映像环境变量绑定,可在请求时调用的可扩展BASH脚本插件或扩展了Docker Compose。供应后配置和应用程序群集,可跨多个主机或区域实现高可用性,并支持自动扩展。

  • 免费注册在http://DCHQ.io或下载DCHQ内部部署

可以访问现成的多层Java应用程序模板以及应用程序生命周期管理功能,例如监视,容器更新,扩展/扩展和连续交付。

翻译自: https://www.javacodegeeks.com/2015/12/run-2000-docker-containers-single-weave-cluster-30-rackspace-cloud-servers-2gb-memory.html

rackspace

rackspace_在由30个Rackspace云服务器组成的单个编织群集中运行2,000个Docker容器,每个服务器具有2GB内存...相关推荐

  1. (docker 容器)服务器搭建selenium-grid平台并构建jenkins job全过程

    文章目录 首先检查服务器 Docker 服务的安装配置 Jenkins 的 Docker 容器安装配置 Selenium-Hub 的 Docker 容器安装配置 Selenium-Node 的 Doc ...

  2. 在Windows系统浏览器中访问虚拟机CentOS里面Docker容器运行nginx服务器

    1.在CentOS虚拟机中启动一个Docker容器 # 创建并运行一个名字为runoob-nginx-test 的nginx 容器,映射端口号8083->80 [root@localhost ~ ...

  3. [SRS+docker]实现直播服务器 2 SRS单机直播能力验证

    目录 1 前言 2 能力要求 3 基础环境 4 环境搭建 4.1 说明 4.1.1 知识储备 4.1.2 网络环境 4.2 SRS版本选型 4.2.1 SRS-github 4.3 搭建模式 4.4 ...

  4. 服务器管理器运行添加角色向导,Windows Server 2008 服务器角色的添加与管理

    Windows Server 2008 服务器角色的添加与管理 在Windows Server 2008 系统中,采用"服务器管理器"进行服务器角色的添加与管理 1. 添加服务器角 ...

  5. 服务器更换硬盘同步数据过程中其他硬盘故障后修复过程

    服务器大家应该都不陌生,这里不对服务器的概念做过多解释,直接切入主题:服务器更换硬盘后同步数据的过程中如果有其他硬盘出现故障掉线中断同步过程,此时应该如何处理才能恢复原来服务器内的数据呢?下面介绍服务 ...

  6. Rackspace云文件

    Rackspace Cloud Files provides unlimited online storage for your public and private files. Public fi ...

  7. 云原生之使用docker部署uptime-kuma服务器监控面板

    云原生之使用docker部署uptime-kuma服务器监控面板 一.uptime-kuma介绍 二.检查docker环境 1.检查docker状态 2.检查docker版本 三.下载uptime-k ...

  8. 腾讯云“抢救”微盟!开 766 次在线会议、调拨 100 多台服务器、闹钟只敢定 2 小时...

    本文经授权转自公众号 "CSDN"(ID:CSDNnews). 受访者 | 腾讯云技术人员 记   者 | 胡巍巍 出   品 | CSDN(ID:CSDNnews) 766 次在 ...

  9. 云原生之使用Docker部署Dashdot服务器仪表盘

    云原生之使用Docker部署Dashdot服务器仪表盘 一.Dashdot介绍 二.检查本地系统环境 1.检查本地系统版本 2.检查docker状态 3.检查docker版本 三.下载Dashdot镜 ...

最新文章

  1. R语言ggplot2可视化:可视化堆叠的直方图、添加每个分组的每个bin的计数标签、在堆叠直方图的bin中的每个分组部分添加数值标签
  2. flask读取数据库(mysql)并展示表格(讲解获取表头的方法)【附上flask好看点的helloworld】
  3. linux 7 services设定,CENTOS/RHEL7系统中设置SYSTEMD SERVICE的ULIMIT资源限制
  4. 统一管理MOSS2010用户头像
  5. Ranger-Sqoop2插件安装
  6. LogManager分析
  7. 在文件中查找和替换,覆盖文件不起作用,它清空了文件
  8. line: 1: Syntax error: word unexpected (expecting ))
  9. Java学生成绩管理系统主界面和登录界面参考
  10. dematel法分析系统中各要素的重要程度
  11. Appium连接教程
  12. eigen 矩阵求逆_「伴随矩阵」Eigen库 矩阵基本操作:转置矩阵,逆矩阵,伴随矩阵,特征值 - seo实验室...
  13. Excel 筛选后排序 踩雷笔记
  14. gitee和gitHub的命令和详细步骤操作
  15. 多维正态分布与图形识别
  16. Linux-Qt--2--调试运行终止弹窗问题-The inferior stopped because it received a signal from the Operating System
  17. NYoj 239 :月老的难题(二分图最大匹配)
  18. js实现音频可视化波形图
  19. CCM 摄像模组结构组成部分
  20. Dell计算机装Win8,超简单戴尔重装win7/win8系统完整教程

热门文章

  1. 代码随想录Day09:28. 实现 strStr()、459.重复的子字符串、字符串总结 、双指针回顾
  2. 南京工业大学研究生计算机,南京工业大学计算机研究生每年录取要多少分
  3. 2018 9 27 随想
  4. unity Shuriken粒子系统 ---飞镖系统?
  5. hdu-2018-母牛的故事
  6. uniapp使用讯飞语音输入接口
  7. [T][2]NOIP 2014 无线网络发射器选址
  8. 独家 | AI赋能新闻全链路,媒体人终将失业?
  9. Node.js Web开发_设置Node.js(1)
  10. git代码提交时遇到的错误