白皮书《Leveraging Containers and OpenStack》(下)

Kata Containers——通过虚拟化保护应用程序


Kata Containers是一个新的开源项目,是轻量级虚拟机的一种新颖实现,可以无缝集成到容器生态系统中。 Kata Containers与容器一样轻巧快速,并与容器管理层集成(包括流行的编排工具,如Docker和Kubernetes),同时还提供了VM的安全优势。Kata Containers遵循Open Container Initiative(OCI)标准——OpenStack Foundation是该标准的积极分子。Kata Containers托管于OpenStack Foundation,但与OpenStack项目分开,拥有自己的治理和社区。


行业向容器的转变带来了独特的挑战,即在多租户环境中保护用户工作负载,同时兼顾可信和不可信工作负载。Kata Containers使用硬件支持的隔离作为pod中每个容器或容器集合的边界。此方法解决了传统容器架构构中共享内核的安全问题。


Kata Containers非常适合按需、基于事件的部署,例如持续集成/持续交付,以及运行时间更长的Web服务器应用程序。Kata还支持从传统虚拟化环境轻松过渡到容器,因为它支持传统访客内核和设备传递功能。Kata Containers提供增强的安全性、可扩展性和更高的资源利用率,同时简化整体堆栈的实现。


640?wx_fmt=png


OpenStack和Kubernetes集成


选择开源平台的主要好处之一是跨这些平台的标准部署的接口的稳定性。 OpenStack Foundation和Cloud Native Computing Foundation(CNCF)都为OpenStack云和Kubernetes集群维护互操作性标准,保证库、应用程序和驱动程序可以在所有平台上运行,无论它们在何处部署。这为“肩并肩”集成创造了机会,允许OpenStack和Kubernetes利用另一方提供的资源。 


Kubernetes社区中的OpenStack Special Interest Group(SIG-OpenStack)维护着Cloud Provider OpenStack插件。除了在OpenStack上运行Kubernetes的云provider接口外,它还维护了几个允许Kubernetes利用各个OpenStack服务的驱动程序。这些驱动包括:


——两个独立的Cinder驱动程序。Flex Volume驱动程序使用基于exec的模型与驱动程序接口,以及容器存储接口(CSI)驱动程序(该驱动程序使用容器编排系统的标准接口将任意存储系统暴露给其容器工作负载)。这些驱动程序支持70多种存储驱动程序,可通过单个Cinder API连接大量经过实战考验的专有和开源存储设备。


——Keystone的基于webhook的身份验证和授权接口。每种模式、身份验证和授权都可以彼此独立配置。虽然正在进一步开发中,但该接口支持软多租户(支持Kubernetes RBAC)。


OpenStack和Kubernetes都支持由各种驱动程序支持的高动态网络模型。由于这些标准网络接口,可以轻松构建具有强大网络集成的独立OpenStack和Kubernetes集群。在OpenStack中,Kuryr项目生成一个通用网络接口(CNI)驱动程序,为Docker和Kubernetes提供Neutron网络。另一方面,像Calico这样的项目提供Neutron驱动程序,通过标准的Neutron API直接访问流行的Kubernetes网络覆盖。


III 案例研究


OpenStack社区的许多成员正在为与容器相关的各种OpenStack项目提供新代码,评估容器的含义和好处,并在生产中使用容器来解决挑战并解锁新功能。本节重点介绍一些最有趣的案例研究。


AT&T


AT&T是全球最大的电信公司之一,它利用容器技术来部署和管理OpenStack本身,依靠基础设施容器来实现简单性和效率,目的是在容器化的OpenStack上构建5G基础设施。


为了实现目标,AT&T正在使用OpenStack-Helm项目在Kubernetes集群中编排基于LOCI的OpenStack镜像,同时利用Kubernetes、Docker和核心OpenStack服务。AT&T还使用Bandit、Tempest、Patrole和许多其他OpenStack项目。AT&T还在社区中合作推出了一系列名为Airship的云服务项目——该项目提供从裸机到运行OpenStack工作负载的生产级Kubernetes的云。


640?wx_fmt=jpeg


