Creating the compute cluster

Limitations

  • The compute cluster must have at least three nodes to allow self-service users to enable high availability for Kubernetes master nodes.

  • The compute cluster must have at least one physical network.
  • You can create only one untagged network over an infrastructure network.
  • A physical network MTU cannot exceed that of the underlying network interface.
  • After the default storage policy is created, its redundancy type cannot be changed.

Prerequisites

  • The storage cluster has at least one disk with the Storage role.
  • Before deploying the compute cluster with the metering service, ensure that you have tier 0 in your storage.

To create the compute cluster

Admin panel

  1. On the Infrastructure > Networks screen, make sure that these traffic types are added to the networks you intend to use: VM private, VM public, Compute API, VM backups.
  2. Open the Compute screen, and then click Create compute cluster.
  3. On the Nodes step, select the nodes to add to the compute cluster. You can only select nodes with the Configured network state. Nodes in the management node high availability cluster are automatically selected to join the compute cluster. Then, click Next.

  4. On the Physical network step, do the following:

    1. Enable or disable IP address management:

      • With IP address management enabled, VMs connected to the network will automatically be assigned IP addresses from allocation pools by the built-in DHCP server and use custom DNS servers. Additionally, spoofing protection will be enabled for all VM network ports by default. Each VM network interface will be able to accept and send IP packets only if it has IP and MAC addresses assigned. You can disable spoofing protection manually for a VM interface, if required.
      • With IP address management disabled, VMs connected to the network will obtain IP addresses from the DHCP servers in that network, if any. Also, spoofing protection will be disabled for all VM network ports, and you cannot enable it manually. This means that each VM network interface, with or without assigned IP and MAC addresses, will be able to accept and send IP packets.

      In any case, you will be able to manually assign static IP addresses from inside the VMs.

    2. Provide the required details for the physical network:

      1. Select an infrastructure network to connect the physical network to.
      2. Select the physical network type: select VLAN and specify a VLAN ID to create a VLAN-based network, or select Untagged to create a flat physical network.
      3. The network MTU is set to 1500 by default. If required, you can adjust this value according to the MTU of the underlying network interface.
      4. If you enabled IP address management, the subnet IP range in the CIDR format will be filled in automatically. Optionally, specify a gateway. If you leave the Gateway field blank, the gateway will be omitted from network settings.
    3. Click Next.

    The selected physical network will appear in the list of compute networks on compute cluster’s Network tab. By default, it will be shared between all future projects. You can disable the network access on the network right pane later.

  5. If you enabled IP address management, you will move on to the DHCP and DNS step, where you can configure the network settings for IP address management:

    1. Enable or disable the built-in DHCP server:

      • With the DHCP server enabled, VM network interfaces will automatically be assigned IP addresses: either from allocation pools or, if there are no pools, from the network’s entire IP range. The DHCP server will receive the first two IP addresses from the IP pool. For example:

        • In a subnet with CIDR 192.168.128.0/24 and without a gateway, the DHCP server will be assigned the IP addresses 192.168.128.1 and 192.168.128.2.
        • In a subnet with CIDR 192.168.128.0/24 and the gateway IP address set to 192.168.128.1, the DHCP server will be assigned the IP addresses 192.168.128.2 and 192.168.128.3.
      • With the DHCP server disabled, VM network interfaces will still get IP addresses, but you will have to manually assign them inside VMs.

      The virtual DHCP service will work only within the current network and will not be exposed to other networks.

    2. Specify one or more allocation pools (ranges of IP addresses that will be automatically assigned to VMs).
    3. Specify DNS servers that will be used by virtual machines. These servers can be delivered to VMs via the built-in DHCP server or by using the cloud-init network configuration (if cloud-init is installed in the VM).
    4. Click Add.

  6. On the Add-on services step, enable the additional services that will be installed during the compute cluster deployment. You can also install these services later. Then, click Next.

    Installing Kubernetes automatically installs the load balancer service as well.

  7. On the Storage policy step, select a redundancy mode, storage tier, and failure domain for the default policy, which will be applied to uploaded images and base volumes created from these images. You can also use the default parameters, which include the first available storage tier, the host failure domain, and the best replication scheme allowed by the number of nodes in the storage cluster:

    • The 3 replicas mode is used if the storage cluster has three or more nodes.
    • The 2 replicas mode is used if the storage cluster has two nodes.
    • The No redundancy mode is used for a single-node deployment.

    To discard your changes to the storage policy parameters and reset them to their defaults, click Reset to default parameters.

    Then, click Next.

  8. On the Summary step, review the configuration, and then click Create cluster.

