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.

  • You can create only one untagged network over an infrastructure network.

Prerequisites

  • The storage cluster has at least one disk with the Storage role.

To create the compute cluster

Admin panel

  1. Open the Compute screen, and then click Create compute cluster.
  2. On the Nodes step, add nodes to the compute cluster:

    1. 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.
    2. If the node network interfaces are not configured, click the cogwheel icon, select the networks as required, and then click Apply.

    3. Click Next.

  3. 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. 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.

  4. 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.

  5. 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.

  6. 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,…]]
                              [--force] [--enable-k8saas] [--enable-lbaas] [--enable-metering] [--notification-forwarding <transport-url>]
                              [--disable-notification-forwarding] [--vlan-id <vlan-id>] --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.

--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.
--notification-forwarding <transport-url>

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

  • driver is the supported transport driver (kafka)
  • 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
  • query are parameters that override those from the broker configuration file:
    • topic specifies the topic name
    • driver is the messaging driver: messaging, messagingv2, routing, log, test, noop

Example: kafka://10.10.10.10:9092?topic=notifications

--disable-notification-forwarding
Disable notification forwarding
--vlan-id <vlan-id>
Create VLAN-based physical network by the given VLAN ID.
--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:                                                                                                      |
|              |     features:                                                                                                   |
|              |     - nodegroups                                                                                                |
|              |     links:                                                                                                      |
|              |       deprecation: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.22.md#deprecation |
|              |     release: v1.22                                                                                              |
|              |     upgrade: []                                                                                                 |
|              | k8saas_versions:                                                                                                |
|              | - v1.22.2                                                                                                       |
|              | - v1.21.3                                                                                                       |
|              | - v1.20.7                                                                                                       |
|              | os_distributions:                                                                                               |
|              | - id: linux                                                                                                     |
|              |   os_type: linux                                                                                                |
|              |   title: Generic Linux                                                                                          |
|              | - id: rockylinux8                                                                                               |
|              |   os_type: linux                                                                                                |
|              |   title: Rocky Linux 8                                                                                          |
|              | - id: almalinux8                                                                                                |
|              |   os_type: linux                                                                                                |
|              |   title: Alma Linux 8                                                                                           |
|              | - 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: rhel8                                                                                                     |
|              |   os_type: linux                                                                                                |
|              |   title: Red Hat Enterprise Linux 8                                                                             |
|              | - id: rhel7                                                                                                     |
|              |   os_type: linux                                                                                                |
|              |   title: Red Hat Enterprise Linux 7                                                                             |
|              | - 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: 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                                                                                            |
|              | - id: win7                                                                                                      |
|              |   os_type: windows                                                                                              |
|              |   title: Windows 7                                                                                              |
| features     | []                                                                                                              |
| options      | cpu_model: ''                                                                                                   |
|              | custom_params: []                                                                                               |
|              | notification_forwarding: disabled                                                                               |
| status       | active                                                                                                          |
+--------------+-----------------------------------------------------------------------------------------------------------------+