AT&T发现容器化允许其将传统的部署类型活动转移到左侧,并使用CI / CD进行验证。Kubernetes还提供了巨大的可扩展性和弹性,以及允许OpenStack-Helm以声明方式配置操作行为,注入配置,完成滚动升级和更新而不影响租户工作负载的钩子。


利用容器技术来部署和管理OpenStack不应该对租户产生明显的影响——除了为它们提供具有更高弹性的平台,能够更频繁地获得云功能并且中断最少。AT&T的运维团队的新经验将更多的努力转移到定义站点的声明性配置,并让面向Kubernetes的自动化自行进行部署。


AT&T旨在利用这种架构为虚拟网络功能提供支持——这些功能构成了其以消费者和业务为中心的产品和服务的支柱。AT&T的容器化Network Cloud的初始使用案例将是新兴5G网络的VNF的初始部署。OpenStack过去、现在和将来都非常适合AT&T的聚焦于VNF的云用例。容器化只是一种演变,允许AT&T以更可靠、快速、零接触的方式部署、管理和扩展其OpenStack基础设施。


在运维方面,AT&T仍在测试这种方法,但已承诺很快将5G服务投入生产。OpenStack和容器技术将成为这项服务的支柱,这对AT&T的数百万用户来说具有很强的战略性。部署5G服务将证明OpenStack和容器在大规模分布式生产环境中的相关性。


CERN


CERN使物理学家和工程师能够利用世界上最大和最复杂的科学仪器探索宇宙的基本结构,研究物质的基本成分——基本粒子。CERN云为物理学家提供科学计算的计算资源,分析来自大型强子对撞机和其他实验的数据。


自2013年以来,CERN一直在运行OpenStack,目前正在单个云中为虚拟机、裸机和容器提供服务。容器可以在虚拟机或裸机上运行,具体取决于用例,所有这些都通过OpenStack Magnum进行配置。CERN提供各种不同的容器技术,包括Kubernetes、Docker Swarm和DC / OS。


CERN目前在OpenStack之上运行通过Magnum配置的250个容器集群。


640?wx_fmt=jpeg


CERN的OpenStack云为用户提供自助服务访问权,可通过一些命令或Web GUI请求配置好的容器引擎。这允许快速利用这些技术,并且如果需要可以扩展到1000个节点。可提供带有内置监控并集成到CERN存储和身份验证服务的最佳实践配置。


有效地运行此资源池,在不需要额外操作人力的情况下扩展它需要一致的管理流程和工具。通过Magnum在OpenStack之上添加容器使服务能够使用先前开发的自动化,例如硬件修复过程和一致的授权模型,同时根据用户需求快速重新分配资源。


CERN是一个公共资助的实验室,Kubernetes和OpenStack等开源解决方案提供了一个框架,使其可以与其他组织协作并回馈社区。CERN通过CERN openlab框架与众多供应商合作,提供带有多种功能的大规模云。这些经验也通过OpenStack特殊兴趣小组与其他科学如Square Kilometer Array(SKA)、公共演示文稿(如Kubecon Europe)和博客(如OpenStack in Production)共享。


640?wx_fmt=jpeg


在CERN,几个工作负载在Magnum提供的容器内运行,包括:


Reana /Recast


这些工具为在高能物理中执行可重复使用的工作流程提供了框架。容器能够将分析软件和数据打包在一个易于共享的单元中,并且可以轻松扩展内部部署和使用外部资源。接下来的工作为基于Yadage Workflows的Kubernetes作业,支持分析和数据保存活动。


Spark即服务


最近,Kubernetes被添加为Spark的资源管理器。Spark可以生成驱动程序和执行程序,而pod和Kubernetes负责调度和生命周期。CERN IT部门的一个团队正在开发一项服务,让用户可以使用OpenStack Magnum按需创建Kubernetes集群,并在Kubernetes上部署Spark,以安全的方式提供与CERN专用文件系统和数据源的所有必需集成。通过少量命令,用户可以有效地创建具有所需大小的Spark部署,仅在需要的时候创建,并且可以选择在运行的时候扩展或缩小部署。


用于LHC升级的LHC实验检测器触发模拟


