Sobes.tech
Middle

What is Node API in Kubernetes?

sobes.tech AI

Answer from AI

Node API in Kubernetes is a set of API objects (Node, NodeStatus) representing information about the cluster's compute nodes. It allows managing nodes, obtaining their current state (resources, load, conditions), and using this information for pod placement.

Key aspects:

  • Node object: Represents an instance of a compute node (physical or virtual machine) in the cluster. Contains metadata, specification, and node status.
    apiVersion: v1
    kind: Node
    metadata:
      name: some-node-name # Node name
    spec:
      # Node specification (can be empty, managed by controllers)
    status:
      # Node status (filled by kubelet)
    
  • NodeStatus: A subfield of the Node object containing information about the current state of the node. Updated by the kubelet daemon running on the node.
    • addresses: IP addresses of the node (InternalIP, ExternalIP, Hostname).
    • capacity: Total available resources (CPU, Memory, ephemeral-storage).
    • allocatable: Resources available to pods after subtracting system needs.
    • conditions: List of conditions describing the node's state (e.g., Ready, OutOfDisk, MemoryPressure).
    • nodeInfo: Information about the runtime environment (kubelet version, OS, architecture).
  • Interaction:
    • kubelet on each node provides information (NodeStatus) through the Node API to the node controller in the control plane.
    • Controllers (e.g., scheduler) use this information to make pod placement decisions.
    • Administrators can use kubectl to interact with the Node API (get list of nodes, their status).
    # View list of nodes
    kubectl get nodes 
    
    # View detailed information about a specific node
    kubectl describe node <node-name> 
    

Node API is a fundamental part of Kubernetes, enabling the system to monitor and efficiently utilize cluster resources.

What is Node API in Kubernetes? — DevOps - sobes.tech