Node

A physical or virtual machine where Kubernetes runs containers.

In Azure Kubernetes Service (AKS), a node refers to the virtual machine responsible for hosting the application workloads (container instances) orchestrated by the cluster. Nodes are critical components, required to run the hosted applications. AKS necessitates the existence of at least one node within a cluster.

Characteristics of Nodes

  • Virtual Machine Based: Each node is essentially a virtual machine provided by Azure Marketplace.
  • Software Components: Nodes run the Kubernetes software and the container runtime, allowing seamless orchestration and container execution.
  • Minimum Requirement: At least one node is mandatory in AKS to host and run applications.

Node Specifications and Management

  • SKU Type Specification: Users need to specify the SKU type for each node to ensure compatibility with the intended applications.
  • Scalability Management: Users are responsible for managing the scaling of nodes, enabling the execution of multiple VMs simultaneously within a virtual machine scale set.
  • Node Pools: For applications necessitating diverse node types, users can create node pools and assign tags to designate which nodes should execute specific applications.

Supported Operating Systems

Nodes within AKS support several operating systems including Ubuntu Linux, Azure Linux, and Windows Server 2019, offering flexibility based on users’ preferences and application requirements.

What’s running on the node?

This table details the four main components that make up a node as displayed on the image.

ResourceDescription
KubeletThe Kubernetes agent running on each node that interacts with the scheduler and cluster
Container RuntimeThe installed runtime environment on the node that allows the container instance to execute and interact with resources such as networking and storage. From Kubernetes 1.19+ this is containerd on Linux nodes. For Windows the runtime is Docker but containerd is an option for Kubernetes 1.20+ in preview.
Container InstanceA single container running as part of a pod. AKS manages and orchestrates these container instances to ensure they run based on the desired state.
Kube-proxyHandles network routing to ensure that pods can communicate with each other and with external users. Manages the network rules on Azure virtual machines, directing traffic for services to the appropriate pods.

image

Last modified July 21, 2024: update (e2ae86c)