Skip to content

achi07/MigraMEC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Note on the folder and files:

AdvantEDGE folder contains the main code, along with MDA, API and the scenario file there are two scenario file, single-meh5.yaml contains the single-meh scenrio where the packet loss has been changed to 70 percent. migrate-scenario.yaml is the file used for migration Experiment.

Migration the folder contains the K8s pod application and service Configuration.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Using the code for running the Experiment as follows

  1. For getting started with AdvantEdge, please refer to the https://github.com/InterDigitalInc/AdvantEDGE#getting-started

  2. Requirements: 2 Physical machine/VMs with minimum 4vCPU, 16GB RAM and Ubuntu 18.04 or later versions.

  3. Note- Create the Kubernetes cluster that consists of master and worker node. Master node has the AdvantEDGE platform and the worker node should be able to reach to the AdvantEDGE docker container registry (named as meep-docker-registry).

  4. AdvantEDGE Experiment Scenario as follows, consisiting of 3 zones where the 2 zone has the MEC host named as edge1 and edge2. The MEC App is initially connected to the zone2 and then migrated to another zone as per the need of the UE movement.

  5. After the AdvantEdge is running over the localhost, login and import the migrate-pisa.yaml (Available in the AdvantEDGE folder) file within the scenario.

  6. For installing the setup of the CRIU and containerd cluster, follow the link https://github.com/SSU-DCN/podmigration-operator/blob/main/init-cluster-containerd-CRIU.md

  7. Containerd-CRIU support for live migration and the Network File System (NFS) protocol is used for the sharing of the files within the master and worker node during the migration.

  8. For the Kuberntes setup, the same MEC host combination as AdvantEDGE Kubernetes cluster used as master and worker node.

  9. Deploy the MEC App on the master node using the kubernetes, refer to the pod file named as test.yaml (Inside the podmigration folder).

  10. The pod contains the container image and the video file. The container has a port number for the deployment inside the Kubernets cluster IPs. To deploy the pod:

$ kubectl apply -f test.yaml
  1. Exploit the pod video streaming over the External IP (IP of the master machine, as the kubernet cluster has own set of IP. The machine IP addresses are refered as the external IPs), to get the services exploited on the external IP.
$ kubectl apply -f test-service.yaml
  1. Get the information about the pod using kubernetes command
$ kubectl get pods
$ kubectl get pods -o wide
$ kubectl describe pod <podname>
$ kubectl get svc
  1. The MEC App IP address and the port number mapping to be done in AdvantEDGE platform. For more info https://interdigitalinc.github.io/AdvantEDGE/docs/overview/features/ext-nodes/

  2. For the MEC App folow the Ingress mapping: 8080:video-service:31000:TCP and for the UE App follow the Egress Mapping: video-service::152.94.67.159:8080:TCP

  3. Configure and deploy the scenario on AdvantEDGE platform. The MEC App and the UE App network element should start running. Once the deployment is completed, within the Event Configuration Bar select Automation and the movement to allow the UE movement.

  4. Once the UE starts moving the subscribed API will receive response. For the migration two fixed base station are configured manually based on the PoA distances (zonecoverage.py). During the whole trip, the Migration change occurs from the change of 5G1 PoA (called as BS1) and 4G2 PoA (called as BS2). Simulatnously 4G2 PoA (called as BS2) and 5G1 PoA (called as BS1). p_choose_mec function (zoneofcoverage.py)

  5. As during the start of the UE movement the first migration occurs for the change of edge1 to edge2 (master node to worker node). Then edge2 to edge1 (worker node to master node).

  6. Podmigration-operator

The document to init K8s cluster, which enables Podmigration, can be found at:

How to run:

(Run this command at directory podmigration-operator/)

  • To run Podmigration operator, which includes CRD and a custom controller:
$ sudo snap install kustomize
$ sudo apt-get install gcc
$ make manifests
$ make install
$ make run
  • To run api-server, which enables kubectl migrate command and GUI: (at podmigration-operator/ directory)
$ go run ./api-server/cmd/main.go
$ cd podmigration-operator/gui
$ npm install
$ npm run serve

Test live-migrate pod:

  • Run/check video-stream application:
$ kubectl get pods
  1. After the podmigration controller, run the main file. Note that the geopy and haversine library needs to be installed refer pip installation. The API needs to have the IP address where the AdvantEDGE scenario is running (API_get_scenario.py and APT_post_mobility.py)
$ python main.py

For the evaluation and network analysis, look into Grafana in the AdvantEDGE. The pod migration controller provides total time processed for the migration from start to the complete. The size of the files shared during the migration.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages