Boot a machine from a block storage volume

Available since 2.18.0 as TechPreview Available since 2.19.0 as GA

Clouds that do not have enough space on hypervisors may require booting of cluster machines from a block storage volume. After enabling this option, the Cinder storage is used instead of the Nova storage.

Requirements:

The following procedure describes how to boot an OpenStack-based machine from a volume using CLI. Starting from Container Cloud 2.19.0, you can boot a machine from volume using the Container Cloud web UI by selecting the Boot From Volume option in the machine creation wizard. For details, see Add a machine.

To boot an OpenStack-based machine from a volume using CLI:

  1. Download your management cluster kubeconfig:

    1. Log in to the Container Cloud web UI with the m:kaas:namespace@operator or m:kaas:namespace@writer permissions.

    2. Switch to the required project using the Switch Project action icon located on top of the main left-side navigation panel.

    3. Expand the menu of the tab with your user name.

    4. Click Download kubeconfig to download kubeconfig of your management cluster.

    5. Log in to any local machine with kubectl installed.

    6. Copy the downloaded kubeconfig to this machine.

  2. Scale down the OpenStack provider on the required regional cluster:

    kubectl --kubeconfig <pathToRegionalClusterKubeconfig> -n kaas scale deploy openstack-provider --replicas 0
    
  3. Create a machine using the Container Cloud web UI as described in Add a machine.

  4. Open the required Machine object for editing:

    kubectl --kubeconfig <pathToMgmtClusterKubeconfig> -n <projectName> edit machine <machineName>
    
  5. In the spec:providerSpec section, define the following parameter to boot a server from a block storage volume based on the given image:

    bootFromVolume:
      enabled: true
      volumeSize: 120
    

    Note

    The minimal storage requirement is 120 GB per node. For details, see Requirements for an OpenStack-based cluster.

  6. Scale up the OpenStack provider:

    kubectl -n kaas scale deploy openstack-provider --replicas 3