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



我正在使用nodegroup在AWS EKS上启动一个K8S集群。我启动了几个实例,它们作为k8s节点运行,具有4GiB和2vcpu。

如何启动一个请求32GB内存和8vcpu的pod ?我得到内存/cpu错误。

是否有一种方法可以让一个pod在几个节点上运行?

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.4 × large的新节点组,用于需要8 vCPU和32GB或更多的工作负载。或者您也可以使用更大的实例类型修改现有的节点组自动伸缩组。最后,在您的部署规范中,您使用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只能在工作节点上运行。

你不能在一些机器上运行一个圆荚体,就像你不能在多个物理设备有一个过程。但是您可以运行流程的副本,因此有一些工作负载控制器可以为您创建和管理许多相同的pod。尽管每个pod的机器资源(CPU、RAM)将被限制为节点的机器资源(在您的示例中是2核、4GB RAM)。