问题
I tried to start a new f1-micro node in my cluster using Googles UI and it silently fails. So I decided to run it using gcloud to see if that one provides more details
And so I ran the following
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
This is the result I got instead
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.
What does it mean by "Node pools of f1-micro machines are not supported due to insufficient memory". if its not allowed, then why does the option exist? also previously when I started toying with GCP, the first code pool I created was 3 f1-micro before I added an N1. but now I cannot add the f1-micro and get this error instead
回答1:
The GKE documentation says an the end of the machine type table:
Note: f1-micro machines are not supported, because they do not have sufficient memory to run GKE.
Answering the question about why you can crete a f1-micro node pool, if you create your GKE with a 1.12.0 version, there is a note that sais:
Note: Prior to 1.12.0, machines with less than 1GB of memory are exempt from memory reservations.
Actually, if you use a higher version, the reservation memory are 255 MiB of memory for machines with less than 1 GB of memory.
The f1-micro machines only have 0.60 GB of Memory.
So, if you use a machine with 0.60GB it can't handle the requirements of the OS, and the Kubernetes and have Allocatable memory for the pods.
来源:https://stackoverflow.com/questions/61357217/gcloud-kubernetes-in-f1-micro-results-in-node-pools-of-f1-micro-machines-are-no