|
|
|
|
公众号矩阵

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

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

作者:布加迪编译来源:51CTO|2020-12-16 09:00

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

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】

【编辑推荐】

  1. VMware Converter 对 SQL Server Cluster集群做P2V实战
  2. istio+k8s[kubernetes]技术讲解【基础+进阶版】
  3. Kubernetes架构师课程前期准备-CentOS8系统安装
  4. Kubernetes架构师课程前期准备-课程资料下载
  5. TiDB分布式数据库培训实战教程(PB级大数据平台、大规模分布式集群架构)
【责任编辑:华轩 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

数据湖与数据仓库的分析实践攻略

数据湖与数据仓库的分析实践攻略

助力现代化数据管理:数据湖与数据仓库的分析实践攻略
共3章 | 创世达人

1人订阅学习

云原生架构实践

云原生架构实践

新技术引领移动互联网进入急速赛道
共3章 | KaliArch

30人订阅学习

数据中心和VPDN网络建设案例

数据中心和VPDN网络建设案例

漫画+案例
共20章 | 捷哥CCIE

209人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微