大型强子对撞机将在2020年左右升级到更高的发光度。CERN已经创建了大规模Kubernetes集群来模拟ATLAS实验的不同方法并验证设计,从而对Kubernetes和OpenStack组件进行了一些微调。


Gitlab持续集成运行器


Gitlab使用户能够构建CI / CD作业并在共享或项目特定的运行器上执行它们。CERN用户可以利用CERN Container Service来测试和构建软件,构建和发布容器镜像和文档,或设置管理整个应用程序生命周期的复杂管道,包括自动部署到不同的环境中。


多个外部云的Federated Kubernetes compute farm


CERN使用Kubernetes集群联合来支持多云操作。多个集群可以无缝集成在使用不同技术的云中,包括AWS、GCE和OpenStack云(如CERN和T-Systems Open Telekom Cloud)。


在单个框架下集成虚拟机、容器引擎和裸机,让用户可以轻松查看使用情况、所有权和配额。Kubernetes的Manila存储驱动程序允许透明地配置文件共享。这支持IT部门进行容量规划,支持实验资源协调员确定其工作组的优先级。资源管理策略,如在工作人员离开时重新分配资源或使资源到期,将在一致的工作流程中处理。


SK Telecom


SK Telecom(SKT)是韩国最大的电信运营商,一直在探索在Kubernetes上部署OpenStack的最优方法,目的是将核心业务功能应用于容器化OpenStack。


SKT利用Kolla和Openstack-Helm, 部署由Kubespray自动完成。SKT将近100%的开发工作投入OpenStack-Helm,并与AT&T密切合作,推动OpenStack-Helm的成功。


SKT还在其关于Kubernetes上的OpenStack的工作中加入了其他工具。对于日志记录、监控和警报,SKT使用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图表。每天,他们会自动安装一个高度可用的OpenStack部署,包含三个控制节点和两个计算节点,从Tempest运行400个测试用例来验证服务,最后使用Cookiemonster和Rally运行弹性测试。完整的CI系统如下图所示:


640?wx_fmt=jpeg


SKT通过Airship的子项目Armada实现自动化部署——该项目由AT&T作为一个新的开放式基础设施项目在社区推出。SKT正在社区中进行合作,根据其生产用途为项目提供增强功能。


在实际应用中,SKT已经看到了在Kubernetes上部署OpenStack的大量好处,包括:简单易用的安装;集群自动修复;能够升级和更新OpenStack并对运行的服务影响最小;快速采用高级发布方法;通过容器隔离完成Python依赖关系的自动化管理;安全的秘密和配置管理;快速灵活地推出集群更新。


SKT仍在测试这种方法,但正在积极地在生产中运行OpenStack-Helm部署。很快,SKT将至少拥有三个生产集群,后续还有第四个和最大的生产集群将上线。这些用例包括:大数据平台、桌面基础设施架构平台、通用内部私有云、基于虚拟网络功能构建的电信网络基础设施。


SKT还试图通过利用容器化的VNF并利用容器的自动修复和快速扩展功能来改善电信基础设施运维的自动化。为了允许基于虚拟机的VNF和容器化VNF之间的交互,Simplified Overlay Network(SONA)——OpenStack的虚拟网络解决方案,将支持VM和容器之间的通信。 SONA使用Kuryr项目集成OpenStack和Kubernetes,并使用软件定义的网络技术优化网络性能。


总的来说,SKT发现Kubernetes有助于解决部署和运维OpenStack的许多复杂问题。简化OpenStack为他们提供了一种强大的方法,可以为5G时代提供先进的基础设施创新。Kubernetes上的Openstack,大大提高了他们应对容器中微服务不断演变的能力,成为提供人工智能、物联网和机器学习的关键基础设施。


Superfluidity


Superfluidity项目由来自12个欧洲国家的18个合作伙伴组成。它旨在增强实时实例化服务的能力,在网络中的任何位置运行它们,并将它们透明地转移到不同的位置。SUPERFLUIDITY是一个欧洲研究项目(Horizon 2020),旨在通过利用和扩展知名的开源项目,为5G网络构建基础设施模块。SUPERFLUIDITY将提供融合的基于云的5G概念,可在移动边缘实现创新用例,增强新业务模式,并降低投资和运维成本。


