GCLOUD Kubernetes in f1-micro results in (f1-micro机器的节点池由于内存不足不支持)

GCLOUD Kubernetes in f1-micro results in (Node pools of f1-micro machines are not supported due to insufficient memory)

我尝试使用 Google UI 在我的集群中启动一个新的 f1-micro 节点,但它无提示地失败了。所以我决定 运行 使用 gcloud 来查看它是否提供了更多详细信息

所以我运行以下

gcloud container node-pools create my-f1-pool --image-type ubuntu --machine-type=f1-micro --cluster bcomm-sg-cluster --disk-size=10GB --enable-autoscaling --min-nodes=2 --max-nodes=6 --zone=asia-southeast1-a --enable-autorepair

这是我得到的结果

WARNING: Modifications on the boot disks of node VMs do not persist across node recreations. Nodes are recreated during manual-upgrade, auto-upgrade, auto-repair, and auto-scaling. To preserve modifications across node recreation, use a DaemonSet.
WARNING: Newly created clusters and node-pools will have node auto-upgrade enabled by default. This can be disabled using the `--no-enable-autoupgrade` flag.
WARNING: Starting in 1.12, new node pools will be created with their legacy Compute Engine instance metadata APIs disabled by default. To create a node pool with legacy instance metadata endpoints disabled, run `node-pools create` with the flag `--metadata disable-legacy-endpoints=true`.
This will enable the autorepair feature for nodes. Please see https://cloud.google.com/kubernetes-engine/docs/node-auto-repair for more information on node autorepairs.
ERROR: (gcloud.container.node-pools.create) ResponseError: code=400, message=Node pools of f1-micro machines are not supported due to insufficient memory.

"Node pools of f1-micro machines are not supported due to insufficient memory"是什么意思。如果不允许,那么为什么存在该选项?也是以前当我开始玩 GCP 时,我创建的第一个代码池是 3 f1-micro,然后才添加 N1。但是现在我无法添加 f1-micro 并得到这个错误

GKE documentation 表示机器类型结束 table:

Note: f1-micro machines are not supported, because they do not have sufficient memory to run GKE.

回答关于为什么你可以创建一个 f1-micro 节点池的问题,如果你使用 1.12.0 版本创建你的 GKE,有一个注释说:

Note: Prior to 1.12.0, machines with less than 1GB of memory are exempt from memory reservations.

实际上,如果您使用更高版本,对于内存小于 1 GB 的机器,预留内存为 255 MiB 内存。

f1-micro 台机器只有 0.60 GB 内存。

因此,如果您使用 0.60GB 的机器,它无法满足 OS 和 Kubernetes 的要求,并且有 pods 的 Allocatable 内存。