Relationship between service resources
Kubernetes is an environment for managing containerized applications. Kubernetes provides mechanisms for interacting with clusters that can automate tasks like deploying, scaling, and managing applications in containers.
The main entity in the service is the Kubernetes cluster.
Kubernetes clusters consist of a master and one or more node groups. The master is responsible for managing the Kubernetes cluster. Containerized user applications are run on nodes.
The service fully controls the master and monitors the status and health of node groups. Users can manage nodes directly as well as configure a Kubernetes cluster through the Yandex.Cloud management console and the Managed Service for Kubernetes CLI and API.
Kubernetes node groups require internet access to download images and components.
Internet access can be provided in the following ways:
Kubernetes clusters in the Yandex.Cloud infrastructure use the following resources:
|Subnet||2||Kubernetes reserves IP address ranges to be used for pods and services.|
|Public IP||N||N includes: - One public IP address for the NAT instance. - A public IP address assigned to each node in the group if you use one-to-one NAT technology.|
Masters are components that manage Kubernetes clusters.
They run Kubernetes control processes that include the Kubernetes API server, scheduler, and main resource controllers. The master lifecycle is managed by the service when creating or deleting a Kubernetes cluster. The master is responsible for global solutions that are run on all Kubernetes cluster nodes. These include scheduling workloads (such as containerized applications), managing the lifecycle of workloads, and scaling.
There are two types of masters that differ by their location in availability zones:
Zonal: A master created in a subnet in one availability zone.
Regional: A master created and distributed in three subnets in each availability zone. If a zone becomes unavailable, the regional master remains functional.
The internal IP address of a regional master is only available within a single Yandex Virtual Private Cloud cloud network.
A node group is a group of VMs in a Kubernetes cluster that have the same configuration and run the user's containers.
When you create a group of nodes, you can configure the following VM parameters:
- Type of VM.
- Type and number of cores (vCPU).
- Amount of memory (RAM) and disk space.
You can create groups with different configurations in a Kubernetes cluster and place them in different availability zones.
Connecting to group nodes
You can connect to nodes in a group via SSH. Learn more in Connecting to a node via SSH.
A pod is a request to run one or more containers on a group node. In a Kubernetes cluster, each pod has a unique IP address so that applications do not conflict when using ports.
Containers are described in pods via JSON or YAML objects.
A service is an abstraction that provides network load balancing functions. Traffic rules are configured for a group of pods united by a set of labels.
By default, a service is only available within a specific Kubernetes cluster, but it can be public and receive requests from outside the Kubernetes cluster.
A namespace is an abstraction that logically isolates Kubernetes cluster resources and distributes quotas to them. This is useful for isolating resources of different teams and projects in a single Kubernetes cluster.
Labels are the main mechanism of object grouping in Kubernetes. Most scenarios involving multiple objects (for example, sending traffic through a service, configuring network policies, and running application controllers) use selectors based on label values. This lets you define subsets of managed objects (usually pods).