走近来自Canonical的轻量级Kubernetes发行版:Microk8s

译文
开发 前端 物联网应用
Microk8s是Canonical发布的一款小型、轻量级、完全符合标准的Kubernetes发行版。这款简约的发行版专注于简洁和性能。由于占用资源少,Microk8s可以轻松部署在物联网和边缘设备端。

【51CTO.com快译】Microk8s是Canonical发布的一款小型、轻量级、完全符合标准的Kubernetes发行版。这款简约的发行版专注于简洁和性能。由于占用资源少,Microk8s可以轻松部署在物联网和边缘设备端。

[[357848]]

Canonical已将Microk8s包装成snap,这是该公司的Linux软件包管理器。snap捆绑了应用程序及无需修改即可在许多不同的Linux发行版上运行的依赖项。snap是独立的应用程序,可在沙盒中运行,通过中介访问主机系统。snap已成为通常在基于Debian的发行版中使用的标准.deb软件包之外的替代方案。包装成snap的应用程序可以轻松安装和卸载。

除了最新版本的Ubuntu外,snap还可以部署在各种平台上,包括Linux Mint、Raspberry Pi OS和Arch Linux。

由于Microk8s基于snap,因此可以通过单个命令轻松部署。比如在Ubuntu 18.04上,sudo snap install microk8s --classic可安装功能完备的单节点Kubernetes集群。对于任何运行snapd(snap软件包管理器的守护程序)的平台而言,安装过程都一样:

还可以通过下载并安装snap,在严加保护的离线环境中安装Microk8s。独立的snap文件大小约200MB:

在macOS上运行Microk8s

Microk8s可以通过Multipass(Canonical的虚拟机管理器)安装在macOS和微软Windows上。Multipass利用了底层的虚拟机管理程序,比如Windows中的Hyper-V和macOS中的hyperkit。

Microk8s CLI抽象化了创建虚拟机和安装snap所涉及的命令。Homebrew安装完毕后,以下命令将在macOS上启动单节点Microk8s:

  1. brew install ubuntu/microk8s/microk8s 

如果您想了解涉及的工作流程,尝试以下命令来安装Multipass,然后再安装Microk8s:

  1. brew cask install multipass 
  2. multipass launch --name microk8s --mem 4G --disk 40G 

等到虚拟机创建完毕,然后通过SSH连接到它:

  1. multipass shell microk8s 

继续安装Microk8s:

  1. sudo snap install microk8s --classic 
  2. sudo iptables -P FORWARD ACCEPT 

配置虚拟机,生成kubeconfig文件:

  1. sudo usermod -a -G microk8s ubuntu  
  2. sudo chown -f -R ubuntu ~/.kube  
  3. su - $USER  
  4. sudo iptables -P FORWARD ACCEPT  
  5. microk8s config > ./kube/config 

想从主机访问单个节点集群,不妨拷贝kubeconfig文件:

  1. multipass transfer microk8s:/home/ubuntu/.kube/config ~/.kube/microk8s-config 
  2. export KUBECONFIG=~/.kube/microk8s-config 

您现在可以使用kubectl从macOS访问Microk8s。

使用附件扩展Microk8s功能

为了使部署占用的资源较少,Microk8s附带与控制面板有关的最必要的组件。这意味着默认安装没有存储和网络插件、DNS、Kubernetes仪表板及其他预期的组件。

Canonical为Microk8s添加了许多组件,作为可选的附件。可以通过microk8s enable/disable命令来启用和禁用它们。

比如说,只需一个命令即可添加Kubernetes仪表板。如果您在Multipass虚拟机中运行Microk8s,从外壳运行以下命令:

  1. microk8s enable dashboard 

获得与服务帐户有关的默认令牌以访问仪表板:

  1. token=$(kubectl -n kube-system get secret | grep default-token | cut -d " " -f1) 
  2. kubectl -n kube-system describe secret $token 

使用以下命令从主机访问仪表板:

  1. kubectl port-forward -n kube-system service/kubernetes-dashboard 9443:443 

配置和部署高可用性的Microk8s集群

最近,Canonical为Microk8s增加了高可用性,使其可以随时部署到生产环境。至少部署三个节点后,Microk8s会自动扩展控制平面,以便在多个节点上运行API服务。

在典型的高可用性(HA)部署场景中,etcd用作键/值数据库以维护集群状态。 Microk8s使用Dqlite分布式版本和SQLite的高可用性版本。

HA MicroK8只需要集群中的三个或更多节点,此时Dqlite会自动变成高可用性。如果群集有三个以上的节点,那么额外节点将是数据存储系统的备用节点,如果数据存储系统丢失了其中一个节点,会自动升级。备用节点自动升级到Dqlite的仲裁集群使MicroK8s HA具有自治性,即使没有采取任何管理措施,也能确保仲裁得到维护。

原文标题:Exploring Microk8s, the Lightweight Kubernetes Distribution from Canonical,作者:Janakiram MSV

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:华轩 来源: 51CTO
相关推荐

2024-01-07 19:17:00

ArchcraftLinux发行版

2013-08-02 14:09:10

Linux桌面Linux发行版

2022-05-20 11:54:13

KubernetesK3sLinux

2019-09-02 09:46:11

MicroK8sKub云计算

2022-09-05 09:37:38

Linux发行版

2012-05-08 10:36:20

LinuxUbuntu发行版

2023-05-10 18:18:55

Linux发行版

2015-11-19 13:44:43

Bodhi Linux

2015-08-05 13:49:35

BodhiLinux

2010-04-21 13:21:22

轻量级Linux

2015-10-10 09:34:05

原因轻量级Linux发行版

2020-03-11 10:40:57

云计算Kubernetes容器

2018-10-27 15:29:17

Kubernetes发行版版本

2020-03-10 08:00:02

Kubernetes发行版容器

2022-02-21 16:29:43

Kubernetes命令Linux

2019-08-05 14:09:50

容器云服务Kubernete

2022-09-04 12:40:55

Linux Lite发行版Linux

2016-11-01 09:53:41

Linux发行版轻量级

2019-07-12 16:28:32

MacKubernetes

2018-04-02 09:31:41

容器Kubernetes发行版
点赞
收藏

51CTO技术栈公众号