Back

Concepts

Kubernetes is an open-source system for automating the deployment, scaling and management of containerized applications.

In this article, we introduce Kubernetes entities and explain how they work with servers.com infrastructure. You can refer to this official Kubernetes documentation to learn more about each component.

Control plane

Control plane is a set of components used to manage a Kubernetes cluster. It consists of three cloud servers running on different computing nodes.

Control plane nodes are not accessible to users via SSH and are not displayed in the customer portal. Instead, you will have cluster-level administrative rights to manage any Kubernetes API objects that you need for your workloads using the Kubernetes command-line client - kubectl.

Worker node

A worker node runs applications within a Kubernetes cluster. servers.com provides you with worker nodes running on dedicated servers. Once a node is ready, you can access it via Secure Shell (SSH). The main requirement for a dedicated server to be a Kubernetes node is an ability to build disks in RAID level 1. To prevent resource overuse, servers.com configures resource reservation in kubelet based on the characteristics of a specific node.

Just like dedicated servers, you can request RAM and disk upgrades for Kubernetes bare metal worker nodes.

Node removal

When a worker node is removed, all of its pods will migrate to another node. A removed node will become a regular dedicated server to use at your disposal. You may also choose to cancel it by following our server cancellation procedure.

Service

A service is a set of Kubernetes pods managed under the same policy. This entity plays an important role when working with the ingress and cloud controller managers as they may interact with the following service types:

  • LoadBalancer: requests are sent to a load balancer’s IP address. This service initiates the creation of the servers.com TCP (L4) load balancer via the cloud controller manager.

  • NodePort: requests are sent to a node's IP address and to a specific port. Unlike LoadBalancer, NodePort doesn't trigger the creation of a load balancer.

Because the ClusterIP service is not intended for interaction with external networks, it does not utilise the cloud controller manager or ingress controller.

Ingress controller

An ingress controller is a tool that routes and balances traffic from external networks across services within a Kubernetes cluster. Rules that define traffic routing are called ingress rules. A specification describing ingress rules is called an ingress resource.

You can learn more in our servers.com ingress controller article.

To install a third-party ingress controller, follow these instructions.

Cloud controller manager

A cloud controller manager is responsible for interacting with external resources. In the case of servers.com, a cloud controller manager triggers the provisioning of a TCP load balancer after a service with the LoadBalancer type has been created.

Kubernetes version updates

The Kubernetes version has the following pattern: A.B.C, where:

  • A is a major version

  • B is a minor version

  • C is a patch version

servers.com doesn't have automatic updates for the major and minor versions. To initiate an update, send a request to our support team.

The patch version update can be performed from the customer portal using the following instructions.

The Kubernetes version is displayed in the customer portal on a cluster's page or in the Version field of the Kubernetes cluster details section.

Storage

Storage solutions for Kubernetes can be roughly divided into these two groups:

  • Local storage - the one hosted on a worker node itself

  • External storage - storage using infrastructure outside of a Kubernetes cluster