让我们更深入地了解两种巨型的开源技术——OpenStack 和 Kubernetes,它们如何协同工作并相互成就,为服务消费者带来更多好处。

关于 Kubernetes 和 Openstack 的观点主要集中在两个相反的方向。一方面,有人认为 OpenStack 和 Kubernetes 是互补的技术,可以协同工作;另一方面,有人认为 Kubernetes 是 OpenStack 的替代品,反之亦然。虽然在许多情况下,这些工具的使用确实存在重叠,但这并不意味着一个可以轻易取代另一个。它们解决类似的问题,但作用于技术栈的不同层级。因此,它们的结合可以为用户提供比以往任何时候都更强大的自动化和可扩展性。然而,看待这些开源巨头的更好方式是将 Kubernetes 视为 OpenStack 的扩展,一个在 OpenStack 云环境中进行容器编排的优秀工具。
让我们更深入地了解这些开源技术如何协同工作并相互成就。OpenStack 是一个开源云平台,它帮助企业运行和管理其云基础设施。Kubernetes 也是开源技术,是最广泛使用的容器编排器,用于运行和管理容器。一系列 OpenStack 组件和软件解决方案可以有效地结合这两种技术,以达到最佳效果。
但是,我们从使用 Kubernetes 编排的容器扩展 OpenStack 功能中究竟能获得什么?
无缝集成
作为一种开放基础设施,OpenStack 通过 API 提供对计算、存储和网络的访问。平台的灵活性使得在单个系统上部署企业环境所需的一切成为可能——裸机、虚拟机和容器资源。
Kubernetes 使开发人员能够专注于他们的主要目标——创建软件、维护和改进软件。以工作负载为驱动的 K8 技术提供了与开发的云基础设施功能相符的及时工具和接口。
这两套技术都可以宣称它们在企业级基础设施中的广泛集成以及与许多其他 IT 解决方案的兼容性。一方面是 OpenStack,它拥有经过多年验证的传统基于 VM 的技术,另一方面是 Kubernetes,一个高度敏捷和动态的编排系统。结合起来,它们为企业云环境创造了一个完美的组合,并为彼此带来了他们所缺乏的东西。
Kubernetes 集群通过 API 从 OpenStack 消耗计算、存储和网络资源。通过为这些资源构建抽象层,OpenStack 有助于使云系统可靠、可预测和稳定。
例如,Kubernetes 用户经常要求添加许多标准服务,如对象存储和块存储,并将其与他们的容器系统无缝集成。OpenStack 通过支持组织最重要的存储和网络解决方案,为这些需求提供了实用的工具。在 OpenStack 上运行 Kubernetes 可以将容器无缝功能集成到云环境中。
有几种解决方案可以在 OpenStack 之上运行 Kubernetes 和其他应用程序框架。Magnum 是一个 OpenStack 项目,是交付多租户和自助式容器框架的最简单方法。它提供了一个简单的 API 来部署由多种应用程序平台(包括 Kubernetes)支持的完全托管集群。
安全基石
作为强大的编排器,Kubernetes 绝不意味着与传统服务器或虚拟机上的应用程序相比,简化了应用程序管理。前沿技术为开发过程带来了自由,自动化迭代,节省编码的时间和精力。这种相对较新的技术使用了最新的现代安全实践。然而,现代和前沿并不一定意味着对业务需求的最佳决策。经过多年成功使用验证的最佳安全实践可能会因组件升级时发布的一个新的潜在漏洞而破坏。对集群安全和存储在其上的数据的威胁既可能来自外部网络,也可能来自集群本身。配置错误的应用程序或被忽视的漏洞可能会允许攻击者访问容器和主机的文件系统。
定期系统审计和更新集群策略是保护 Kubernetes 集群和减少潜在问题的基本规则。Kubernetes 的基本网络安全措施包括:
- 严格的防火墙规则和来自外部网络的访问限制;
- 资源和用户的配额和身份验证管理;
- 限制容器权限和容器中的权限;
- 可靠的镜像来源,以防止运行不安全应用程序的风险;
- 日志监控和定期的集群安全审计,以自动检测已知漏洞并及时消除它们。
一次安装并设置安全是理想但不可能实现的梦想。在不断变化的云环境中,新的弱点和威胁不断出现。组织应该考虑在裸机上运行 Kubernetes 会导致更高的安全漏洞风险。如果入侵者恰好直接位于主机上,作为操作员,您将面临一个巨大的问题,因为所有共享相同内核的用户都会受到损害。另一方面,OpenStack 可以提供一个统一的云平台,用于编排虚拟机、容器和硬件计算资源,从而将集群和整个系统的安全性保持在较高水平。要实施和管理这样一个平台,公司需要一个经验丰富的专业团队或具有成熟有效性和安全性的正确软件解决方案。
更快的应用程序开发
Kubernetes 为开发人员提供了快速且轻松管理许多带有应用程序的容器的魔杖。OpenStack 为这种魔法的发生创造了氛围,而不会出现延迟和错误。对按需和随时随地访问服务的需求不断增长,使得 K8 和 OpenStack 成为满足这些用户需求的完美盟友。好处从提高应用程序的可移植性到减少开发时间以及增强应用程序的稳定性。同时运行 Kubernetes 和 OpenStack,所需的代码片段可以立即找到、识别和使用。它可以节省数小时的编码和搜索时间。而明智的懒惰,如你所知,是进步的最佳引擎。
开发人员广泛使用 Kubernetes,因为它具有高度需求的功能,使其成为交付应用程序的理想技术
- 作为 隔离 工作区,容器使得在单个裸机或虚拟机上部署多个完全不同的应用程序成为可能,而不会在应用程序之间产生任何冲突。
- 在 Kubernetes 集群中使用 Pod 可以运行单个容器或多个容器,如果它们需要协同工作。为了创建和保持在应用程序组件组内,Pod 封装 一个由多个协同定位的容器组成的应用程序,这些容器紧密相连,需要共享资源。
- Kubernetes 开源技术以 易于维护 的方式在生产环境中运行容器化工作负载,并得到社区持续实践的支持。
今天,没有人怀疑容器化应用程序的好处,但仍然存在关于承载它们的平台争论。根据许多最近的调查,大多数开发人员选择 Kubernetes 作为容器管理的平台第一名。但是,如果您想从 Kubernetes 和 OpenStack 技术中获得更多收益,并提高业务生产力、开发时间节省和应用程序可移植性,您应该一起运行这个杰出的组合。
自动可扩展性
虽然传统的应用程序需要更大的硬件才能扩展(垂直扩展),但基于云的应用程序能够使用离散的硬件(水平扩展)运行。为了满足这些要求,OpenStack 被设计为可水平扩展的。您采购更多的服务器并安装相同配置的服务,而不是切换到更大的服务器。OpenStack 的水平扩展是一个很好的场景,Kubernetes 可以增加更多的灵活性。
Kubernetes 最强大的功能之一是自动扩展,这是一个自动化的过程,否则如果手动完成,将需要大量的精力。目前,Kubernetes 有三种自动扩展方法:水平和垂直扩展 Pod,以及扩展集群。
自动扩展在私有云环境中至关重要;如果没有它,每当条件发生变化,您就必须配置资源然后缩小规模。Kubernetes 自动扩展通过在需要更多资源时自动增加集群节点和 Pod 数量,并在资源减少时调整回更少的节点和 Pod 来节省资源,从而优化资源。
使用 Kubernetes 扩展您的 OpenStack 私有云,可以帮助您享受其他功能。资源可以以高效的方式水平和垂直扩展。
双倍收益与 FishOS
多年的经验使 Sardina 的团队成为创建基于 OpenStack 的私有云环境的专家。我们还提供通过 FishOS 实现的 Kubernetes 无缝集成,为客户提供容器编排工具。通过确保自动推出和回滚、高可用性、异构集群、存储编排和自愈等功能,我们将 Kubernetes 完全集成到 OpenStack 环境中,以提供所有功能。
FishOS 可以在 VM 和裸机服务器上运行符合官方认证测试的 Kubernetes。但让 Kubernetes 运行是一回事,保持系统可扩展、可靠、高效和经济高效是完全不同的事情。FishOS 的关键价值在于私有云中运营的这些关键方面。FishOS 使企业中的操作员能够轻松提供具有成熟的安全保证的多租户 Kubernetes 环境,并帮助开发人员更快、更轻松地交付应用程序。Sardina 的客户还可以从成熟、经过测试和验证的持久块存储、软件定义存储和软件定义网络中受益。
在拥有分离的操作员和消费者部门的较大组织中,在 VM 中运行 Kubernetes 集群是有意义的。这使得组织能够受益于 VM 强大的安全隔离,以及它们提供的可靠性和弹性。OpenStack 能够为 Kubernetes 提供在裸机节点上的支持。
结合 OpenStack 和 Kubernetes 技术的优势远比单独使用它们更明显。难怪 OpenStack 基金会致力于确保新兴技术可以合并并用于 OpenStack 中,而容器就是这一承诺的实际例子。OpenStack 利用其设计和庞大的社区来在不同层级集成容器技术。通过在 OpenStack 云环境中运行 Kubernetes,组织可以使收益翻倍。两个开源巨头协同工作可以在安全性、弹性和可扩展性方面取得更好的结果,从而加快应用程序开发和基础设施创新交付。
发表评论