随着应用程序现代化的如火如荼,各大企业都在构建云原生应用程序,并使用Kubernetes(K8s)对其进行编排。随着越来越多的应用程序在容器中运行(越来越多的应用程序参与生产),IT和开发团队正在寻找进一步的优化方法以提高效率。

其中之一是直接在裸金属服务器上运行应用程序和Kubernetes(K8s)平台。好处是什么?更好的性能,更少的成本(告别虚拟机监控程序许可)和工作量(少管理一层)。事实上,K8s具备了在裸金属上直接运行应用程序所需的一切。

缺点是什么?到目前为止,安装、运行和管理裸金属K8s集群是相当具有挑战性的,通常被视为基础服务器和K8s节点之间的“断开连接”体验,更不用说将它们视为多环境K8s管理策略的另一个“位置”。但是,如果有一种方法可以统一体验并像对待其他集群一样对待裸金属服务器呢?

在本文中,我们将了解两种开源技术(和一个项目)如何在几分钟内提供部署和管理裸金属K8s集群所需的一切!

真正的挑战是操作系统

目前运行和管理裸金属K8s集群面临的挑战是,服务器和操作系统与K8s节点的生命周期分开管理。

通常,机器预先配置了操作系统(OS),然后才将K8s组件初始化到正在运行的系统中(使用kubeadm、kops或其他K8s编排工具)。如果物理服务器及其操作系统不属于K8s管理的一部分,会严重妨碍生命周期操作:不支持自动恢复和扩展,并且可能会降低集群和应用程序的可用性,因为使用过时的“内联”过程进行升级。

对于较小的部署和边缘用例,这可能足够好。但是,当涉及到必须在数据中心或与provider一起运行和管理许多裸机时(例如,对于AI/ML大规模处理),服务器和操作系统需要的“独特”服务将成为一个令人头痛的问题、风险以及最终的成本。

如今,大多数组织都在虚拟机监控程序上运行K8s,以简化管理节点和K8s的体验。好处是显而易见的:在节点和配置方面实现了一致性,同时还实现了基本操作,如集群扩展、允许滚动升级,甚至可以通过将故障节点替换为健康节点来自动修复故障节点。

如果我们能够在裸金属K8s集群上运行这些完全相同的功能,并获得在裸金属上运行应用程序的效率,会怎么样?即提高了性能,降低了管理程序增加的成本和操作复杂性。

解决方案:桥接Cluster API和 Canonical MaaS

在开始之前,让我们先看看配料:

声明式生命周期管理最流行的K8s子项目之一是Cluster API。Cluster API是一个项目,它为集群生命周期管理带来了K8s风格的API和“最终状态”方法。它旨在跨各种数据中心和云环境工作。集群API的采用在过去几年中飞速发展,主要的现代容器和K8s管理平台都支持它。Cluster API的声明性方法使得一致地管理许多不同的集群和根据需要进行扩展变得非常容易。当然,尽管Cluster API是一个声明式管理K8s环境的伟大工具,但它并不能解决我们的问题,因为到目前为止,还没有办法将其用于裸金属服务器。

这就是Canonical MaaS的用武之地。对于裸金属服务器生命周期管理,虽然有几种不同的接口和平台(Metal3、Tinkerbell、Ironic等),但最流行和最成熟的(开发了近十年)可能是Canonical MaaS,它允许裸金属服务通过类似IaaS云的丰富API集进行管理;从分配机器、配置网络、部署操作系统等各个方面,MaaS的吸引力在于它通过IPMI或Redfish接口为Cisco、Dell、HP和大多数其他供应商的不同类型的硬件供应商提供了广泛的支持。

为了支持跨各种环境(云、数据中心、边缘位置)的资源调配,Cluster API提供了一个抽象层,其中每个环境的实现都在一个单独的“provider”组件中。这个“provider”组件是Cluster API抽象(集群、机器等)和底层环境之间的桥梁。例如,当给定Cluster/AWSCluster资源时,带有“AWS”提供程序组件的Cluster API将管理AWS上的基础设施(管理VPC、子网、EC2实例、负载均平衡器等的生命周期)。

换句话说,为了使用Canonical MaaS作为接口来表示要使用Cluster API管理的裸金属服务器,需要开发一个provider。这是一个不能忽视的领域,Spectro Cloud已经发布第一个Cluster API MaaS provider(“cloud-api-provider-maas”),使裸金属K8s对任何人都很方便。

此provider使用Canonical MaaS来提供、分配和部署计算机,配置计算机网络,并管理所有控制平面节点的DNS映射。一旦用户为Cluster/MaasCluster创建了相应的Cluster API CRD,Cluster API MaaS provider将以编程方式分配和部署向Canonical MaaS注册的裸金属。MaaS将通电,PXE引导安装指定的操作系统。

机器通电后,Cluster API将初始化K8s控制平面节点,然后将工作节点机器加入K8s集群。所有Cluster API功能都在provider中实现,例如提供符合多主机K8s的集群、实施安全最佳实践、支持滚动升级等。

本质上,这意味着裸金属基础设施的生命周期可以与Kubernetes环境的整个生命周期管理联系起来。

