草庐IT

各种本地k8s运行总结对比

Thinker 2023-03-28 原文

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

1. 本地k8s运行总结

1) 运行软件

(1) minikube kind k3s

(2) MicroK8S

(3) K0S

(4) Docker Desktop

(5) OpenShift

2) 各种系统主要图

(1) k3s

(2) k0s

(3) MiniKube

(4) Kind

(5) K8s

(6) Docker Desktop k8s

(7) OpenShit CRC

https://www.yuque.com/wushifengcn/kb/fb9tb8 

https://developer.aliyun.com/article/881518

 

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/

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. 

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 各种系统主要图

9 k3s

https://docs.rancher.cn/docs/k3s/architecture/_index

单节点k3s server的架构

K3s高可用架构

一个高可用 K3s 集群由以下几个部分组成:

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

10 k0s

https://docs.k0sproject.io/v1.23.5+k0s.0/architecture/

11 MiniKube

12 Kind

13 K8s

14 Docker Desktop k8s

15 OpenShit CRC

有关各种本地k8s运行总结对比的更多相关文章

  1. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  2. ruby - 如何每月在 Heroku 运行一次 Scheduler 插件? - 2

    在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/

  3. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  4. ruby-on-rails - 如何在 ruby​​ 中使用两个参数异步运行 exe? - 2

    exe应该在我打开页面时运行。异步进程需要运行。有什么方法可以在ruby​​中使用两个参数异步运行exe吗?我已经尝试过ruby​​命令-system()、exec()但它正在等待过程完成。我需要用参数启动exe,无需等待进程完成是否有任何ruby​​gems会支持我的问题? 最佳答案 您可以使用Process.spawn和Process.wait2:pid=Process.spawn'your.exe','--option'#Later...pid,status=Process.wait2pid您的程序将作为解释器的子进程执行。除

  5. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  6. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  7. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  8. ruby-on-rails - 无法让 rspec、spork 和调试器正常运行 - 2

    GivenIamadumbprogrammerandIamusingrspecandIamusingsporkandIwanttodebug...mmm...let'ssaaay,aspecforPhone.那么,我应该把“require'ruby-debug'”行放在哪里,以便在phone_spec.rb的特定点停止处理?(我所要求的只是一个大而粗的箭头,即使是一个有挑战性的程序员也能看到:-3)我已经尝试了很多位置,除非我没有正确测试它们,否则会发生一些奇怪的事情:在spec_helper.rb中的以下位置:require'rubygems'require'spork'

  9. ruby-on-rails - before_filter 运行多个方法 - 2

    是否有可能:before_filter:authenticate_user!||:authenticate_admin! 最佳答案 before_filter:do_authenticationdefdo_authenticationauthenticate_user!||authenticate_admin!end 关于ruby-on-rails-before_filter运行多个方法,我们在StackOverflow上找到一个类似的问题: https://

  10. ruby - 是否有用于序列化和反序列化各种格式的对象层次结构的模式? - 2

    给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最

随机推荐