You can monitor compute cluster deployment on the Compute screen.

Command-line interface

Use the following command:

vinfra service compute create [--public-network <network>] [--subnet cidr=CIDR[,key=value,…]]
                              [--vlan-id <vlan-id>] [--mtu <mtu>] [--force] [--enable-k8saas]
                              [--enable-lbaas] [--enable-metering] [--enable-backup]
                              [--notification-forwarding <transport-url>] [--disable-notification-forwarding]
                              [--default-storage-policy-tier {0,1,2,3}]
                              [--default-storage-policy-replicas <norm>[:<min>] | --default-storage-policy-encoding <M>+<N>]
                              [--default-storage-policy-failure-domain {0,1,2,3,4}] --nodes <nodes>
--public-network <network>
An infrastructure network to connect the compute physical network to. It must include the "VM public" traffic type.
--subnet cidr=CIDR[,key=value,…]

Subnet for IP address management in the compute physical network (the --public-network option is required):

  • cidr: subnet range in CIDR notation;
  • comma-separated key=value pairs with keys (optional):
    • gateway: gateway IP address.
    • dhcp: enable/disable the virtual DHCP server.
    • allocation-pool: allocation pool of IP addresses from CIDR in the format ip1-ip2, where ip1 and ip2 are starting and ending IP addresses. Specify the key multiple times to create multiple IP pools.
    • dns-server: DNS server IP address, specify multiple times to set multiple DNS servers.

Example: --subnet cidr=192.168.5.0/24,dhcp=enable.

--vlan-id <vlan-id>
Create VLAN-based physical network by the given VLAN ID.
--mtu <mtu>
Custom MTU value for the compute physical network.
--force
Skip checks for minimal hardware requirements.
--enable-k8saas
Enable Kubernetes-as-a-Service services.
--enable-lbaas
Enable Load-Balancing-as-a-Service services.
--enable-metering
Enable metering services.
--enable-backup
Enable volume backup services.
--notification-forwarding <transport-url>

Enable notification forwarding through the specified transport URL in the format driver://[user:pass@]host:port[,[userN:passN@]hostN:portN], where:

  • driver is the supported transport driver (kafka, ampq, or rabbit)
  • user:pass are the username and password used for authentication with the messaging broker
  • host:port specifies the hostname or IP address and port number of the messaging broker

Messages will be published to the "notifications" topic.

Example: kafka://10.10.10.10:9092

--disable-notification-forwarding
Disable notification forwarding
--default-storage-policy-tier {0,1,2,3}
Storage tier
--default-storage-policy-replicas <norm>[:<min>]

Storage replication mapping in the format:

  • norm: number of replicas to maintain
  • min: minimum required number of replicas (optional)
--default-storage-policy-encoding <M>+<N>

Storage erasure encoding mapping in the format:

  • M: number of data blocks
  • N: number of parity blocks
--default-storage-policy-failure-domain {0,1,2,3,4}
Storage failure domain
--nodes <nodes>
A comma-separated list of node IDs or hostnames.

For example, to create the compute cluster from five nodes that will use the infrastructure network Public with the IP address pool 10.94.129.64-10.94.129.79 to allocate to VMs, run:

