GKE Node Maintenance
GKE allows you to auto-upgrade your Kubernetes control-plane and nodes. See Cluster upgrades and Auto-upgrading nodes for more details. Auto-Upgrade is enabled for the nodes by default. GKE allows you to specify maintenance windows and exclusions to control when an auto-upgrade is executed. See Configuring maintenance windows and exclusions
No release channel is selected and therefore the version is set statically.
Change the parameter
cluster_version in your
gke-terraform repository to change the Kubernetes version.
The node auto-upgrade is controlled by the following variables (derived from Terraform Kubernetes Engine Module)
maintenance_start_time: Time window specified for daily or recurring maintenance operations in RFC3339 format (default:
maintenance_end_time: Time window specified for recurring maintenance operations in RFC3339 format (default:
maintenance_recurrence: Frequency of the recurring maintenance window in RFC5545 format. (default:
worker_max_surge: The number of additional worker nodes that can be added to the node pool during an upgrade
worker_max_unavailable: The number of worker nodes that can be simultaneously unavailable during an upgrade
builder_max_surgeThe number of additional builder nodes that can be added to the node pool during an upgrade
builder_max_unavailable: The number of builder nodes that can be simultaneously unavailable during an upgrade
maintenance_recurrence is not set, this automatically results in a daily maintenance window.
See terraform module’s source code for details on this distinction.
maintenance_start_time is required for the daily maintenance window to use.
A minimum duration of 4h is required, see Configuring maintenance windows and exclusions.
The duration in the case of the daily maintenance window cannot be set with Terraform and therefore defaults to 4h.
maintenance_recurrence you define a recurring maintenance window.
Example for a recurring maintenance window:
# a 9-5 UTC-4 window every weekday maintenance_start_time time: "2019-01-01T09:00:00-0400 maintenance_end_time: "2019-01-01T17:00:00-0400" maintenance_recurrence: "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"
The format of
maintenance_end_time should be RFC3339
The format of
maintenance_recurrence should be RFC5545
See the Google GKE API Documentatiom for more details and examples
The default values results in a daily 4h maintenance window.