Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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

like image 702
Adonis Lee Villamor Avatar asked Apr 22 '20 04:04

Adonis Lee Villamor


1 Answers

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.

like image 54
ginerama Avatar answered Sep 28 '22 17:09

ginerama