对于将数据中心转变为现代基础设施的许多电信服务提供商和企业而言,转向容器化工作负载已成为当务之急。但是,供应商通常不会选择完全转向容器化模式。

数据中心还必须支持虚拟机(VM)以跟上传统VM的步伐。因此,使用Kubernetes管理带有OpenStack和容器的虚拟机变得流行。在2018年进行的OpenStack调查中,有61%的OpenStack部署在与Kubernetes“合作”。

最近的一些平台合并和发布清楚地表明了这一趋势。例如:

——AT&T与Mirantis达成3年协议,开发由Kubernetes和OpenStack支持的5G核心;

——Platform9的Managed OpenStack and Kubernetes为服务提供商和开发人员提供捆绑在解决方案堆栈中的必需功能集,也支持Kubernetes on VMware平台;

——诺基亚的CloudBand发布包含用于工作负载编排的Kubernetes和OpenStack;

——OpenStack Foundation最近宣布的Airship项目将OpenStack和Kubernetes的强大功能集于一身。

电信网络的核心部分或数据中心的任何虚拟化核心都经历了一场革命,从Physical Network Functions(PNFs)转变为Virtual Network Functions(VNFs)。而组织现在正在采用Cloud-Native Network Functions(CNFs)来帮助利用CI/CD驱动的敏捷性。

2019年5月,在Kubernetes Barcelona电信用户组会议的一张幻灯片中展示了这一点——该幻灯片由CNCF执行董事Dan Kohn和CNCF生态系统总监Cheryl Hund提供。

根据这一幻灯片,目前,部署在虚拟机(VNFs)和容器(CNFs)中的应用程序工作负载可以在裸机或任何云上分别使用OpenStack和kubernetes进行管理。ONAP的可选部分是一个容器化的MANO框架,由Kubernetes管理。

正如Kohn在电信用户组会议中所讨论的,随着Kubernetes在云原生迁移方面的进展,CNF将是一个关键的工作负载类型。Kubernetes将用于编排CNF和VNF。VNF将与Kubernetes之上的Kubevirt、Virtlet或Openstack隔离。

使用Kubernetes和OpenStack管理工作负载的方法

首先我们来了解将Kubernetes与OpenStack集成以管理容器和VM的方法。

第一种方法可以是一种基本的方法,其中Kubernetes与OpenStack共存来管理容器。它提供了良好的性能,但你不能通过单个pane来管理统一的基础设施资源。这会导致与跨工作负载规划和设计策略的相关问题。此外,很难诊断任何影响运行资源性能的问题。

第二种方法是在OpenStack管理的VM中运行Kubernetes集群。这使得基于OpenStack的基础设施能够在集中管理的OpenStack控制系统中利用kubernetes的优点。此外,它还允许OpenStack环境中的容器具有全功能的多租户和安全性优势。然而,这会导致性能滞后,需要额外的工作流程来管理托管Kubernetes的VM。

第三种方法是一种创新的方法,倾向于完全云原生环境。在这种方法中,OpenStack可以替换Kubernetes来管理容器和VM。工作负载完全利用了硬件加速器、智能网卡等。通过这种方法,可以为任何数据中心提供带有容器工作负载的集成VNS解决方案,但这需要改进OpenStack中的网络功能(SFC、Provider Networks、Segmentation)。

Kubernetes vs.OpenStack?

如果你看一下美国VMWorld 2019的日程,可以清楚地看到Kubernetes将无处不在。66个会议和一些实践培训,聚焦于IT基础设施各个方面的Kubernetes集成。

这意味着OpenStack的终结吗?并不是。对于任何一个希望在逐渐转向新的基于容器的环境的同时坚持使用传统工作负载的组织来说,这两个系统的结合将是一个更好的选择。

Kubernetes和OpenStack将如何结合?

LinkedIn上Michiel Manten写了一篇非常不错的帖子。他说,容器和VM各有缺点。两者都有自己的用例和编排工具。如果将OpenStack和Kubernetes恰当地结合起来,在VM中运行一些工作负载,从而在服务器和容器中获得隔离的好处,那么OpenStack和Kubernetes将相得益彰。实现这种组合的一种方法是在OpenStack中的VM中运行Kubernetes集群,这样可以消除容器的安全隐患,同时利用VM的可靠性和弹性。

有什么好处?

结合起来的系统将立即使当前的所有工作负载受益,从而使企业能够开始其现代化进程,保持高速而成本比商业解决方案低得多。

Kubernetes和OpenStack对于任何形式的云或新的远端云来说都是一个理想而灵活的解决方案,其中自动化部署、编排和延迟将成为关注的焦点。

所有工作负载都将位于单个IT生态系统中的单个网络中。这使得应用高级网络和安全策略更加容易。

OpenStack支持目前使用的大多数企业存储和网络系统。在OpenStack上运行Kubernetes可以实现容器与IT基础设施的无缝集成。无论你是想用裸机或VM运行容器化应用程序,OpenStack都允许你以最适合业务的方式运行容器。

Kubernetes对基础设施具有自愈能力。当它被集成到一个OpenStack中时,它可以实现对核心服务和计算节点的简单管理和故障恢复。

OpenStack Stein有数个增强功能来支持堆栈中的Kubernetes。OpenStack Certified Kubernetes安装程序背后的团队使得在5分钟内部署集群中的所有容器成为可能(不管有多少个节点),之前是10~12分钟。有了这个,我们可以在5分钟内启动一个非常大规模的kubernetes环境。

采取了5G措施的电信服务提供商一致认为,对于5G网络而言,云原生核心是必不可少的。OpenStack和Kubernetes是当今成熟的开源运维和编排框架。为数据中心提供灵活性是Kubernetes的关键能力,而OpenStack有数个成功的项目专注于工作负载的存储和网络,并支持无数的应用程序。

信息化和软件服务网 - 助力数字中国建设 | 责编:莎莉