ubuntu - 主节点的硬件是否应该与 Kubernetes 设置的工作节点的硬件相同?
问题描述
我是 Kubernetes 新手,正在家里建立一个树莓派集群,我想把 Kubernetes 放在上面。我有 4 个新的 raspberry pi 4s,每个 8gb 和一个旧的 raspberry pi 2+。两种型号之间存在一些硬件差异,但我认为从技术上讲,我可以让旧的 pi2 成为管理 pi4s 的主节点。我想知道这是否是个好主意。我真的不明白这样做的后果是什么。例如,如果我将来要将我的小集群扩展到 8 个或 16 个 pi4,我的一个 pi2 会不会在管理工人时超载?我真的很想了解在 Kubernetes 的主/工作节点关系中将低级硬件控制高级硬件的后果。
我对这个硬件有三个主要目标。我想重新创建一个完整的开发环境,所以一些虚拟机将托管一个测试环境、一个登台环境、一个开发环境,然后是一个用于托管一些玩具网站的小型生产环境,然后我希望能够托管一些服务对于我在 Kubernetes 中的我来说,比如 nas 存储服务、本地 github 存储库、面向外部的 plex 媒体服务器等等。我认为我可以使用 k8s 将所有这些容器化,但是将 pi2 作为 master 将如何限制我呢?提前致谢。
解决方案
通常,kubernetes master使用更多的资源,因为它们默认运行很多东西和检查。主要是因为etcd和apiserver。etcd 是存储 Kubernetes 中发生的一切的数据库,apiserver接收来自集群内外的所有 api 请求,检查权限、证书等。
但这并不总是事实,有时您的节点可能有很多繁重的应用程序,比master消耗更多的资源。
总是有推荐的规范,我们的业务逻辑和企业应用程序的特定规范,以及“我们拥有什么”规范。
因为你可以在不同的机器之间移动 pod,你可以从你的 master 上减轻一些重量,没问题。
推荐阅读
- jenkins - 从詹金斯部署后缺少一件工件
- c# - 如何从 WebForms 的 DropDownList 中获取项目的 ID?
- python - 如何为集成测试设置时区
- c# - 在计算器应用程序中将运算符从减号更改为加号,反之亦然
- javascript - Promise 本身就是返回 Promise
- amazon-web-services - 无服务器框架 S3 事件规则
- python - 使用 datetime 模块获取无效语法
- ios - 无法将苹果 ID 添加到 Visual Studio Mac
- python - 使用 xarray 绘制组中的 NetCDF 变量时缺少轴值
- sass - Gem::RemoteFetcher::FetchError 安装 sass