Provisioning Kubernetes clusters

The Kubernetes service allows you to deploy scalable and production-ready Kubernetes clusters with preintegrated persistent storage.

A Kubernetes cluster includes the following components:

Kubernetes version Underlying OS Container runtime Network plugin
v1.23.5 Fedora 39 CoreOS Docker 20.10.23

Flannel VXLAN (for public VM networks)

Flannel host-gw (for private VM networks)

v1.24.3, v1.25.7, v1.26.11, v1.27.8, v1.28.4 containerd 1.6.19

Kubernetes clusters are created and managed by self-service users. However, to provide self-service users with this functionality, you need to install the Kubernetes service in the admin panel.

Limitations

  • In the current version of Virtuozzo Hybrid Infrastructure, the installed service cannot be removed.

  • If you install the service after creating a project, Kubernetes clusters are not automatically enabled in the project quotas.
  • Installing Kubernetes automatically installs the load balancer service, as well.
  • The maximum number of Kubernetes clusters supported per project is 20.

Prerequisites

  • According to the requirements listed in Kubernetes-as-a-Service network requirements
    • The etcd discovery service must be accessible at https://discovery.etcd.io from all management nodes and the public network with the VM public traffic type.
    • The public Docker Hub repository must be accessible at https://registry-1.docker.io from the public network with the VM public traffic type.
    • The compute API must be accessible from the public network with the VM public traffic type.
    • The Kubernetes API must be accessible at the public or floating IP address of the Kubernetes load balancer or master VM on port 6443 from all management nodes.

    If the Compute API traffic type is added to a private network that is inaccessible directly from the network with the VM public traffic type, but exposed to public networks via NAT and available publicly via the DNS name, you need to set the DNS name for the compute API, as described in Setting a DNS name for the compute API.

  • The compute cluster is created, as described in Creating the compute cluster.

To install the Kubernetes service

Admin panel

  1. Go to the Settings > Add-on services screen.
  2. In the Kubernetes service section, click Install.

Installing Kubernetes automatically installs the load balancer service as well.

Command-line interface

Run the following command:

# vinfra service compute set --enable-k8saas