minikube kubernetes 上的挂起 pod:不足 cpu

pending pod on minikube kubernetes : insufficient cpu

运行 在我本地 minikubethree services 的应用程序安装在具有 16 cpus 和 64 GB 内存 的服务器上,其中一个replicas是2个,我每个服务只设置resources.limits,如下图

resources:
  limits:
    cpu: "2"
    memory: "209715200"

All service resource restrictions are the same.

但是,出现了一些服务 pending

pending Pod describe部分输出如下

Limits:
  cpu:     2
  memory:  209715200
Requests:
  cpu:     2
  memory:  209715200
...

Events:
  Type     Reason            Age        From               Message
  ----     ------            ----       ----               -------
  Warning  FailedScheduling  <unknown>  default-scheduler  0/1 nodes are available: 1 Insufficient cpu.
  Warning  FailedScheduling  <unknown>  default-scheduler  0/1 nodes are available: 1 Insufficient cpu.

The result of kubectl get pod is as follows

kubectl get pod
NAME                        READY   STATUS    RESTARTS   AGE
test1-777f54bcdb-pvfn5      1/1     Running   0          4m49s
test2-75ccb875b-lj9xl       1/1     Running   0          4m48s
test2-75ccb875b-s7xht       1/1     Running   0          4m48s
test3-797f6b795f-z9qv5      0/1     Pending   0          4m48s

The result of kubectl top node is as follows

kubectl top node
NAME CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
test   1057m        13%    31675Mi         50% 

minikube version

# minikube version
minikube version: v1.9.2
commit: 93af9c1e43cab9618e301bc9fa720c63d5efa393

kubectl version

Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:36:53Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:27:17Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}

我很困惑我的服务器配置应该能够 运行 这个应用程序,但是由于 不足 CPU

任何意见将不胜感激,提前致谢!

如果您 运行 VM 中的 minikube 它受限于 VM CPU 的数量而不是主机的 CPU。您可以使用 minikube start --cpus N 开始使用 N 个 vCPU

运行 具有库存配置的 minikube 不会利用您所有的硬件潜力。 Minikube 允许您创建所需大小的节点,这非常重要,因为除了其他应用程序之外,大多数人还在他们的工作站上使用 minikube,他们不希望 minikube 可以不受限制地访问您的硬件。

要使用自定义规格启动 minikube,您可以按照 所述进行操作,在启动 minikube 时指定 cpus 和内存的数量。

$ minikube start --cpus N --memory N

另一种选择是将这些参数设置为默认值:

$ minikube config set cpus N
$ minikube config set memory N 

要检查所有可配置参数,您可以 运行 minikube config.

节点资源有限的另一个原因是您可以拥有一个包含多个节点的 minikube 集群,也可以在一台机器上拥有多个集群。 要创建具有多个节点的 minikube 集群,您可以 运行:

$ minikube start -n X

其中 X 是所需节点的数量。

如果你有一个 运行ning minikube 集群并想向其添加另一个节点,你可以 运行:

$ minikube node add

要创建辅助 minikube 集群,您可以 运行:

$ minikube start -p cluster-name

其中 cluster-name 是您选择的名称。