Kubernetes 安装方式简介

October 2, 2020 • 预计阅读时间 3 分钟

其实 3、4 年前,安装 Kubernetes 还是一个很有挑战性的工作,现在技术越来越成熟了,手段也越来越丰富。

有几种方式来练手:

  1. 直接使用别人提供的 sandbox,如 katacodaplay with k8s
  2. 直接使用云端 Kubernetes hosted infrastructure 或者 Kubernetes as a Service (KaaS),三大云提供商 - AWS,GPE,Azure 都有提供
  3. 云端自建,只用虚机等基础设施
  4. 本地自建

前两种无需安装,自建方法也有好多,常见的:

下面是对这些工具的简单介绍:

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的替代品
minikube minikube2

kubeadm

链接 🛫

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

Kind(Kubernetes in Docker)

链接 🛫

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

K3s

链接 🛫

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

MicroK8s

链接 🛫

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

microk8s1 microk8s2

Sealos

链接 🛫

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

The Hard Way(THW)

链接 🛫

    -   纯手工,不依赖任何工具或 script,最早来自 k8s 大名人 Kelseyhightower,最灵活也最底层,以生产级别(多节点的)k8s 集群的安装最为复杂
    -   自建主要是为了学习的,有时间的话必须尝试 THW

自动化工具

如 Ansible,Chef,Terraform,等等衍生出来的安装方案,配置和安装的方式自由度高,如 kubespray ,这里也不展开讨论,尝试的话参考:

商业软件

如 Openshift,CloudFoundry,Rancher,这些都是以 k8s 为基础的商业集成软件,内含 k8s 的安装和定制方案,非原生,相当重型,面向企业级应用,这里也不展开讨论


我自己的尝试:

各大 ☁️ 厂商上通过 Terraform 安装:

Cloud & Cloud Nativekubernetes

  上一篇:Kubernetes 安装 - minikube

  下一篇:Kubernetes 101

comments powered by Disqus