用树莓派构建 Kubernetes 集群 | Linux 中国
将 Kubernetes 安装在多个树莓派上,实现自己的“家庭私有云”容器服务。
- 来源:https://linux.cn/article-12421-1.html
- 作者:Chris Collins
- 译者:Xingyu.Wang
(本文字数:14330,阅读时长大约:18 分钟)
将 Kubernetes 安装在多个树莓派上,实现自己的“家庭私有云”容器服务。
Kubernetes 从一开始就被设计为云原生的企业级容器编排系统。它已经成长为事实上的云容器平台,并由于接受了容器原生虚拟化和无服务器计算等新技术而继续发展。
从微型的边缘计算到大规模的容器环境,无论是公有云还是私有云环境,Kubernetes 都可以管理其中的容器。它是“家庭私有云”项目的理想选择,既提供了强大的容器编排,又让你有机会了解一项这样的技术 —— 它的需求如此之大,与云计算结合得如此彻底,以至于它的名字几乎就是“云计算”的代名词。
没有什么比 Kubernetes 更懂“云”,也没有什么能比树莓派更合适“集群起来”!在廉价的树莓派硬件上运行本地的 Kubernetes 集群是获得在真正的云技术巨头上进行管理和开发的经验的好方法。
在树莓派上安装 Kubernetes 集群
本练习将在三个或更多运行 Ubuntu 20.04 的树莓派 4 上安装 Kubernetes 1.18.2 集群。Ubuntu 20.04(Focal Fossa)提供了针对 64 位 ARM(ARM64)的树莓派镜像(64 位内核和用户空间)。由于目标是使用这些树莓派来运行 Kubernetes 集群,因此运行 AArch64 容器镜像的能力非常重要:很难找到 32 位的通用软件镜像乃至于标准基础镜像。借助 Ubuntu 20.04 的 ARM64 镜像,可以让你在 Kubernetes 上使用 64 位容器镜像。
AArch64 vs. ARM64;32 位 vs. 64 位;ARM vs. x86
请注意,AArch64 和 ARM64 实际上是同一种东西。不同的名称源于它们在不同社区中的使用。许多容器镜像都标为 AArch64,并能在标为 ARM64 的系统上正常运行。采用 AArch64/ARM64 架构的系统也能够运行 32 位的 ARM 镜像,但反之则不然:32 位的 ARM 系统无法运行 64 位的容器镜像。这就是 Ubuntu 20.04 ARM64 镜像如此有用的原因。
这里不会太深入地解释不同的架构类型,值得注意的是,ARM64/AArch64 和 x86_64 架构是不同的,运行在 64 位 ARM 架构上的 Kubernetes 节点无法运行为 x86_64 构建的容器镜像。在实践中,你会发现有些镜像没有为两种架构构建,这些镜像可能无法在你的集群中使用。你还需要在基于 Arch64 的系统上构建自己的镜像,或者跳过一些限制以让你的常规的 x86_64 系统构建 Arch64 镜像。在“家庭私有云”项目的后续文章中,我将介绍如何在常规系统上构建 AArch64 镜像。
为了达到两全其美的效果,在本教程中设置好 Kubernetes 集群后,你可以在以后向其中添加 x86_64 节点。你可以通过使用 Kubernetes 的 污点(taint) 和 容忍(toleration) 能力,由 Kubernetes 的调度器将给定架构的镜像调度到相应的节点上运行。
关于架构和镜像的内容就不多说了。是时候安装 Kubernetes 了,开始吧!
前置需求
这个练习的要求很低。你将需要:
- 三台(或更多)树莓派 4(好是 4GB 内存的型号)。
- 在全部树莓派上安装 Ubuntu 20.04 ARM64。
为了简化初始设置,请阅读《修改磁盘镜像来创建基于树莓派的家庭实验室》,在将 Ubuntu 镜像写入 SD 卡并安装在树莓派上之前,添加一个用户和 SSH 授权密钥(authorized_keys
)。
配置主机
在 Ubuntu 被安装在树莓派上,并且可以通过 SSH 访问后,你需要在安装 Kubernetes 之前做一些修改。
安装和配置 Docker
截至目前,Ubuntu 20.04 在 base 软件库中提供了新版本的 Docker,即 v19.03,可以直接使用 apt
命令安装它。请注意,包名是 docker.io
。请在所有的树莓派上安装 Docker:
# 安装 docker.io 软件包
$ sudo apt install -y docker.io
相关文章