Canonical推出高可用性Micro-Kubernetes

2020-10-16 02:55:46

如果你一直躲在一块岩石下--这些天谁会责怪你呢?--你可能错过了库伯内斯现在是如何完全主导集装箱编排的。快速掌握Kubernetes的一种方法是使用Canonical的MicroK8。这是一个易于运行和安装的Kubernetes迷你版。现在,Canonical增加了自主高可用性(HA)集群。

您可以看到,MicroK8虽然又小又简单,但却是一个成熟的Kubernetes实现。它包括自动更新和定义明确的安全功能。Microk8还包括规范的开源附加服务,如容器注册表、存储直通,以及用于硬件加速和机器学习工作流的本地GPGPU支持。

现在,有了HA,MicroK8s已经准备好从物联网(IoT)实施,在工作站上测试Kubernetes实施,或者简单地学习Kubernetes,转而从事更大、更好的云工作。

在新的MicroK8s版本中,一旦群集了三个或更多节点,就会自动启用高可用性,并且数据存储会在节点之间自动迁移,以便在发生故障时保持仲裁。MicroK8设计为最小的兼容Kubernetes,可以在Linux、MacOS或Windows上轻松安装和集群。

要工作,HA Kubernetes集群需要三个要素。下面是它在MicroK8中的工作原理。

必须有多个工作节点。因为MicroK8s将每个节点都用作工作节点,所以只要群集中有多个节点,总会有另一个工作节点可用。

Kubernetes API服务必须在一个或多个节点上运行,这样丢失单个节点才不会导致集群无法运行。MicroK8s集群中的每个节点都是一个API服务器,这简化了负载平衡,这意味着如果一个API端点出现故障,我们可以即时切换到不同的API端点。

群集状态必须位于可靠的数据存储区中。默认情况下,MicroK8s使用高可用性SQLite Dqlite作为其数据存储。

Dqlite是Canonical的RAFT-Enhanced SQLite。RAFT是一种流行的共识复制算法,用于构建弹性强一致的系统。Dqlite减少了群集内存占用,并自动执行数据存储区维护。如果您愿意,您还可以将MicroK8配置为使用etcd,但是Dqlite提供了自动、自主的高可用性。

要使其正常工作,您只需在集群中拥有三个或更多节点即可。一旦您拥有了它,Dqlite就会自动高度可用。如果群集有三个以上的节点,则其他节点将成为数据存储区的备用候选节点,并在数据存储区丢失其中一个节点时自动升级。自动将备用节点提升到Dqlite的投票集群使MicroK8s HA具有自治性,并确保即使不采取任何管理操作也能保持仲裁。

MicroK8会自动选择最佳节点来提供数据存储区。如果一个数据存储区节点出现故障,下一个最佳节点将自动升级到其位置。MicroK8s管理自己的控制平面,确保API服务保持正常运行。

这相当巧妙,而且对于这么小的Kubernetes实现来说也是非常顺利的。数据中心解决方案产品经理Canonical Alex Chalkias称,其结果是零操作体验,非常适合分布式微云和忙碌的管理员。

MavenCode的联合创始人兼MLOps平台工程师查尔斯·阿德蒂洛耶(Charles Adetiloye)对此表示赞同。他的公司使用它来构建机器学习(ML)模型管道,以便与Kubeflow进行大规模的生产部署。

Adetiloye说,对于MavenCode,MicroK8对我们的数据科学家和ML工程师来说很方便,可以快速制作、构建和部署这些管道的原型。MicroK8非常容易设置和配置,极其轻巧,它很容易模拟我们的生产环境,实现管道的无缝迁移和部署。

但Canonical指出,MicroK8在生产中也很有用。它可用于强化工业物联网应用;边缘节点,如远程分支机构机架、零售点、蜂窝塔或汽车;以及任务关键型控制系统。简而言之,新的microK8可能正是您的公司开发新应用并将其部署到物联网设备和边缘所需的。