1 本地k8s运行总结

本机上运行k8s的各种不同软件的对比和结构图

2 运行软件

3 minikube kind k3s

https://www.jambit.com/en/latest-info/toilet-papers/minikube-vs-kind-vs-k3s-which-local-kubernetes-cluster-should-i-use/
本地k8s运行总结 - 图1

4 MicroK8S

https://microk8s.io/compare

MICROK8S K3S MINIKUBE
CNCF certified Yes Yes Yes
Vanilla Kubernetes Yes Yes
Architecture support x86, ARM64, s390x x86, ARM64, ARMhf x86, ARM64, ARMv7, ppc64, s390x
Enterprise support Yes Yes
Single-node support Yes Yes Yes
Multi-node cluster support Yes Yes
Automatic high availability Yes
Automatic updates Yes
Memory requirements 540 MB 512 MB 2 GB
Add-on functionality Yes Yes
Container runtime containerd, kata CRI-O Docker, containerd, CRI-O
Networking Calico, Cilium, CoreDNS, Traefik, NGINX, Ambassador, Multus, MetalLB Flannel, CoreDNS, Traefik, Canal, Klipper Calico, Cilium, Flannel, ingress, DNS, Kindnet
Storage Hostpath storage, OpenEBS, Ceph Hostpath storage, Longhorn Hostpath storage
GPU acceleration Yes Yes

5 K0S

https://computingforgeeks.com/k0s-vs-k3s-vs-microk8s-kubernetes-distributions-comparison/

Feature k0s k3s microk8s
Licensing Completely Open Source Completely Open Source Completely Open Source
Packaging k0s is distributed as a single binary with minimal host OS dependencies besides the host OS kernel Packaged as a single binary. MicroK8s is a Kubernetes cluster delivered as a single snap package.
Kubernetes Versions v1.20 and v1.21 Latest release updates Kubernetes to v1.22.1 Kubernetes v1.22, v1.21
Container Runtime ContainerD (default) ContainerD (default) ContainerD is the container runtime used by MicroK8s
Supported Host OS Linux (kernel v3.10 or newer) Windows Server 2019 (experimental) K3s is expected to work on most modern Linux systems Windows 10, Linux, macOS
Control Plane Storage Options In-Cluster Elastic Etcd with TLS (default), In-Cluster SQLite (default for single node), External PostgreSQL, External MySQL sqlite3 is the default storage mechanism. etcd3, MySQL, Postgres also still available MicroK8s supports high availability using Dqlite as the datastore for cluster state.
Built-In Security Features RBAC, Support OpenID Providers, Pod Security Policies, Network Policies, Micro VM Runtimes (coming soon), Control Plane Isolation Secure by default with reasonable defaults for lightweight environments Secure by default with reasonable defaults for lightweight environments
Supported CNI Providers Kube-Router (default), Calico or Custom K3s will run with flannel by default as the CNI, using VXLAN as the default backend. Custom supported as well Flanneld runs if ha-cluster is not enabled. If ha-cluster is enabled, calico is run instead.
Supported Machine Architectures x86-64, ARM64, ARMv7 Latest release supports x86_64, ARMv7, and ARM64 x86_64, ARMv7, and ARM64
Backing Company Mirantis Rancher Canonical
Addons Minimum Addons Traefik, Helm,LB Dashboard, Ingress, DNS, and more

6 Docker Desktop

https://docs.docker.com/desktop/kubernetes/
If you have Docker Desktop, go to preferences, go to the Kubernetes tab, and click Enable Kubernetes.
本地k8s运行总结 - 图2

7 OpenShift

CodeReady Containers (CRC) manages a local OpenShift 4.x cluster optimized for testing and development purposes. https://github.com/code-ready/crc
Minishift helps you run OpenShift 3.x clusters locally by running a single-node OpenShift cluster inside a virtual machine (VM). https://github.com/minishift/minishift

8 各种系统主要图

本地k8s运行总结 - 图3

9 k3s

https://docs.rancher.cn/docs/k3s/architecture/_index
单节点k3s server的架构
本地k8s运行总结 - 图4
K3s高可用架构
一个高可用 K3s 集群由以下几个部分组成:

  • K3s Server 节点:两个或更多的server节点将为 Kubernetes API 提供服务并运行其他 control-plane 服务
  • 外部数据库:与单节点 k3s 设置中使用的嵌入式 SQLite 数据存储相反,高可用 K3s 需要挂载一个external database外部数据库作为数据存储的媒介。

本地k8s运行总结 - 图5

10 k0s

https://docs.k0sproject.io/v1.23.5+k0s.0/architecture/
本地k8s运行总结 - 图6
本地k8s运行总结 - 图7

11 MiniKube

本地k8s运行总结 - 图8

12 Kind

本地k8s运行总结 - 图9

13 K8s

本地k8s运行总结 - 图10

14 Docker Desktop k8s

本地k8s运行总结 - 图11

15 OpenShit CRC

本地k8s运行总结 - 图12
本地k8s运行总结 - 图13