Lab 2 - Create a Virtual Kubernetes Cluster

F5 Distributed Cloud App Stack is a SaaS-based offering to deploy, secure, and operate a fleet of applications across the distributed infrastructure in multi-cloud or edge environments. It can scale to a large number of clusters and locations with centralized orchestration, observability, and operations to reduce the complexity of managing a fleet of distributed clusters.

In this lab, we will learn the following:

  • Access the Distributed Apps service in the F5 Distributed Cloud console

  • Create a Virtual Kubernetes Cluster (Virtual K8s) to run a demo app

Core concepts

Virtual K8s (vK8s)

vK8s refers to a virtual Kubernetes cluster. F5 Distributed Cloud Services support a Kubernetes compatible API for centralized orchestration of applications across a fleet of sites (customer sites or F5 Distributed Cloud Regional Edge). This API is considered “Kubernetes compatible”, because not all Kubernetes APIs or resources are supported. However, for the API(s) that are supported, it is 100% compatible. We have implemented a distributed control plane within our global infrastructure to manage scheduling and scaling of applications across multiple (tens to hundreds of thousands of) sites, where each site in itself is also a managed physical K8s cluster.

Virtual Sites

vK8s objects have a reference to the virtual-site which selects the sites on which the application can be deployed, secured, and operated. The virtual-site reference of vK8s is used as the default virtual-site for the given vK8s.

For more core concepts, please review F5 Distributed Cloud documentation

Exercise 1 - Explore sites and virtual site

  1. Select the Distributed Apps tile on the F5 Distributed Cloud Services home page.

    ../../_images/distributedappclick.png
  2. Within the Distributed Apps side menu and under Applications, click on Virtual Sites.

    ../../_images/distributedappclickvirtualsite.png
  3. Locate the Virtual Site named agility-k8s-vsite.

    Note

    For this lab, we have provisioned a Virtual Site called agility-k8s-vsite to save time

    ../../_images/distributedappclickagilityk8svsite.png
  4. Virtual site agility-k8s-vsite contains three customer edge sites. As mentioned in the core concepts section, a virtual site is a construct that selects the sites on which the application can be deployed, secured, and operated. All workloads assigned to site agility-k8s-vsite will be replicated across all three sites. Select agility-vpc-site-one

    ../../_images/distributedappclickvpcsiteone.png
  5. You can see a summary of stats and configurations for site agility-vpc-site-one. Notice the labels used to deploy the site. Can you guess where this customer edge site is deployed? We can see by the labels that this site is deployed on the Google Cloud Platform (GCP). You can deploy a customer edge site on ANY major cloud provider and also on-prem. Click on agility-vpc-site-one to see more details about the customer edge site.

    ../../_images/distributedappclickvpcsiteoneexploresite-updated.png
  6. You can get a lot of helpful information for site agility-vpc-site-one and its workloads, including application metrics, number of Pods, deployment status, etc. Spend some time exploring the different tabs. Of course, there is no information because we have not deployed any workload on this site.

    ../../_images/distributedappclickvpcsiteoneexploresite2-updated.png

Exercise 2 - Create a Virtual K8s

  1. In the left-hand side of the console, click Virtual K8s under the Applications section.

    ../../_images/distributedappclickvirtualk8s.png
  2. There are currently no Virtual K8s, so let’s create one! Click Add Virtual K8s

    ../../_images/distributedappclickaddvirtualk8s.png
  3. Enter the site Name using your Firstname initial and Lastname altogether and append “-vk8” at the end. Ex: For Andrew Smith, the site name will be “asmith-vk8” (without the quotes!)

    ../../_images/distributedappclickvirtualk8ssettings.png
  4. Click the Add Item button in the Virtual Sites section

    ../../_images/distributedappclickvirtualk8ssettings2.png
  5. Select the shared/agility-k8s-vsite site from the dropdown.

    ../../_images/distributedappclickvirtualk8ssettings3.png
  6. Click the Save and Exit button at the bottom of the page.

  7. Wait for your virtual K8s current state to show as Ready (this can take 5 minutes or more). This is your virtual Kubernetes cluster assigned to the virtual site agility-k8s-vsite. As you already know, virtual site agility-k8s-vsite has three sites (agility-vpc-site-one, agility-vpc-site-two, agility-vpc-site-three)

    ../../_images/distributedappclickvirtualk8sstatus-in-progress.png ../../_images/distributedappclickvirtualk8sstatus-updated.png