I'm looking for a way to increase the master node VM size on GKE.
On https://kubernetes.io/docs/admin/cluster-large/#size-of-master-and-master-components it suggests that for a cluster of 11-100 nodes we should be using an n1-standard-4 VM for Kubernetes master.
However, since the cluster has started out smaller, and since grown to this size, does that mean that we're stuck with an underpowered master node? From the above link:
Note that these master node sizes are currently only set at cluster startup time, and are not adjusted if you later scale your cluster up or down (e.g. manually removing or adding nodes, or using a cluster autoscaler)"
So, is there any way to increase the size of the master?
The Kubernetes documentation that you pointed out is NOT correct and should be modified since the master actually scales.
First of all notice that how and when Google Cloud takes care of resizing the master should not be a concern for users if the behaviour of the cluster is stable and performant.
It is a managed service and therefore some details are not public, for example how the master is resized and which algorithms are used are not shared.
Moreover there is no information or disclaimer regarding the machine type of the master in the autoscaler GKE official documentation and it if the master was not able to resize since it would have been an action potentially disruptive for the cluster health.
"Master VM is automatically scaled, upgraded, backed up and secured"
However if you want you can test the behavior:
Create a cluster having one node
Add 10 nodes
The master will be not reachable for a moment and a call to the API will resolve in an error
$ gcloud container clusters get-credentials cluster-1 --zone us-central1-a --project **-**
Fetching cluster endpoint and auth data.
WARNING: cluster cluster-1 is not running. The kubernetes API may not be available.
Inspect the logs, you will notice that in the logs will be present an entry "master upgrade"
There is an feature request asking to Improve the Google cloud documentation, you can decide to star it in order to receive updates.
On the other hand to fix the Kubernetes documentation I opened a public issue on Github.