随着应用程序现代化的如火如荼,各大企业都在构建云原生应用程序,并使用Kubernetes(K8s)对其进行编排。随着越来越多的应用程序在容器中运行(越来越多的应用程序参与生产),IT和开发团队正在寻找进一步的优化方法以提高效率。
其中之一是直接在裸金属服务器上运行应用程序和Kubernetes(K8s)平台。好处是什么?更好的性能,更少的成本(告别虚拟机监控程序许可)和工作量(少管理一层)。事实上,K8s具备了在裸金属上直接运行应用程序所需的一切。
缺点是什么?到目前为止,安装、运行和管理裸金属K8s集群是相当具有挑战性的,通常被视为基础服务器和K8s节点之间的“断开连接”体验,更不用说将它们视为多环境K8s管理策略的另一个“位置”。但是,如果有一种方法可以统一体验并像对待其他集群一样对待裸金属服务器呢?
在本文中,我们将了解两种开源技术(和一个项目)如何在几分钟内提供部署和管理裸金属K8s集群所需的一切!
真正的挑战是操作系统
目前运行和管理裸金属K8s集群面临的挑战是,服务器和操作系统与K8s节点的生命周期分开管理。
通常,机器预先配置了操作系统(OS),然后才将K8s组件初始化到正在运行的系统中(使用kubeadm、kops或其他K8s编排工具)。如果物理服务器及其操作系统不属于K8s管理的一部分,会严重妨碍生命周期操作:不支持自动恢复和扩展,并且可能会降低集群和应用程序的可用性,因为使用过时的“内联”过程进行升级。
对于较小的部署和边缘用例,这可能足够好。但是,当涉及到必须