如何在 k8s 中的几个小实例节点上启动一个 运行 的 pod?

How can I launch a pod which run on a few small instance nodes in k8s?

我正在使用节点组在 AWS EKS 上启动 K8S 集群。我启动了几个实例 运行 作为具有 4GiB 和 2 个 vCPU 的 k8s 节点。

如何启动请求 32GB 内存和 8 个 vCPU 的 pod。我收到 memory/cpu 个错误。

有没有办法让一个 pod 运行 在几个节点之上?

你不能 运行 一个 pod 在多台机器上,就像你不能在多个物理设备上有一个进程一样。但是您可以 运行 进程的副本,因此有几个 workload controllers 可以为您创建和管理多个相同的 pods。尽管每个 pod 的机器资源(CPU、RAM)将限制为节点的资源(在您的示例中为 2 个内核、4GB RAM)。

How can I launch a pod which request 32GB memory and 8 vCPU. I am getting memory/cpu errors.

要获得工作节点的实际可分配容量,您需要执行 kubectl get node <node name> -o json | jq .status.capacity。您会发现工作节点容量不是由其实例类型决定的。

然后您可以创建实例类型为 m5.4xlarge 的新节点组,用于需要 8 个 vCPU 和 32GB 或更多的工作负载。或者您也可以将现有节点组 autoscaling group 修改为更大的实例类型。最后在您的部署规范中,您使用 nodeSelector 将调度程序定向到 运行 您的 pod 的位置:

nodeselector:
  node.kubernetes.io/instance-type: m5.4xlarge

Is there a way for one pod running on top of a few nodes?

一个 pod 只能 运行 在一个工作节点上。