其实 3、4 年前,安装 Kubernetes 还是一个很有挑战性的工作,现在技术越来越成熟了,手段也越来越丰富。
有几种方式来练手:
- 直接使用别人提供的 sandbox,如 katacoda 、play with k8s 等
- 直接使用云端 Kubernetes hosted infrastructure 或者 Kubernetes as a Service (KaaS),三大云提供商 - AWS,GPE,Azure 都有提供
- 云端自建,只用虚机等基础设施
- 本地自建
前两种无需安装,自建方法也有好多,常见的:
- Docker Desktop
- Minikube
- kubeadm
- Kind(Kubernetes in Docker)
- K3s
- Microk8s
- Sealos
- The Hard Way(THW)
- 自动化工具,如 Ansible,Chef,Terraform
- 商业软件,如 Openshift,CloudFoundry,Rancher
下面是对这些工具的简单介绍:
Docker Desktop
- 如果要使用 Windows 容器,这是唯一选择(并且一定要使用 Hyper-V 虚机)
- 要求 Windows 10 Pro
- 倾向采用 Type-1 hypervisor(如 Hyper-V),而非常用的 Type-2(如 VirtualBox),而且两者不兼容(Type1 和 Type2 不可以同时运行)
Minikube
- 适合本地开发人员
- 目前最成熟的方案,支持不同平台和版本(Win,Mac,Linux),但需要 vm
- 配置自由度高
- 安装和卸载没有其它方案容易
- 目前只支持单节点 master 的 k8s 集群(非HA模式)
- 可当作Docker Desktop的替代品


kubeadm
- 官方推荐安装工具,介于徒手和安装软件之间,可以简化操作
- 支持多节点集群
- 不完全成熟,有些操作还无法无缝完成

Kind(Kubernetes in Docker)
- 如其名,把整个 k8s 打包在 Docker 里面(本地需要先安装 Docker,然后Docker里跑 k8s)
- 主要用于集成测试(官方用于 k8s 版本发布),未必适合开发者


K3s
- 原生 Linux 集成,不需要额外的 vm (所以只支持 Linux)
- K8s的简化发行版,去除了K8s的多余东西,提供K8s的功能但资源消耗最小,用做本地 K8s 开发
- Rancher公司发布(Rancher已被Susce并购)
- 不能完全模拟实际生产环境,例如需要出问题/troubleshoot时SQLite和etcd还是有差别的


MicroK8s
类似 k3s,属于 k8s 的简化版,不过聚焦 ubuntu


Sealos
- 一条命令离线安装高可用kubernetes,3min装完,700M,100年证书,版本不要太全,生产环境稳如老狗
- [使用 Sealos 在 3 分钟内快速部署一个生产级别的 Kubernetes 高可用集群](https://juejin.im/post/5da44a765188251b643eb5e9)
- [kubernetes 高可用部署工具:sealos](https://fuckcloudnative.io/posts/sealos/#ixzz6XXVHPCIv)

The Hard Way(THW)
- 纯手工,不依赖任何工具或 script,最早来自 k8s 大名人 Kelseyhightower,最灵活也最底层,以生产级别(多节点的)k8s 集群的安装最为复杂
- 自建主要是为了学习的,有时间的话必须尝试 THW
自动化工具
如 Ansible,Chef,Terraform,等等衍生出来的安装方案,配置和安装的方式自由度高,如 kubespray ,这里也不展开讨论,尝试的话参考:
商业软件
如 Openshift,CloudFoundry,Rancher,这些都是以 k8s 为基础的商业集成软件,内含 k8s 的安装和定制方案,非原生,相当重型,面向企业级应用,这里也不展开讨论
我自己的尝试:
各大 ☁️ 厂商上通过 Terraform 安装: