Deploy Apps across Cloud or Edge

Objective

This document provides instructions on how to deploy applications on your cloud (private or public) or edge locations. To know more about how Volterra distributes application deployment across your sites, see Distributed Application Management.

Using the instructions provided in this guide, you can create a virtual site to group sites using the labels, associate the virtual site with Volterra vK8s, and deploy applications at your sites using this vK8s object.


Prerequisites


Configuration

Volterra enables users to deploy applications across multi-cloud or edge cloud sites. These sites are managed by Volterra and deployed on customer cloud location or at the edge. You can leverage Virtual Kubernetes (vK8s) to deploy applications and manage them as a fleet.

The following image shows the workflow for deploying applications across your edge cloud.

Figure: Deploying Applications on Volterra’s Distributed Cloud

Configuration Sequence

Deploying applications across your "logical" cloud requires performing the following actions:

Phase Description
Obtain Volterra Site Information Get the list of Volterra edge sites and the labels associated with them.
Create Virtual Site Create a virtual site and use the labels of the edge sites in the label expression to group them into the virtual site.
Create Volterra vK8s Create Volterra vK8s service object.
Deploy Applications to vK8s Add applications deployments to the created vK8s object.
Verify the Application Deployment Status Check the application deployment status and site status.

Note: For virtual site creation instructions, see how to create a virtual site.


Obtain Volterra Site Information

This section explains the steps of selecting distributed cloud sites for deploying an application.

Step 1: Navigate to system namespace from the namespace selection menu. Select Sites from the configuration menu and Site List from the options pane. In the filter section on the top, select Type and select CE from the dropdown menu. Select a specific CE or use search field to filter the specific CE.

Figure: Select distributed Cloud Sites

Step 2: Add label to the site after it is added to the site list. This example shows a new key called ‘site-select’ with value demo being associated with the site ‘volterra-demo-site-1’:

Figure: Site Labeling
Figure: Site Labeling

Step 3: Obtain labels (metadata) associated with each Volterra site for use in the creation of a virtual site. Expand any site to read its schema. The metadata section contains all labels associated with the site.

Figure: Site Labels Listing

For example, the above sample site contains labels ‘site-select=demo‘ along with other auto-populated labels like ‘provider=aws’ (this site is deployed on AWS), ‘hw-model=m5a-xlarge’ (AWS EC2 flavor), etc. Using ‘site-select:demo’, you can create an expression to group this site in a Virtual Site.


Create Virtual Site

Step 1: Select Manage from configuration menu and Virtual Sites from the options pane. Click Add virtual site to create a virtual site.

Figure: Create Virtual Site

Step 2: Enter the name, labels, and description for the Name, Labels, and Description fields respectively.

Figure: Virtual Site Config Options

Step 3: Prepare label expression to group Volterra network cloud sites.This example shows selecting a site of which has a label site-select:demo. This will create a Virtual Site which maps to all the sites with this label associated.

Configure the expression with known-key, operator, and value. This example uses the following sample values:

  • Known-key = “site-select”
  • operator = ‘In’
  • value = “demo”
Figure: Virtual Site Label Expression

Step 4: Click Add virtual site to create virtual site.

Figure: Virtual Site Created

Create Volterra vK8s

This section explains the procedure of creating a vK8s object. A namespace can only hold one vK8s object.

Step 1: Select Applications from the configuration menu and Virtual K8s from the options pane. Click Add virtual K8s to create a vK8s object.

Figure: vK8s Creation

Step 2: Enter name and namespace for the vK8s object.

Figure: vK8s Config

Step 3: Click Add virtual K8s to create vK8s.

Figure: vK8s Created

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

Figure: Download vK8s KubeConfig

Step 5 Associate the virtual sites (Demo) created to the vK8s object.

Figure: vK8s Virtual Site Selection

Once a virtual site is associated with vK8s, it automatically adds the same to the configuration as shown below:

Figure: vK8s Virtual Site Selection

Note: You can also use Volterra specific annotations to control or choose the sites where the Kubernetes application needs to be deployed. These annotations can be provided alongside with other configuration in the Kubernetes Deployment manifest.


"annotations": {
      "ves.io/virtual-sites": "demo-volterra/demo-vK8s-distributed-cloud"
    }

Deploy Applications to vK8s

Deploy Kubernetes objects to vK8s after virtual sites are chosen. Any object created through this vK8s gets reflected on all sites which are part of the virtual site.

You can deploy applications via two methods:

  • UI via Volterra Console to deploy applications
  • CLI using kubectl (by obtaining a kubeconfig file from Volterra Console)

This document covers adding a Kubernetes Deployment using Volterra Console.

Step 1: Click the vK8s object created above. This opens a pane that lists all the supported Kubernetes objects.

Figure: vK8s Deployment

Step 2: Click Add Deployment in the Deployment tab and use ‘JSON’ or ‘YAML’ format to add the Kubernetes deployment manifest.

Figure: vK8s Deployment

Step 3: Create a Kubernetes Service. Click Add Service in the Service tab and use ‘JSON’ or ‘YAML’ to add the Kubernetes deployment manifest.


Verify the Application Deployment Status

Step 1: After the deployment is created, Volterra Console enables users to check the status of the deployed application. Expand the deployment in the Deployment tab to see the status.

Figure: vK8s POD Status

As seen in the above example, the application ‘ubuntuapp’ is healthy and deployed on the virtual site ‘volterra-demo-vsite’.

From Vk8’s console deployments section, using JSON:

Figure: vK8s POD

You can check the status field from JSON output displayed in the console.

Step 2: You can get information of applications or deployments along with resource metrics based on the virtual site they are deployed in. Select Applications from configuration menu and Virtual sites from the options pane.

Figure: vK8s Virtual Site Status

Once the application is deployed using vK8s, you can use it with other configuration objects of Volterra platform. For example, advertise the application across the public network.


Concepts


API References