This article provides a quick overview of the Managed Service for Kubernetes components, their interactions and functions.A Managed Service for Kubernetes cluster consists of:
The API server exposes the Kubernetes API to customers, acting as a frontend for REST operations.To learn more, see the official Kubernetes documentation for kube-apiserver.
Scheduler is responsible for determining which node runs a particular Pod with specified containers.When selecting a node to allocate a Pod, the scheduler takes into account quotas, resource requirements, deployments, taints and tolerations and other factors.To learn more, see the official Kubernetes documentation for Kubernetes scheduler.
In Managed Service for Kubernetes, the cluster autoscaler seamlessly adds nodes when there are unschedulable Pods, and removes underutilized nodes as needed.For more information, see Autoscaling in Managed Service for Kubernetes.
Controller manager runs controllers to implement Kubernetes API behavior.To reduce complexity, multiple controllers are compiled into one binary and run as a single process. Below are examples of frequently used controllers:
Node controller ensures that each node is operational. If a node shuts down, node controller tries to restart it or relocate its Pods and containers to other nodes.
Replication controller ensures that the same Pods are deployed across multiple nodes if required.
Endpoint controller ensures that containers are accessible to users.
etcd is a consistent and highly available key-value store for API server data. By default, a Managed Kubernetes cluster is created with three etcd stores. This ensures high availability: The cluster is more reliable; data stored in etcd is more likely to be accessed in case of failures.The enabled high availability does not affect the cost of the cluster.You can find in-depth information on etcd in its official documentation.
kubelet ensures that Pods and their containers are running. It communicates with the scheduler and controller manager.To learn more, see the official Kubernetes documentation for kubelet.
kube network proxy manages traffic flow, ensuring that network rules work on nodes.To learn more, see the official Kubernetes documentation for kube-proxy.
Cilium ensures that only specific services and traffic can access certain Pods. For example:
Some Pods might contain sensitive data, and Cilium enforces rules that only certain internal services or authorized users are allowed to access it.
If a node requires restricted access, Cilium ensures that only internal services with proper credentials or traffic with specific labels are allowed.
Also, Cilium provides observability into traffic between Pods and nodes to optimize network paths and enforce network security policies.You can find in-depth information on Cilium in its official documentation.
In Managed Service for Kubernetes, nodes are Compute virtual machines.There must be at least one node in a cluster for applications to function properly.On supported platforms, presets and regions, you can enable local SSD disks for worker nodes. Local SSD disks provide ephemeral storage intended for temporary data. By default, Managed Service for Kubernetes uses them as the node’s local ephemeral storage.
Do not modify Managed Service for Kubernetes nodes in Compute. Kubernetes nodes are listed on the Kubernetes nodes tab of the Virtual machines page, but manage them in the Managed Service for Kubernetes® section instead.
To learn more, see the official Kubernetes documentation for nodes.
Pod is a group of one or more containers with shared storage and network resources.In a Managed Service for Kubernetes cluster, each Pod has a unique IP address so that workloads don’t conflict.To learn more, see the official Kubernetes documentation for Pods.
Taints act like restrictions or rules for specific nodes.Tolerations are like clearances or permissions that certain Pods have to be placed on specified nodes.To learn more, see the official Kubernetes documentation for taints and tolerations.
DaemonSets ensure that every node creates a Pod with a certain type of container.In Kubernetes, DaemonSets are used for infrastructure-related workloads, such as logging, monitoring or networking agents that must be deployed on every node.To learn more, see the official Kubernetes documentation for DaemonSets.
Was this page helpful?
Assistant
Responses are generated using AI and may contain mistakes.