为了实现这些目标,项目联盟正在从传统的基于VM的应用程序转移到Cloud Native容器化应用程序。 Kuryr是OpenStack虚拟机、Kubernetes和OpenShift容器化服务之间的桥梁。


该项目利用ManageIQ作为中央网络功能虚拟编排器(NFVO),Ansible来进行Application部署和生命周期管理,OpenStack服务(包括Heat,Neutron和Octavia,以及Kubernetes)通过OpenShift实现虚拟机和容器的集成。


640?wx_fmt=jpeg


通过利用从ManageIQ设备执行的Ansible playbooks,SUPERFLUIDITY提供了一种部署应用程序的常用方法。这些应用程序反过来使用OpenStack Heat模板和OpenShift模板提供的云编排功能。


该联盟在容器内部署5G云无线接入网络(CRAN)和移动边缘计算(MEC)组件。它还在分布式基础架构之上部署高吞吐量应用程序,如视频流。


转向应用程序交付的云原生方法可实现快速、灵活的SUPERFLUIDITY安装。它可以实现从基于VM的应用程序和组件到容器的平稳过渡,同时保留为某些特定应用程序启用VM的多功能性。例子是单路输入/输出虚拟化(SRIOV)所需的特殊安全保护或网络加速。


在大规模性能测试中,SUPERFLUIDITY能够以22个pod/秒的速度启动大约1000个容器。通过在OpenStack管理的VM上运行OpenShift实现了这一卓越的性能,其中Kuryr充当pod网络驱动程序。


IV  结论


在过去几年中,随着容器成为开发人员和组织的重要工具,OpenStack利用其模块化设计和广泛的社区将容器技术集成到多个层面。 这体现在,各种组织将容器和OpenStack投入生产,以及与容器一起工作以提供新功能的项目数量越来越多上。OpenStack基金会致力于确保可以在OpenStack中整合和使用新兴技术,而容器则是该承诺的重要例子。



原文链接:

https://www.openstack.org/containers/leveraging-containers-and-openstack/


获取更多开源云技术资讯&大咖交流&免费活动,欢迎添加开源云中文社区小助手,备注开源云!

640?wx_fmt=jpeg

(长按识别二维码添加)


Book Description Containers are one of the most talked about technologies of recent times. They have become increasingly popular as they are changing the way we develop, deploy, and run software applications. OpenStack gets tremendous traction as it is used by many organizations across the globe and as containers gain in popularity and become complex, it’s necessary for OpenStack to provide various infrastructure resources for containers, such as compute, network, and storage. Containers in OpenStack answers the question, how can OpenStack keep ahead of the increasing challenges of container technology? You will start by getting familiar with container and OpenStack basics, so that you understand how the container ecosystem and OpenStack work together. To understand networking, managing application services and deployment tools, the book has dedicated chapters for different OpenStack projects: Magnum, Zun, Kuryr, Murano, and Kolla. Towards the end, you will be introduced to some best practices to secure your containers and COE on OpenStack, with an overview of using each OpenStack projects for different use cases. Table of Contents 1: WORKING WITH CONTAINERS 2: WORKING WITH CONTAINER ORCHESTRATION ENGINES 3: OPENSTACK ARCHITECTURE 4: CONTAINERIZATION IN OPENSTACK 5: MAGNUM – COE MANAGEMENT IN OPENSTACK 6: ZUN – CONTAINER MANAGEMENT IN OPENSTACK 7: KURYR – CONTAINER PLUGIN FOR OPENSTACK NETWORKING 8: MURANO – CONTAINERIZED APPLICATION DEPLOYMENT ON OPENSTACK 9: KOLLA – CONTAINERIZED DEPLOYMENT OF OPENSTACK 10: BEST PRACTICES FOR CONTAINERS AND OPENSTACK What You Will Learn Understand the role of containers in the OpenStack ecosystem Learn about containers and different types of container runtimes tools. Understand containerization in OpenStack with respect to the deployment framework, platform services, application deployment, and security Get skilled in using OpenStack to run your applications inside containers Explore the best practices of using containers in OpenStack.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值