一文了解什么是MicroK8s、k3s、Katacoda? 适用于本地化、集群、边缘计算和物联网的几款轻量级K8s:MicroK8s、K3s和K0s。

1 k8s架构

k8s es安装分词器 k8s 安装工具_kubernetes

2 MicroK8s

k8s es安装分词器 k8s 安装工具_发行版_02


(1)对于开发者来说

MicroK8s是让Kubernetes启动并运行的最简单、最快速的方法。尝试最新的上游功能,打开和关闭服务。无缝地将您的工作从开发转移到生产。

(2)对于软件供应商

利用MicroK8s作为全嵌入式Kubernetes平台的简单性、健壮性和安全性。用一个不需要你注意的系统构建集装箱化解决方案。关注客户,而不是基础设施。

2.1 centos安装snapd

Snap包是Ubuntu 16.04 LTS发布时引入的新应用格式包。目前已流行在Ubuntu且在其他如Debian、Arch Linux、Fedora、Kaili Linux、openSUSE、Red Hat等Linux发行版上通过snapd来安装使用snap应用

Snap使用了squashFS文件系统,一种开源的压缩,只读文件系统,基于GPL协议发行。一旦snap被安装后,其就有一个只读的文件系统和一个可写入的区域。应用自身的执行文件、库、依赖包都被放在这个只读目录,意味着该目录不能被随意篡改和写入。

cat /etc/centos-release    //查看centos版本
yum install epel-release  //安装EPEL库
yum install snapd        //安装snapd库
systemctl enable --now snapd.socket
ln -s /var/lib/snapd/snap /snap

Channels are made up of a track and an expected level of MicroK8s stability.

snap info microk8s
channels:
1.23/stable: v1.23.3    2022-01-27 (2948) 219MB classic
1.23/candidate: v1.23.3 2022-01-27 (2948) 219MB classic
1.23/beta: v1.23.3      2022-01-27 (2948) 219MB classic
1.23/edge: v1.23.3      2022-02-01 (2960) 219MB classic
stable: 适用于在生产环境中运行的绝大多数用户。
candidate: 适用于在稳定部署之前需要测试更新的用户,
或验证特定问题是否已解决的用户。
beta:适用于希望测试最新功能的用户,通常在生产环境之外。
edge: 对于希望密切跟踪开发的用户。

2.2 安装MicroK8s

snap install microk8s --classic --channel=1.23/stable
可能需要配置防火墙以允许pod到pod和pod到internet的通信:

2.3 启用插件

默认情况下,我们在Kubernetes上游获得一个框架。通过运行microk8s enable命令,可以启用其他服务,如仪表板、核心dns或本地存储:

microk8s status查看可用插件和当前启用的插件的列表。
microk8s enable dns dashboard storage启用
microk8s disable dns dashboard storage停止

3 k3s

k8s es安装分词器 k8s 安装工具_发行版_03


(1)完美的边缘

K3s是一款高可用、经认证的Kubernetes发行版,专为无人值守、资源受限、远程位置或物联网设备内部的生产工作负载而设计。

(2)简化且安全

K3s打包为一个<50MB的二进制文件,减少了安装、运行和自动更新生产Kubernetes群集所需的依赖项和步骤。

3.1 k3s架构

k8s es安装分词器 k8s 安装工具_文件系统_04

4 k0s

The Simple, Solid & Certified Kubernetes Distribution.
简单、可靠且经过认证的Kubernetes发行版

4.1 k0s架构

(1)k0s可以认为是一个下游的Kubernetes发行版,与原生Kubernetes相比,k0s并未阉割大量Kubernetes功能;k0s主要阉割部分基本上只有树内Cloud provider,其他的都与原生Kubernetes相同。

(2)k0s自行编译Kubernetes源码生成Kubernetes二进制文件,然后在安装后将二进制文件释放到宿主机再启动;这种情况下所有功能几乎与原生Kubernetes没有差异。

k8s es安装分词器 k8s 安装工具_k8s es安装分词器_05

4.2 k0sctl集群安装工具

k0sctl是k0s为了方便快速部署集群所提供的工具,有点类似于 kubeadm,但是其扩展性要比kubeadm好得多。

在多节点的情况下,k0sctl通过SSH链接目标主机然后按照步骤释放文件并启动Kubernetes相关服务,从而完成集群初始化。

5 Minikube

Minikube是一个易于在本地运行Kubernetes的工具,可在你的笔记本电脑上的虚拟机内轻松创建单机版 Kubernetes 集群。便于尝试 Kubernetes 或使用 Kubernetes 日常开发。

5.1 Minikube架构

Kubernetes集群的架构

通常情况下,一套完整的Kubernetes集群至少需要包括master节点和node节点,下图是常规k8s的集群架构,master节点一般是独立的,用于协调调试其它节点之用,而容器实际运行都是在node节点上,kubectl位于 master节点。

k8s es安装分词器 k8s 安装工具_文件系统_06


Minikube 的架构

下图是 Minikube 的架构,可以看出,master 节点与其它节点合为一体,而整体则通过宿主机上的 kubectl 进行管理,这样可以更加节省资源。

k8s es安装分词器 k8s 安装工具_文件系统_07