minikube kubernetes 上的挂起 pod:不足 cpu
pending pod on minikube kubernetes : insufficient cpu
运行 在我本地 minikube
上 three 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 是您选择的名称。
运行 在我本地 minikube
上 three 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 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 是您选择的名称。