Create Virtual K8s (vK8s) Object

Objective

This document provides instructions on how to create Virtual K8s (vK8s) on Volterra network cloud and edge cloud. Volterra provides mechanism to easily deploy applications using vK8s across Volterra global network and make them available closer to users in major metro markets. To know more about how Volterra distributes application deployment, see Distributed Application Management.

Using the instructions provided in this guide, you can create a vK8s object in VoltConsole and associate with a virtual site that groups Volterra network cloud (RE) sites or edge cloud (CE) sites. To know more about virtual sites, see Virtual Site.

Note: You can deploy applications at your sites using the vK8s object. See K8s Deployment for instructions on how to perform application deployment using the vK8s object.

  • Refer to the Restrictions in case of deploying apps using vK8s for network cloud sites (REs).

Prerequisites


Restrictions

The following restrictions apply in case deploying applications on Volterra network cloud (REs):

  • Running of containers/pods with host networking hostNetwork, host PID hostPID or host IPC hostIPC is not supported.
  • Running containers/pods as privileged is not supported.
  • Running containers/pods as root user is not supported. The container images are required to support running under arbitrary user id and group id. Filesystem write permissions should not be specified to a particular user id. Else container will crash with the permission denied message.
  • Container/pod can use only ports higher than 1024.
  • The containers are not supported to use host mount volumes. The list of supported Kubernetes volumes are:

    • configMap
    • downwardAPI
    • emptyDir
    • persistentVolumeClaim
    • projected
    • secret

Configuration

This section presents steps for creating a Virtual K8s (vK8s) object in VoltConsole. A namespace can only hold one vK8s object. Perform the following to create vK8s object:

Step 1: Log into VoltConsole and start vK8s object creation.

Change to your application namespace using the namespace selector. Select Applications -> Virtual K8s from the configuration menu. Click Add virtual K8s to create a vK8s object.

add vk8s new
Figure: vK8s Creation

Step 2: Configure metadata and associate with virtual sites.

Enter a name and click select vsite ref. Select virtual sites for applying the vK8s with that site.

The following example associates the virtual site that selects a group of edge sites representing stores in a region.

vsite ref ces new
Figure: Virtual Site Selection for Edge Sites

The following example associates the virtual site that selects all Volterra network cloud sites.

vsite ref res new
Figure: Virtual Site Selection for Network Cloud Sites

Step 3: Optionally, enable service isolation.

Go to Choose Service Isolation section and select Isolated Services option. This prevents communication to the pods in this namespace from those of other namespaces even using the service names.

Note: The following apply:

  • When service isolation is enabled, a HTTP load balancer with advertising on site local outside network is required for accessing these services from outside namespaces.
  • In case you wish to exempt any specific vK8s service from isolation, you can add the ves.io/serviceisolation=false annotation to that service.
Step 4: Optionally, set a default workload flavor.
  • Go to Default Workload Flavor section and enable the Show Advanced Fields option.
  • Click on the Default Workload Flavor field and select a default workload flavor object from the list of displayed options. You can also create a new default workload using the Create new default flavor ref option.

Note: If you do not configure this field or did not use the ves.io/workload-flavor annotation, the tiny flavor is applied by default. See Configure Default Workload Flavor for more information.

Step 5: Complete creating the vK8s object.

Click Add virtual K8s to create vK8s. Wait for the vK8s object to get created and displayed on the screen.

Step 6: Download kubeconfig of vK8s created above. This is required for any CLI based operations.

Click ... -> Kubeconfig for your vK8s object to download the Kubeconfig. Enter the expiry date when prompted and click Download Credential.

vk8s kcfg new
Figure: Download vK8s KubeConfig

Note: You can edit the virtual site associated with vK8s object using the Select Virtual Sites option.


Concepts


API References