在 OpenStack 的 2021 年用户调查中,大多数受访者表示他们使用 Kubernetes 作为容器编排或平台即服务 (PaaS) 工具来管理他们的 OpenStack 应用程序。 简而言之,OpenStack 和 Kubernetes 协同工作,使系统管理员、开发人员和用户都受益。
说用户依赖这两种技术是一回事,但我很想知道是如何依赖的。 我发现了几种典型的用例。
OpenStack 上的 Kubernetes
Kubernetes 需要在某个地方运行,而这个地方可以在 OpenStack 虚拟机中。 由于 OpenStack 的设计和实施旨在大规模运行,因此它使 Kubernetes 集群也能够做到这一点。 OpenStack 的 API 为 Kubernetes 集成提供了一致的抽象层。
Kubernetes 容器中的 OpenStack
Kubernetes 容器为运行高可用性基础设施提供了独立性和相对轻量级的支架。 使用容器的一个原因是它们提供了快速的基础设施部署和拆卸,并且具有很大的灵活性。 运行容器化的 OpenStack 使您能够获得容器的优势,以及 OpenStack 的所有强大功能和可扩展性。
这是一个我见过的正在使用的启动脚本,它演示了在 OpenStack 上创建新主机和 Kubernetes 实例的简易性
#!/usr/bin/env bash
CWD="$(pwd)"
${OSH_INFRA_PATH:="../openstack-helm-infra"}
pushd ${OSH_INFRA_PATH}
make dev-deploy setup-host
make dev-deploy k8s
popd
带有 Kubernetes 的独立 OpenStack
也许您有另一个基础设施提供商来运行您的 Kubernetes 集群,但您想利用您存储数据的方式,并且您不喜欢提供商的解决方案。 好吧,一些 OpenStack 服务已经过调整,可以在没有 Nova 的情况下运行以进行计算。 SIG 云提供商有各种插件可用于与 Kubernetes 集群集成。 不仅有用于存储的插件,还有用于控制入口、自动修复、webhook 身份验证授权和密钥管理的插件。 如果您不需要 OpenStack 带来的所有功能,但仍然希望将它的一些服务与 Kubernetes 结合使用,那么您也可以这样做。

(Kendall Nelson, CC BY-SA 4.0)
Ironic 预配置硬件上的 Kubernetes
Ironic 是 OpenStack 的裸机配置服务,它配置运行容器所需的基础设施。 这使 Kubernetes 容器具有直接与计算、网络和存储资源集成的优势。 通常,容器运行时会出于安全考虑对用户隐藏这一点,但在用户不需要隔离的部署中,操作员可以与集群交互并更快地进行更改。 在由 Ironic 预配置的硬件之上直接运行 Kubernetes 容器,使容器的敏捷性能够减轻操作员的日常难题,例如部署和升级。
有关 Kubernetes 和 OpenStack 如何协同工作的各种方式的更多详细信息,请查看此 PyCon 演示文稿。
下一步:尝试一下!
那么现在呢? 既然您已经了解如何一起使用 OpenStack 和 Kubernetes,那就深入研究吧! 使用本地 DevStack 安装尝试它们,看看是否有适合您的组合。 根据用例,两个社区的融合可能会为您的努力带来价值。 或者,如果您发现需要弥合的差距,请参与进来并引起社区的注意!
两个开源社区,一个开放基础设施世界
虽然这些项目在技术上有很多契合的方式,但真正的message是,当您利用两个协同工作的开源社区的优势时,您的基础设施可以变得更好,并解决用户更多的难题。
工作在双方协作完成,并且 OpenStack 和 Kubernetes 都有相应的支持系统。
OpenStack 的项目团队致力于使其服务独立存在,并致力于升级部署服务以与 Kubernetes 集成。 他们发展和增强像 Kuryr 这样的项目,以桥接容器和 OpenStack 的网络。 OpenStack 服务团队一直在寻求帮助。 有什么反馈或遇到障碍? 请在 openstack-discuss 邮件列表中联系。
在 Kubernetes 方面,SIG 云提供商致力于开发和扩展 Cloud Provider OpenStack 中可用的插件列表,以补充和集成 Kubernetes 容器。 他们测试集成点,以确保他们的项目在 OpenStack 基础设施上运行。 不确定如何配置插件或想知道某些选项启用了什么? 加入 #provider-openstack k8s Slack 频道,尽管提问!
组成 Kubernetes 和 OpenStack 社区的人们积极主动地进行协作。 在技术社区中,长期以来,一个普遍的误解是,这两个项目将永远相互竞争,争夺主导地位,但现在的说法已经改变。 Kubernetes 和 OpenStack 协同工作。 它们几乎以任何必要的方式集成,以使运营商的生活更轻松,并使用户功能更灵活和快速。
考虑到开发人员、文档编写者、用户和运营商的数量都在努力使这两个软件项目更好、更协同,您为什么不一起使用它们呢? 两个独立的社区可能支持 Kubernetes 和 OpenStack,但我们都在共同努力,以进一步推动和成功一个开放基础设施世界。
评论已关闭。