导
读
本文由OpenStack基金会官方发布,来自基金会、用户、厂商的16位专家作者联合撰写,原文请访问:https://www.openstack.org/containers/whitepaper
案例探究
OpenStack社区的许多成员正在为与容器相关的各种OpenStack项目贡献新代码,评估容器的含义和优势,以及在生产中使用容器来解决挑战和解锁新功能。本节重点介绍一些有意思的案例研究。
AT&T
AT&T是全球最大的电信公司之一,利用容器技术部署和管理OpenStack,依靠基础设施容器提高简单性和效率,目的是在容器化的OpenStack上构建5G基础设施。
为了实现目标,AT&T正在使用OpenStack-Helm项目在Kubernetes集群中编排基于LOCI的OpenStack镜像,同时也利用Kubernetes、Docker和核心OpenStack服务。他们还在使用Bandit、Tempest、Patrole和其他许多OpenStack项目。 AT&T还与社区合作推出一系列名为Airship的undercloud项目,该项目将提供从裸机到运行OpenStack工作负载的生产级Kubernetes的云。
AT&T发现容器化使自己能够将传统的部署类型活动转移到左侧,并使用CI / CD对其进行验证。Kubernetes还提供了大规模的可扩展性和弹性,以及允许OpenStack-Helm声明性地配置运维行为、注入配置并完成滚动升级和更新(而不影响租户工作负载)的钩子。
利用容器技术来部署和管理OpenStack不应该对租户产生太多明显的影响 ——除了它们将拥有更高弹性的平台,并且能够更频繁地获得云功能并且以最小的中断时间获得。AT&T运维团队将把他们的更多努力转向定义网站声明性配置,并让面向Kubernetes的自动化自行进行部署。
AT&T的目标是利用这种架构来支持虚拟网络功能。AT&T容器化网络云的初始用例将是新兴5G网络的VNF初始部署。OpenStack一直以来都非常适合AT&T聚焦于VNF的云用例。容器化只是一次演进,它允许AT&T以更可靠、快速、零接触的方式部署、管理和扩展其OpenStack基础设施。
在运维上,AT&T仍在测试这种方法,但已承诺在年底之前将5G服务投入生产。OpenStack和容器技术将成为这项服务的支柱,对于AT&T数百万用户而言,这一战略非常重要。部署5G服务将展示OpenStack和容器在大规模分布式生产环境中的相关性。
CERN
CERN让物理学家和工程师利用世界上最大、最复杂的科学仪器研究物质的基本成分——基本粒子而探索宇宙的基本结构。CERN云为物理学家提供科学计算的计算资源,分析来自大型强子对撞机和其他实验的数据。
CERN自2013年起开始在生产中运行OpenStack,现在正在为单个云中的虚拟机、裸机和容器提供服务。容器可以在虚拟机上运行,也可以裸机运行,具体取决于使用情况,它们全部通过OpenStack Magnum提供。可以选择不同的容器技术,包括Kubernetes、Docker Swarm和DC / OS。
CERN目前运行着在OpenStack之上的、通过Magnum提供的250个容器集群。
CERN的OpenStack云为用户提供自助服务访问,可以通过一些命令或通过Web GUI请求配置好的容器引擎。这允许用户快速利用这些技术,并且如果需要可以扩展到1000个节点。最佳实践配置包含在内置监控中,并集成在CERN存储和认证服务中。
要高效运行此资源池和无需额外运维人力即可对其进行伸缩,就需要采用一致的管理流程和工具。通过Magnum在OpenStack之上添加容器可以使服务能够使用之前开发的自动化,例如硬件修复过程和一致的授权模型,同时支持根据用户需求快速地重新分配资源。
CERN是一个公共资助的实验室,Kubernetes和OpenStack等开源解决方案提供了一个框架,让它可与其他组织合作并回馈社区。 CERN与许多供应商(如Rackspace和华为)通过CERN openlab框架合作,提供具有Magnum和联合等功能的大规模云。这些经验也通过OpenStack特别兴趣小组、Kubecon Europe等公开演讲和OpenStack in Production等博客共享。
在CERN,一些工作负载在Magnum提供的容器中运行,包括:
Reana /Recast。这些工具提供了执行高能物理中可重用工作流程的框架。容器能够将分析软件和数据打包在一个易于共享的单元中,并且易于扩展内部部署和使用外部资源。工作计划为基于Yadage Workflows(支持分析和数据保存活动)的Kubernetes作业。
Spark即服务。最近,Kubernetes被添加为Spark的资源管理器。Spark可以将驱动程序和执行程序作为pod生成,而Kubernetes负责调度和生命周期。 CERN IT部门的一个团队正在开发一项服务,让用户可以使用OpenStack Magnum按需创建Kubernetes集群,并在Kubernetes上部署Spark,以安全的方式提供与CERN专用文件系统和数据源的所有必需集成。使用很少的命令,用户可以有效地创建具有所需大小的Spark部署(仅在需要的时候),并且可以在运行的时候伸缩部署。
LHC实验检测器触发模拟LHC升级。LHC将在2020年左右进行亮度升级。CERN已经创建了大规模Kubernetes集群来模拟ATLAS实验的不同方法并验证设计,从而对Kubernetes和OpenStack组件进行了一些精细调整。
Gitlab Continuous Integration Runner。Gitlab使用户能够构建CI / CD作业并在共享或项目特定的runner上执行它们。CERN用户可以利用CERN容器服务来测试和构建软件,构建和发布容器镜像和文档,或设置管理整个应用生命周期的复杂管道,包括自动部署到不同的环境中。
联合Kubernetes和外部云。CERN使用联合的Kubernetes集群来支持多云操作。如Kubecon 2018所展示的,多个集群可跨使用不同技术的云无缝集成,包括AWS、GCE和OpenStack云(如CERN和T-Systems Open Telekom Cloud)。
将虚拟机、容器引擎和裸机集成到一个框架下,可以轻松查看使用情况记帐、所有权和配额。Kubernetes的Manila存储驱动程序允许透明地提供文件共享。 这既支持IT部门的容量规划,又支持实验资源协调员确定其工作组的优先级。 资源管理政策,例如工作人员离职时的重新分配或资源到期等,均采用一致的工作流程进行处理。
SK Telecom
韩国最大的电信运营商SK Telecom(SKT)一直在探索在Kubernetes上部署OpenStack的优化方法,目的是在2018年底之前将核心业务功能放到容器化OpenStack上。SKT利用Kolla和Openstack-Helm,部署由Kubespray自动完成。SKT将近100%的开发工作投入OpenStack-Helm,并与AT&T密切合作,以使OpenStack-Helm成功。
SKT还将其他工具整合到他们的OpenStack on Kubernetes工作中。对于日志记录、监控和报警,他们使用Prometheus和Elasticsearch、Fluent-bit和Kibana——这些都是OpenStack-Helm社区中的默认参考工具。SKT将所有这些整合成到一个称为TACO:SKT All Container OpenStack的单一封闭集成解决方案中。
SKT特别重视围绕Kubernetes上容器化的OpenStack的自动化持续集成/连续交付(CI / CD)管道。SKT的CI系统由Jenkins、Rally、Tempest、Docker Registry以及Jira和Bitbucket组成。SKT还开发了一个名为Cookiemonster的开源工具,这是一款弹性测试工具,用于Kubernetes部署,为CI管道执行弹性测试。
每次更改,SKT都会自动构建并测试OpenStack容器和Helm chart。每天,他们会自动安装具有三个控制节点和两个计算节点的高可用性OpenStack部署,从Tempest运行400个测试案例来验证服务,最后使用Cookiemonster和Rally运行弹性测试。完整的CI系统如下图所示:
SKT用Armada自动化部署——这是Airship的一个子项目,是由AT&T在社区中推出的新开放式基础设施项目。SKT正在与社区合作,根据其生产用途为项目提供增强功能。
在实际使用中,SKT已经看到了在Kubernetes上部署OpenStack的许多好处,包括:简单和容易的安装;集群自动修复;能够升级和更新OpenStack,而对正在运行的服务的影响最小;快速采用先进的发布;通过容器隔离完成对Python依赖关系的自动化管理;安全的秘密和配置管理;快速而灵活地推出集群更新。
SKT还在测试这种方法,但正在积极推进在生产环境中运行OpenStack-Helm部署。到今年年底,SKT将至少有三个生产集群,2019年将有第四个也是最大的集群群。这些用例包括:大数据平台(计划于2018年第四季度上线)、虚拟桌面基础设施平台(2018年第四季度生产就绪)、通用内部私有云(计划于2018年第三季度上线)、基于虚拟网络功能的电信网络基础设施(计划于2019年开放)。
SKT还试图通过使用容器化VNF并利用容器的自动修复和快速扩展功能来提高电信基础设施运维的自动化程度。为了允许基于虚拟机的VNF和容器化VNF进行交互,作为OpenStack虚拟网络解决方案的Simplified Overlay Network Architecture(SONA)将支持虚拟机和容器之间的通信。SONA使用Kuryr项目来集成OpenStack和Kubernetes,并使用软件定义的网络技术优化网络性能。
总的来说,SKT发现Kubernetes可以帮助解决部署和运维OpenStack的许多复杂问题。简化OpenStack为他们提供了强大的方法来为5G时代提供先进的基础设施创新。将重点放在Kubernetes上的Openstack,SKT显著提高了转向容器内微服务的能力,有望提供可以交付AI、物联网和机器学习的关键基础设施。
Superfluidity
Superfluidity项目由来自12个欧洲国家的18个合作伙伴组成。它旨在增强实时实例化服务的能力,在网络中的任何位置运行它们,并将它们透明地转移到不同的位置。SUPERFLUIDITY是一个Europoean Resaerch项目,试图通过利用和延伸众所周知的开源项目来构建5G网络的基础设施块。SUPERFLUIDITY将提供融合的基于云的5G概念,可实现移动边缘的创新用例,支持新业务模式,并降低投资和运营成本。
为了实现这些目标,项目联盟正在从传统的基于VM的应用程序转向云原生容器化的应用程序。Kuryr是OpenStack虚拟机、Kubernetes和OpenShift容器化服务之间的桥梁。
该项目利用ManageIQ(作为中央网络功能虚拟化编排器(NFVO)),用于应用程序部署和生命周期管理的Ansible,包括Heat、Neutron和Octavia在内的OpenStack服务,以及用于VM和容器集成的OpenShift Kubernetes。
通过利用从ManageIQ设备执行的Ansible playbook,SUPERFLUIDITY提供了部署应用程序的通用方法。这些应用程序反过来使用由OpenStack Heat模板和OpenShift模板提供的云编排功能。
该联盟在容器内部署5G云无线接入网络(CRAN)和移动边缘计算(MEC)组件。它还在分布式基础设施之上部署高吞吐量应用程序,如视频流。
应用交付向云原生方式的转变,允许我们快速和灵活地安装SUPERFLUIDITY。它可以实现从基于VM的应用程序和组件到容器的平稳过渡,并保持多用性,从而为某些特定应用程序启用VM。这些应用程序的例子有,单路输入/输出虚拟化(SRIOV)所需的特殊安全保护或网络加速。
在规模性能测试中,SUPERFLUIDITY能够以22个pod/秒的速度启动大约1000个pod(从创建到运行的时间)。在OpenStack管理的虚拟机上运行OpenShift(Kuryr扮演pod网络驱动程序的角色,以避免双重封装性能问题),可以实现这一卓越性能。
结论
在过去的几年中,随着容器成为开发人员和企业的重要工具,OpenStack已经利用其模块化设计和广阔的社区集成了许多层次的容器技术。 这表现在,各种机构和组织将容器和OpenStack投入生产,以及使用容器来交付新功能的项目数量增加。OpenStack基金会致力于确保新兴技术能够在OpenStack中得到整合和使用,而容器是这一承诺的重要例子。
要了解更多信息,请访问Containers Landing Page(https://www.openstack.org/containers/),你可以在其中找到本文档的副本以及几十个专注于OpenStack和容器集成的视频链接。Kubernetes SIG-OpenStack有Slack频道、邮件列表和每周会议,如果你直接参与构建Kubernetes和OpenStack集成的社区。
内容覆盖主流开源领域
投稿邮箱