MicroK8s vs K3s vs minikube 本地k8s学习环境快速搭建
前言
有一段时间没好好整理k8s本地开发环境了,Kubernetes官方文档曾几何时已经支持中文语言切换且更新及时,感谢背后的开源社区协作者们。本文主要记录k8s本地开发环境快速搭建选型方案,毕竟现在公有云托管型Kubernetes越来越成熟,更重要的是怎么灵活运用云原生的理念提升基础架构管理水平。
更新历史
2023年03月07日 - 初稿
阅读原文 - https://wsgzao.github.io/post/microk8s/
Kubernetes环境安装工具
k8s安装工具对比
Kubernetes官方维护的minikube
https://github.com/kubernetes/minikube
Rancher维护的k3s
https://github.com/rancher/k3s
https://github.com/k3s-io/k3s
Ubuntu母公司Canonical维护的 MicroK8s
https://github.com/ubuntu/micro
MicroK8s vs K3s vs minikube
https://microk8s.io/compare
本地学习环境
https://kubernetes.io/zh-cn/docs/tasks/tools/
- kubectl
- kind
- minikube
- kubeadm
https://kind.sigs.k8s.io/docs/user/quick-start/
https://minikube.sigs.k8s.io/docs/start/
线上生产环境
https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/
- kubeadm
- kOps
- Kubespray
MicroK8s介绍
我们已经知道,Kubernetes 是基于容器的应用程序的首选编排平台,可以自动部署和扩展这些应用程序,并简化维护操作。但是,Kubernetes也有其自身的复杂性挑战。那么,企业如何利用容器化来解决物联网的复杂性,而不会最终导致Kubernetes更加复杂呢?
Canonical的MicroK8s是一个功能强大的,云原生计算基金会认证的Kubernetes发行版。以下是一些关键原因,我觉得,为什么它已经成为一个强大的企业边缘计算平台:
- 以快照包的形式交付:这些是用于桌面、云和 IoT 的应用程序包,易于安装,并通过自动更新进行保护,并且可以安装在任何支持 snap 的 Linux 发行版上。这使得MicroK8非常适合在构成物联网的各种硬件上运行。
- 严格的限制:这确保了与底层操作系统的完全隔离,以及一个严格安全的生产级 Kubernetes 环境,所有这些都在一个小的占用空间内,非常适合边缘网关。
- 生产级附加组件:Istio,Knative,CoreDNS,Prometheus,Jaeger,Linkerd,Cilium和Helm可作为附加组件使用,这些附加组件易于设置,只需几行命令, 支持快速Enable/Disable。
- Kubeflow 还可以作为 MicroK8s 的附加组件,用于改进人工智能 (AI) 和机器学习 (ML) 功能。
凭借其降低复杂性的能力,MicroK8s将加速物联网和边缘部署。将物联网设备视为分布式容器化应用程序,使开发人员能够专注于应用程序而不是基础架构,并使运营团队的生活更轻松。
MicroK8s 允许您将 Kubernetes 安装群集在一起,以便它们可以形成单个群集,并将工作负载放在一个或多个这些节点上。 简而言之,Kubernetes 是:
- 便携式:公共云、私有云、混合云、多云
- 可扩展:模块化、可插拔、可挂钩、可组合
- 自我修复:自动放置、自动重启、自动复制、自动扩展
在本文中,我们将介绍可以在边缘,物联网和设备上运行的轻量级Kbernetes引擎MicroK8。microk8s是一个非常轻量级的k8s发行版,小巧轻量安装快速是他的特点,microk8s是使用snap包安装的,所以他在Ubuntu上的体验是最好的,毕竟microk8s是Canonical公司开发的产品。
MicroK8s安装使用
https://microk8s.io/docs/install-macos
Install Homebrew
1 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" |
Download the MicroK8s installer
brew install ubuntu/microk8s/microk8s
Run the installer or switch the version of Kubernetes
1
2
3microk8s install
microk8s install --channel=1.26
microk8s install --channel=1.24Check the status while Kubernetes starts
microk8s status --wait-ready
1 | microk8s status --wait-ready |
- Turn on the services you want
1 | microk8s enable dashboard |
Try microk8s enable --help
for a list of available services built in. The microk8s disable
command turns off a service.
Start using Kubernetes!
microk8s kubectl get all --all-namespaces
Access the Kubernetes dashboard
microk8s dashboard-proxy
Start and stop Kubernetes
Kubernetes is a collection of system services that talk to each other all the time. If you don’t need them running in the background then you will save battery/resources by stopping them. themicrok8s start
andmicrok8s stop
commands will do the work for you.
1 | # 使用Lens管理microk8s |
容器镜像加速和k8s实用工具推荐
左耳朵科学上网
https://github.com/haoel/haoel.github.io
Pull gcr.io’s image for hub.docker.com tools
https://github.com/OpsDocker/pullk8s
DaoCloud加速三剑客
镜像加速:https://github.com/DaoCloud/public-image-mirror
二进制文件加速:https://github.com/DaoCloud/public-binary-files-mirror
Helm 加速:https://github.com/DaoCloud/public-helm-charts-mirror
kubeconfig多配置文件切换工具推荐
https://wsgzao.github.io/post/kubeconfig/
使用krew安装node-shell轻松修改k8s宿主机root密码
https://wsgzao.github.io/post/krew/
基于microk8s结合kuboard使用kubectl在本地环境快速上手实践
参考文章
K3d vs k3s vs Kind vs Microk8s vs Minikube
Minikube vs. kind vs. k3s - What should I use?