Avisi cloud logo
Kubernetes

Kubernetes Cluster Node Pool

Feature state:
stable

AME Kubernetes Cluster Node Pool functionality

A Node Pool represents a set of machines that will be provisioned to join a Kubernetes cluster as a Node. Avisi Cloud provisions these machines within the Cloud your cluster runs in.

Terminology

All Nodes within a pool will receive the same configuration. This includes;

  • The Type (machine or instance type of the Virtual Machine within a Cloud Provider). This represents the size (i.g. 8GB memory) of a virtual machine.
  • Name of the node pool, which is used to configure the Kubernetes node role label for each Node within this Pool.
  • Version of Kubernetes and the container runtime running on the Node.
  • Amount of nodes / size of the node pool. This is the number of nodes that are provisioned within the pool.
  • Node Labels & Annotations. These are applied to the node within Kubernetes and can be used for scheduling decisions or automation tasks/scripts.
  • Node Taints. These are applied to the nodes within Kubernetes and can be used to restrict the node to only running certain workloads.

Node Pool Features

Rolling updates

Nodes within a pool are gracefully replaced during upgrades using a surge strategy. This means Avisi Cloud makes sure a new node has successfully joined and is healthy before starting to drain and delete an outdated node. This process is called rolling updates.

See our help article Updating your cluster for more information.

Auto Healing

Automatic healing of unhealthy nodes within a Node Pool.

Autoscaling

Scale your node pool based on utilization. See our help article about node pool scaling for more information.

Automatic Node Reboots

Nodes that require a reboot (e.g., after a kernel or system update) are automatically rebooted in a controlled manner. Only one node is rebooted at a time, and nodes are safely drained before rebooting to minimize workload disruption. Automatic node reboots must be enabled per node pool. The reboot window (update days, start time, end time, and time zone) can be configured on the cluster's Patching page under System Reboots.

Blocking reboots with pod labels

You can prevent a node from rebooting while specific pods are running on it. Any pod with the label k8s.avisi.cloud/block-reboot: "true" will block the node it runs on from being rebooted until the pod is removed or the label is removed.

This is useful for protecting long-running jobs, batch workloads, or other critical processes that should not be interrupted by a reboot.

Lock timeout

Supported on AME versions containing addon-controller v0.29.3 or newer.

A node reboot lock is automatically released after 1 hour if the reboot process has not completed. This prevents a stuck or failed reboot from blocking all other nodes in the cluster from rebooting.

Node annotations

The following annotations are automatically added to nodes during the reboot process:

AnnotationDescription
weave.works/kured-reboot-in-progressSet on a node that is currently being rebooted.
weave.works/kured-most-recent-reboot-neededTimestamp of the most recent reboot requirement detected on the node.
k8s.avisi.cloud/kured-node-lockUsed internally to coordinate reboots across the cluster, ensuring only one node reboots at a time.

These annotations can be used for monitoring or automation purposes.

On this page