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

4/22/2020

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

-- Adonis Lee Villamor
devops
gcloud
google-cloud-platform
kubernetes-cluster
microservices

1 Answer

4/22/2020

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.

-- ginerama
Source: StackOverflow