新的Cluster API MaaS provider使企业能够轻松地直接在裸金属服务器上部署、运行和管理K8s集群,从而提高性能并将成本和运维工作量降至最低。同时,Cluster API为Kubernetes集群生命周期管理带来了一种现代的、声明式的方法,消除了繁重的脚本编写需求,并使统一调配和管理K8s节点(现在包括裸金属服务器)的体验变得更加容易。

原文链接:

https://thenewstack.io/provision-bare-metal-kubernetes-with-the-cluster-api/

使用Cluster API提供裸金属Kubernetes相关推荐

  1. 阿里巴巴大规模神龙裸金属 Kubernetes 集群运维实践

    戳蓝字"CSDN云计算"关注我们哦! 导读:值得阿里巴巴技术人骄傲的是 2019 年阿里巴巴 双11 核心系统 100% 以云原生的方式上云,完美支撑了 54.4w 峰值流量以及 ...

  2. 管理大规模容器集群能力包括_阿里巴巴大规模神龙裸金属 Kubernetes 集群运维实践...

    导读:值得阿里巴巴技术人骄傲的是 2019 年阿里巴巴 双11 核心系统 100% 以云原生的方式上云,完美支撑了 54.4w 峰值流量以及 2684 亿的成交量.背后承载海量交易的计算力就是来源于容 ...

  3. OpenStack裸金属使用总结

    1. 介绍 在openstack 中提供裸金属服务的项目是ironic, 它可以作为一个单独的服务使用,也可以与openstack 其他服务(例如:keystone, nova, neutron, g ...

  4. 【干货】裸金属服务Ironic项目介绍

    在其字面意义上更强调了它是一种未安装操作系统或者刻意剥离操作系统的一种概念,更确切的表面他是CPU.RAM.local_gb的计算资源产品集合. 1.Ironic项目和组件介绍 Ironic是Open ...

  5. 华为服务器系列产品介绍,裸金属服务器产品介绍

    裸金属服务器产品介绍 内容精选 换一换 本文介绍创建裸金属服务器的几种方式.按照向导指引创建裸金属服务器是常见的方式,您可以灵活选择配置项,确保满足业务的需求.详细操作请参见创建裸金属服务器.如果您想 ...

  6. 在 Oracle 云上用 Cluster API 升级 K8s 集群

    ❝ 本文转自方石剑的博客,原文:https://juejin.cn/post/7130839991999004680,版权归原作者所有.欢迎投稿,投稿请添加微信好友:cloud-native-yang ...

  7. 基于OpenStack Ironic与DPU的网易数帆裸金属方案实践

    背景 目前,所有号称性能损耗小的VM技术,实际上都会有5-15%甚至更高的损耗.作为替代方案,如Gartner在2015年发布的报告"Market Trends: The Rise of B ...

  8. OpenStack-Ironic裸金属简介

    一,Ironic简述 简而言之,OpenStack Ironic就是一个进行裸机部署安装的项目.     所谓裸机,就是指没有配置操作系统的计算机.从裸机到应用还需要进行以下操作:   (1)硬盘RA ...

  9. 【重识云原生】计算第2.6节——裸金属方案

    <重识云原生系列>专题索引: 第一章--不谋全局不足以谋一域 第二章计算第1节--计算虚拟化技术总述 第二章计算第2节--主流虚拟化技术之VMare ESXi 第二章计算第3节--主流虚拟 ...

最新文章

  1. win合适做服务器的系统,win系统做云服务器
  2. 解决GitHub加载和下载慢问题
  3. 【学术相关】94年的博士后又拿到了这个金奖!原来是他的学弟
  4. LeetCode Algorithm 589. N 叉树的前序遍历
  5. JVM源码分析之synchronized实现
  6. Vue.js 极简小例:数值计算、千米换算为米、九九乘法表、循环
  7. 读懂python代码_Python面试|一文让你读懂if __name__==’__main__’的含义
  8. java在什么环境变量_Java-环境变量
  9. html标记语言图像标记_为什么我喜欢这些标记语言
  10. 常用数据挖掘算法举例(下)
  11. JavaWeb项目 打开首页就跳转debug模式的解决方法
  12. 用Python写一个滑动验证码
  13. 计算机测试英语词汇,英语听说测试-计算机专业英语词汇.pdf
  14. 【源码】基于MPPT算法的混合风能太阳能系统建模与仿真
  15. Mysql关键特性-插入缓冲 (Insert Buffer)
  16. Android来电,显示悬浮窗
  17. 5GS 协议栈 — PFCP 协议 — FAR 转发操作规则
  18. QQ2012[QQ圈子]功能试用:按照真实生活将好友分圈
  19. Scala类和对象详解
  20. sketchup 计算机配置,草图大师sketchup电脑要求配置高吗?

热门文章

  1. mac电脑备份后的微信聊天记录怎么找
  2. html鼠标事件没反应,电脑鼠标点击当前页面没反应怎么办
  3. 计算机的录像功能在哪里找,电脑自带录屏软件在哪?一键开启视频录制的方法...
  4. Selenium 爬取评论数据,就是这么简单!
  5. 基于Python的OpenCV+TensorFlow+Keras人脸识别实现
  6. rap2搭建,mysql,redis,nginx安装,node环境安装,rap2安装
  7. 程序员需要熟悉的英语单词
  8. Python-docx生成word文档
  9. Cesium地图标记显示与实现(六)
  10. COLA 4.x和DDD项目实践精粹