# vinfra service compute create --nodes node001,node002,node003,node004,node005 \
--public-network Public --subnet cidr=10.94.0.0/16,dhcp=enable,gateway=10.94.0.1,\
allocation-pool=10.94.129.64-10.94.129.79,dns-server=10.30.0.27

You can view the compute cluster details in the vinfra service compute show output:

# vinfra service compute show
+--------------+-----------------------------------------------------------------------------------------------------------------+
| Field        | Value                                                                                                           |
+--------------+-----------------------------------------------------------------------------------------------------------------+
| capabilities | cpu_models:                                                                                                     |
|              | - EPYC-IBPB                                                                                                     |
|              | - Nehalem                                                                                                       |
|              | - Nehalem-IBRS                                                                                                  |
|              | - SandyBridge                                                                                                   |
|              | - SandyBridge-IBRS                                                                                              |
|              | - IvyBridge                                                                                                     |
|              | - IvyBridge-IBRS                                                                                                |
|              | - Haswell                                                                                                       |
|              | - Haswell-IBRS                                                                                                  |
|              | - Haswell-noTSX                                                                                                 |
|              | - Haswell-noTSX-IBRS                                                                                            |
|              | - Broadwell                                                                                                     |
|              | - Broadwell-IBRS                                                                                                |
|              | - Broadwell-noTSX                                                                                               |
|              | - Broadwell-noTSX-IBRS                                                                                          |
|              | - Skylake-Client                                                                                                |
|              | - Skylake-Client-IBRS                                                                                           |
|              | - Skylake-Server                                                                                                |
|              | - Skylake-Server-IBRS                                                                                           |
|              | - HostPassthrough                                                                                               |
|              | k8saas_capabilities:                                                                                            |
|              |   v1.18.6:                                                                                                      |
|              |     features:                                                                                                   |
|              |     - nodegroups                                                                                                |
|              |     release: v1.18                                                                                              |
|              |     upgrade:                                                                                                    |
|              |     - v1.19.9                                                                                                   |
|              |   v1.19.9:                                                                                                      |
|              |     features:                                                                                                   |
|              |     - nodegroups                                                                                                |
|              |     links:                                                                                                      |
|              |       deprecation: https://v1-19.docs.kubernetes.io/docs/setup/release/notes/#deprecation                       |
|              |     release: v1.19                                                                                              |
|              |     upgrade:                                                                                                    |
|              |     - v1.20.7                                                                                                   |
|              |   v1.20.7:                                                                                                      |
|              |     features:                                                                                                   |
|              |     - nodegroups                                                                                                |
|              |     links:                                                                                                      |
|              |       deprecation: https://v1-20.docs.kubernetes.io/docs/setup/release/notes/#deprecation                       |
|              |     release: v1.20                                                                                              |
|              |     upgrade:                                                                                                    |
|              |     - v1.21.3                                                                                                   |
|              |   v1.21.3:                                                                                                      |
|              |     features:                                                                                                   |
|              |     - nodegroups                                                                                                |
|              |     links:                                                                                                      |
|              |       deprecation: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.21.md#deprecation |
|              |     release: v1.21                                                                                              |
|              |     upgrade:                                                                                                    |
|              |     - v1.22.2                                                                                                   |
|              |   v1.22.2:                                                                                                      |
|              |     features:                                                                                                   |
|              |     - nodegroups                                                                                                |
|              |     links:                                                                                                      |
|              |       deprecation: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.22.md#deprecation |
|              |     release: v1.22                                                                                              |
|              |     upgrade:                                                                                                    |
|              |     - v1.23.5                                                                                                   |
|              |   v1.23.5:                                                                                                      |
|              |     features:                                                                                                   |
|              |     - nodegroups                                                                                                |
|              |     links:                                                                                                      |
|              |       deprecation: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.23.md#deprecation |
|              |     release: v1.23                                                                                              |
|              |     upgrade:                                                                                                    |
|              |     - v1.24.3                                                                                                   |
|              |   v1.24.3:                                                                                                      |
|              |     features:                                                                                                   |
|              |     - nodegroups                                                                                                |
|              |     links:                                                                                                      |
|              |       deprecation: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.24.md#deprecation |
|              |     release: v1.24                                                                                              |
|              |     upgrade:                                                                                                    |
|              |     - v1.25.7                                                                                                   |
|              |   v1.25.7:                                                                                                      |
|              |     features:                                                                                                   |
|              |     - nodegroups                                                                                                |
|              |     links:                                                                                                      |
|              |       deprecation: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.25.md#deprecation |
|              |     release: v1.25                                                                                              |
|              |     upgrade:                                                                                                    |
|              |     - v1.26.11                                                                                                  |
|              |   v1.26.11:                                                                                                     |
|              |     features:                                                                                                   |
|              |     - nodegroups                                                                                                |
|              |     links:                                                                                                      |
|              |       deprecation: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.26.md#deprecation |
|              |     release: v1.26                                                                                              |
|              |     upgrade:                                                                                                    |
|              |     - v1.27.8                                                                                                   |
|              |   v1.27.8:                                                                                                      |
|              |     features:                                                                                                   |
|              |     - nodegroups                                                                                                |
|              |     links:                                                                                                      |
|              |       deprecation: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.27.md#deprecation |
|              |     release: v1.27                                                                                              |
|              |     upgrade:                                                                                                    |
|              |     - v1.28.4                                                                                                   |
|              |   v1.28.4:                                                                                                      |
|              |     features:                                                                                                   |
|              |     - nodegroups                                                                                                |
|              |     links:                                                                                                      |
|              |       deprecation: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.28.md#deprecation |
|              |     release: v1.28                                                                                              |
|              |     upgrade:                                                                                                    |
|              |     - v1.29.3                                                                                                   |
|              |   v1.29.3:                                                                                                      |
|              |     features:                                                                                                   |
|              |     - nodegroups                                                                                                |
|              |     links:                                                                                                      |
|              |       deprecation: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md#deprecation |
|              |     release: v1.29                                                                                              |
|              |     upgrade: []                                                                                                 |
|              | k8saas_versions:                                                                                                |
|              | - v1.29.3                                                                                                       |
|              | - v1.28.4                                                                                                       |
|              | - v1.27.8                                                                                                       |
|              | - v1.26.11                                                                                                      |
|              | - v1.25.7                                                                                                       |
|              | - v1.24.3                                                                                                       |
|              | os_distributions:                                                                                               |
|              | - id: linux                                                                                                     |
|              |   os_type: linux                                                                                                |
|              |   title: Generic Linux                                                                                          |
|              | - id: rockylinux8                                                                                               |
|              |   os_type: linux                                                                                                |
|              |   title: Rocky Linux 8                                                                                          |
|              | - id: rockylinux9                                                                                               |
|              |   os_type: linux                                                                                                |
|              |   title: Rocky Linux 9                                                                                          |
|              | - id: almalinux8                                                                                                |
|              |   os_type: linux                                                                                                |
|              |   title: Alma Linux 8                                                                                           |
|              | - id: almalinux9                                                                                                |
|              |   os_type: linux                                                                                                |
|              |   title: Alma Linux 9                                                                                           |
|              | - id: centos8                                                                                                   |
|              |   os_type: linux                                                                                                |
|              |   title: CentOS 8                                                                                               |
|              | - id: centos7                                                                                                   |
|              |   os_type: linux                                                                                                |
|              |   title: CentOS 7                                                                                               |
|              | - id: centos6                                                                                                   |
|              |   os_type: linux                                                                                                |
|              |   title: CentOS 6                                                                                               |
|              | - id: rhel9                                                                                                     |
|              |   os_type: linux                                                                                                |
|              |   title: Red Hat Enterprise Linux 9                                                                             |
|              | - id: rhel8                                                                                                     |
|              |   os_type: linux                                                                                                |
|              |   title: Red Hat Enterprise Linux 8                                                                             |
|              | - id: rhel7                                                                                                     |
|              |   os_type: linux                                                                                                |
|              |   title: Red Hat Enterprise Linux 7                                                                             |
|              | - id: ubuntu22.04                                                                                               |
|              |   os_type: linux                                                                                                |
|              |   title: Ubuntu 22.04                                                                                           |
|              | - id: ubuntu20.04                                                                                               |
|              |   os_type: linux                                                                                                |
|              |   title: Ubuntu 20.04                                                                                           |
|              | - id: ubuntu18.04                                                                                               |
|              |   os_type: linux                                                                                                |
|              |   title: Ubuntu 18.04                                                                                           |
|              | - id: ubuntu16.04                                                                                               |
|              |   os_type: linux                                                                                                |
|              |   title: Ubuntu 16.04                                                                                           |
|              | - id: debian10                                                                                                  |
|              |   os_type: linux                                                                                                |
|              |   title: Debian 10                                                                                              |
|              | - id: debian9                                                                                                   |
|              |   os_type: linux                                                                                                |
|              |   title: Debian 9                                                                                               |
|              | - id: oracle7                                                                                                   |
|              |   os_type: linux                                                                                                |
|              |   title: Oracle Linux 7                                                                                         |
|              | - id: sles15                                                                                                    |
|              |   os_type: linux                                                                                                |
|              |   title: SUSE Linux Enterprise 15                                                                               |
|              | - id: windows                                                                                                   |
|              |   os_type: windows                                                                                              |
|              |   title: Generic Windows                                                                                        |
|              | - id: win2k22                                                                                                   |
|              |   os_type: windows                                                                                              |
|              |   title: Windows Server 2022                                                                                    |
|              | - id: win2k19                                                                                                   |
|              |   os_type: windows                                                                                              |
|              |   title: Windows Server 2019                                                                                    |
|              | - id: win2k16                                                                                                   |
|              |   os_type: windows                                                                                              |
|              |   title: Windows Server 2016                                                                                    |
|              | - id: win2k12r2                                                                                                 |
|              |   os_type: windows                                                                                              |
|              |   title: Windows Server 2012 R2                                                                                 |
|              | - id: win2k12                                                                                                   |
|              |   os_type: windows                                                                                              |
|              |   title: Windows Server 2012                                                                                    |
|              | - id: win2k8r2                                                                                                  |
|              |   os_type: windows                                                                                              |
|              |   title: Windows Server 2008 R2                                                                                 |
|              | - id: win2k8                                                                                                    |
|              |   os_type: windows                                                                                              |
|              |   title: Windows Server 2008                                                                                    |
|              | - id: win10                                                                                                     |
|              |   os_type: windows                                                                                              |
|              |   title: Windows 10                                                                                             |
|              | - id: win8.1                                                                                                    |
|              |   os_type: windows                                                                                              |
|              |   title: Windows 8.1                                                                                            |
| features     | []                                                                                                              |
| options      | cpu_model: ''                                                                                                   |
|              | custom_params: []                                                                                               |
|              | endpoint_hostname: 10.10.10.10                                                                                  |
|              | notification_forwarding: disabled                                                                               |
|              | scheduler:                                                                                                      |
|              |   cpu_weight_multiplier: 1.0                                                                                    |
|              |   metrics_weight_multiplier: 1.0                                                                                |
|              |   metrics_weight_setting: {}                                                                                    |
|              |   pci_weight_multiplier: 1.0                                                                                    |
|              |   ram_weight_multiplier: 1.0                                                                                    |
|              |   soft_anti_affinity_weight_multiplier: 5.0                                                                     |
| status       | active                                                                                                          |
| storages     | - vstorage                                                                                                      |
+--------------+-----------------------------------------------------------------------------------------------------------------+