Kubernetes 和 Docker 对平台的敏感程度如何?
也就是说,我可以在不同的硬件上构建集群吗?
例如,假设我有一个用 ASP.NET Core 编写的 REST api。语言和开发环境一般是跨平台的。
然后我可以为我的 API 构建一个 Docker 容器,我什至可以构建一个多架构容器,因此从我的容器构建的图像将在 ARM 和 AMD64 上运行。
然后我可以在混合的 ARM 和 Intel/AMD 硬件上构建 Kubernetes 集群吗?
如果我这样做,我部署的所有映像都必须是多架构的吗?
或者我可以拥有单架构镜像,并期望 K8S 足够智能,只在可以支持它们的节点上调度单架构镜像?
您可以通过将 arm64 节点添加到现有 amd64 集群来获得具有多种架构的 Kubernetes 集群,反之亦然。
并非所有镜像都需要多架构,但您需要使用Node Affinity或Taints and Tolerations,以便集群可以将每个容器调度到适当架构的节点。