建议需要灵活扩展的组织在裸机上部署 Kubernetes。本文介绍了在裸机上尝试 K8s 的六个理由
如果组织需要扩展需求易预测的中小型应用系统,公共云上的 Kubernetes 是一种合适的解决方案。然而,对于希望加强控制和提升稳定性能的组织来说,裸机云却是不二的选择。
容器编排工具为分布式应用程序提供了灵活性、可移植性、速度和更轻松的扩展,从而方便软件开发。作为编排领域事实上的领导者,Kubernetes 得到了许多提供托管 Kubernetes 服务的流行云供应商的支持。
虽然托管 Kubernetes 服务提供了一种简单的方式来部署和开始使用 Kubernetes,但主要提供基于虚拟机的基础架构。虚拟机对供应商来说很方便,并在许多情况下为客户提供了很好的价值。然而,在裸机服务器上部署Kubernetes 有几个显著的优势。
裸机 Kubernetes 部署的若干好处
裸机简化网络构建和管理
裸机 Kubernetes 部署摈弃了虚拟机配置中存在的虚拟机管理程序。如果没有虚拟化层,构建网络会更容易。裸机的好处贯穿于整个开发过程。缺少虚拟化层降低了系统的复杂性,使故障排除起来更容易。由于配置更精简,管理服务自动化和软件部署也更容易。
裸机服务器对于要求苛刻的工作负载和应用系统而言更具成本效益
虚拟机云实例为需求易预测的中小型应用系统提供了一种廉价的解决方案。另一方面,需要高端硬件和能够快速扩展的较复杂项目可能发现裸机更具成本效益。如果是同样的成本,裸机配置往往提供比虚拟机配置更强大的功能。横向扩展是 Kubernetes 最重要的卖点之一。简化扩展的裸机配置可以使采用该编排平台的组织方便拓展业务。比如说,配备第三代英特尔至强可扩展 CPU 的服务器提供了出色的内置可扩展性,从而可以简化基础架构管理。
裸机提供更好的性能
摈弃系统配置的虚拟机管理程序开销有助于大幅提升性能。应用程序可以直接访问CPU、内存及其他硬件资源,从而大大缩短延迟,并最大限度地提高资源利用率。没有虚拟机管理程序开销,意味着对延迟敏感的工作负载的性能更好,比如媒体和金融行业的垂直应用系统。但好处不仅仅在于缩短延迟——任何需要强大硬件的应用系统和工作负载都受益于直接访问裸机。这包括用于 3D 渲染、科学和金融建模的 GPU 密集型应用软件以及需要大量内存的数据库软件。与虚拟化解决方案相比,促使裸机性能卓越的另一个因素是,虚拟机与同一个物理机上的其他虚拟机共享硬件。相邻虚拟机会耗尽资源,因而严重妨碍性能。若使用裸机,你部署的 Kubernetes 可以享用专用资源。
裸机配置天生更安全
由于是单租户环境,裸机提供了卓越的安全性。虚拟机配置中存在的 “嘈杂邻居” 效应面临潜在中断的风险更大。裸机管理员全面控制系统配置,这降低了网络攻击的风险。对于处理敏感信息,并需要满足 HIPAA、GDPR 或其他任何行业法规的应用系统而言,强烈建议在裸机上部署 Kubernetes。
裸机让你可以创建针对特定工作负载而优化的配置
虚拟机实例通常托管在旨在满足一般工作负载需求的配置上。这意味着非常特定的硬件配置很少可供使用。裸机配置可高度定制,可加以优化来支持要求苛刻的特定工作负载。
裸机不被供应商工具束缚
托管 Kubernetes 服务提供了一种方法,可消除与部署和管理云原生应用程序相关的复杂性。然而对于需要横向扩展的组织而言,这可能带来了重大障碍。一旦公司扩展到超出其托管 Kubernetes 服务提供商所能提供的范围,迁移到另一种解决方案可能会因代码依赖项而困难重重。裸机上的 Kubernetes 则使管理员可以全面控制底层的硬件基础架构,还使组织可以避免供应商锁定现象。
本地 vs 云裸机
裸机服务器可以部署在本地,管理员全面控制硬件、网络连接和冷却系统。然而,本地部署使系统扩展依赖可用于托管机器的物理空间容量。此外,服务器的单一位置可能导致相隔遥远的位置出现性能问题。
裸机云解决方案提供了几乎无限制的可扩展性,同时提供了配置可支持扩展的专用服务器。
构建裸机 Kubernetes 的最佳实践。总而言之,以下是成功部署 Kubernetes 裸机的几个诀窍:
-
使用裸机云。裸机云使扩展变得更容易,而且不需要大量的物理资源
-
在靠近客户的位置部署集群,以此降低延迟
-
使用 Kubernetes 控制器使基础架构管理更容易
-
要创建有弹性的系统,应创建更小的节点,哪怕这意味着你必须增加节点的数量。
-
使用 SUSE Rancher 等解决方案自动化来管理你部署的环境。Rancher 是一种流行的开源解决方案,可用于管理 Kubernetes,从而使集群部署起来容易得多
文章来源:https://dzone.com/articles/use-kubernetes-on-bare-metal
评论区