Files
5g-iana-uc6-aio/notes.md
Tuan-Dat Tran 931652c494 Initial commit
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-12-31 13:36:22 +01:00

25 KiB

Notes

Running Network Monitoring and Training

mec

  • To start aggregator: docker run -p 34000:8080 -p 34001:5000 -e FLWR_PORT=8080 -e DMLO_PORT=5000 --name aggregator --rm aggregator:latest
  • To start pqos: docker run --rm --name pqos -e ENDPOINT=https://webhook.site/9ebcf608-2c9a-4302-87e5-5b477831b6b -p 32000:5000 pqos:latest
  • To start nmsender: docker run --rm --cpus=1 -p 31000:1935 --name nginx nginx-stream

Send server_config to aggregator and do client_select

  • config: curl -X POST -H "Content-Type: application/json" -d '{ "ml_model": "../resources/best_model_no_tuner_40.h5", "num_epochs": 10, "min_working_nodes": 2, "hyperparam_epochs": 5, "hyperparam_batch_size": 2048, "hyperparam_learning_rate": 0.001, "avg_algorithm": "FedAvg", "training_clients_per_round": 2}' http://172.17.0.1:34001/config_server
  • client_select: curl -X GET -H "Content-Type: application/json" -d '{"eligible_clients_ids" : ["1", "2"]}' http://172.17.0.1:34001/select_clients

Run nmclient on obus

docker run -p 45000:8000 -e RUST_LOG=info -e ROCKET_CONFIG=/etc/videoprobe/Rocket.toml -e GNSS_DEV=/dev/ttyACM0 -e GNSS_ENABLED=false --name nmcli1 nmcli:latest docker run -p 55000:8000 -e RUST_LOG=info -e ROCKET_CONFIG=/etc/videoprobe/Rocket.toml -e GNSS_DEV=/dev/ttyACM0 -e GNSS_ENABLED=false --name nmcli2 nmcli:latest

Send config to nmclients on obus

curl -X GET -H "Content-Type: application/json" -d "{\"node_ip\": [\"http://172.17.0.1:41002/upload\"], \"stream_ip\": \"172.17.0.1\", \"stream_url\": \"rtmp://172.17.0.1:31000/live/test\"}" http://172.17.0.1:45000/demo/start curl -X GET -H "Content-Type: application/json" -d "{\"node_ip\": [\"http://172.17.0.1:51002/upload\"], \"stream_ip\": \"172.17.0.1\", \"stream_url\": \"rtmp://172.17.0.1:31000/live/test\"}" http://172.17.0.1:55000/demo/start

Start training on Clients

docker run --cpus=1 -p 41000:8080 -p 41001:5000 -p 41002:80 -e SERVER_IP_FLWR=172.17.0.1:34000 -e SERVER_IP_AGG=172.17.0.1:34001 -e CLIENT_ID=1 --name client1 --rm obu:latest docker run --cpus=1 -p 51000:8080 -p 51001:5000 -p 51002:80 -e SERVER_IP_FLWR=172.17.0.1:34000 -e SERVER_IP_AGG=172.17.0.1:34001 -e CLIENT_ID=2 --name client2 --rm obu:latest

5G IANA

Here I'll describe how we deploy this setup onto the 5G IANA platform.

Setup Components

We'll need the following 5 components:

  • nmsender
  • nmclient
  • aggregator
  • obu-node
  • pqos

All images are on the custom docker registry: 192.168.100.2:5000/uulm with the 5g-iana user.

uc6nmsen2 / nmsender

nmsender is pushed as nginx:v1.2.2 onto the registry. The components name is: uc6nmsen2

General

Name: uc6nmsen2 Architecture: amd64 Elasticity Controller: HORIZONTAL

Distribution Parameters

Docker Image: nginx:v1.2.2

Minimum Execution Requirements

vCPUs: 1 RAM: 2048 Storage: 10 Hypervisor Type: ESXI

Health Check

HTTP/Command: ffprobe -v quiet -print_format json -show_streams rtmp://localhost/live/test Time Interval: 10

Container Execution
Environment Variables
Exposed Interfaces

uc6nmsen21935: 1935 / Access / TCP/UDP

Required Interfaces
Plugins
Volumes
Devices
Labels
Advanced Options

uc6nmclient / nmclient

nmclient is pushed as passive_network_monitoring:v1.2.1. The components name is: uc6nmclient

General

Name: uc6nmclient Architecture: amd64 Elasticity Controller: HORIZONTAL

Distribution Parameters

Docker Image: passive_network_monitoring:v1.2.1

Minimum Execution Requirements

vCPUs: 1 RAM: 512 Storage: 10 Hypervisor Type: ESXI

Health Check

HTTP/Command: http://localhost:8000 Time Interval: 10

Container Execution
Environment Variables

ROCKET_CONFIG: /etc/videoprobe/Rocket.toml GNSS_DEV: /dev/ttyACM0 RUST_LOG: info GNSS_ENABLED: true

Exposed Interfaces

uc6nmclientstatus: 8000 / Access / TCP

Required Interfaces
Plugins
Volumes
Devices
Labels
Advanced Options

uc6aggnode / aggregator

aggregator is pushed as uc6aggnode:v1.1.0. The component is: uc6aggnode

General

Name: uc6aggnode Architecture: amd64 Elasticity Controller: HORIZONTAL

Distribution Parameters

Docker Image: uc6aggnode:v0.9.0

Minimum Execution Requirements

vCPUs: 1 RAM: 1024 Storage: 10 Hypervisor Type: ESXI

Health Check

HTTP/Command: http://localhost:8080 Time Interval: 10

Container Execution
Environment Variables
Exposed Interfaces

uc6aggnode8080: 8080 / Access / TCP uc6aggnode5000: 5000 / Access / TCP

Required Interfaces
Plugins
Volumes
Devices
Labels
Advanced Options

uc6dmltrain0 / obu-node

We'll need this twice, with different environment variables obu-node is pushed as training_agent:v1.2.0. The component name is: uc6dmltrain0

General

Name: uc6dmltrain0 Architecture: amd64 Elasticity Controller: HORIZONTAL

Distribution Parameters

Docker Image: training_agent:v1.2.0

Minimum Execution Requirements

vCPUs: 1 RAM: 4096 Storage: 4 Hypervisor Type: ESXI

Health Check

HTTP/Command: [ http://localhost:80 ] Time Interval: 10

Container Execution
Environment Variables
  • SERVER_IP_FLWR=192.168.100.4:30765
  • SERVER_IP_AGG=192.168.100.4:31810
  • CLIENT_ID=0
Exposed Interfaces

uc6dmltrain08080: 8080 / Access / TCP uc6dmltrain080: 80 / Access / TCP obustart0: 5001 / Access / TCP

Required Interfaces
Plugins
Volumes
Devices
Labels
Advanced Options

uc6dmltrain1 / obu-node

We'll need this twice, with different environment variables obu-node is pushed as training_agent:v1.2.0. The component name is: uc6dmltrain1

General

Name: uc6dmltrain1 Architecture: amd64 Elasticity Controller: HORIZONTAL

Distribution Parameters

Docker Image: training_agent:v1.2.0

Minimum Execution Requirements

vCPUs: 1 RAM: 4096 Storage: 4 Hypervisor Type: ESXI

Health Check

HTTP/Command: [ http://localhost:80 ] Time Interval: 10

Container Execution
Environment Variables
  • SERVER_IP_FLWR=192.168.100.4:30765
  • SERVER_IP_AGG=192.168.100.4:31810
  • CLIENT_ID=1
Exposed Interfaces

uc6dmltrain18080: 8080 / Access / TCP uc6dmltrain180: 80 / Access / TCP obustart1: 5001 / Access / TCP

Required Interfaces
Plugins
Volumes
Devices
Labels
Advanced Options

uc6pqos / pqos

pqos is pushed as uc6pqos:v1.2.0. The component is uc6pqos

General

Name: uc6pqos Architecture: amd64 Elasticity Controller: HORIZONTAL

Distribution Parameters

Docker Image: uc6pqos:v1.2.0

Minimum Execution Requirements

vCPUs: 1 RAM: 512 Storage: 10 Hypervisor Type: ESXI

Health Check

HTTP/Command: [http://localhost:5000] Time Interval: 10

Container Execution
Environment Variables

ENDPOINT: [ https://webhook.site/9ebcf608-2c9a-4302-87e5-5b477831b6b ]

Exposed Interfaces

uc6pqos5000: 5000 / Access / TCP

Required Interfaces
Plugins
Volumes
Devices
Labels
Advanced Options

uc6dmlarm0 / obu-node

We'll need this twice, with different environment variables obu-node is pushed as training_agent:v1.2.0. The component name is: uc6dmlarm0

General

Name: us6dmlarm0 Architecture: arm64 Elasticity Controller: HORIZONTAL

Distribution Parameters

Docker Image: training_agent:v1.2.0 Docker Username: 5g-iana Docker Password: 5g-iana Custom Docker Registry: [ 192.168.100.2:5000/uulm ]

Minimum Execution Requirements

vCPUs: 1 RAM: 4096 Storage: 4 Hypervisor Type: ESXI

Health Check

HTTP/Command: [ http://localhost:80 ] Time Interval: 10

Container Execution
Environment Variables
  • SERVER_IP_FLWR=192.168.100.4:30765
  • SERVER_IP_AGG=192.168.100.4:31810
  • CLIENT_ID=3
Exposed Interfaces

uc6dmlarm08080: 8080 / Access / TCP uc6dmlarm080: 80 / Access / TCP obustart3: 5001 / Access / TCP

Required Interfaces
Plugins
Volumes
Devices
Labels
Advanced Options

uc6dmlarm1 / obu-node

We'll need this twice, with different environment variables obu-node is pushed as training_agent:v1.2.0. The component name is: uc6dmlarm1

General

Name: uc6dmlarm1 Architecture: arm64 Elasticity Controller: HORIZONTAL

Distribution Parameters

Docker Image: training_agent:v1.2.0 Docker Username: 5g-iana Docker Password: 5g-iana Custom Docker Registry: [ 192.168.100.2:5000/uulm ]

Minimum Execution Requirements

vCPUs: 1 RAM: 4096 Storage: 4 Hypervisor Type: ESXI

Health Check

HTTP/Command: [ http://localhost:80 ] Time Interval: 10

Container Execution
Environment Variables
  • SERVER_IP_FLWR=192.168.100.4:31805
  • SERVER_IP_AGG=192.168.100.4:30760
  • CLIENT_ID=4
Exposed Interfaces

uc6dmlarm18080: 8080 / Access / TCP uc6dmlarm180: 80 / Access / TCP obustart4: 5001 / Access / TCP

Required Interfaces
Plugins
Volumes
Devices
Labels
Advanced Options

uc6dmlarm2 / obu-node

We'll need this twice, with different environment variables obu-node is pushed as training_agent:v1.2.0. The component name is: uc6dmlarm2

General

Name: uc6dmlarm2 Architecture: arm64 Elasticity Controller: HORIZONTAL

Distribution Parameters

Docker Image: training_agent:v1.2.0 Docker Username: 5g-iana Docker Password: 5g-iana Custom Docker Registry: [ 192.168.100.2:5000/uulm ]

Minimum Execution Requirements

vCPUs: 1 RAM: 4096 Storage: 4 Hypervisor Type: ESXI

Health Check

HTTP/Command: [ http://localhost:80 ] Time Interval: 10

Container Execution
Environment Variables
  • SERVER_IP_FLWR=192.168.100.4:30765
  • SERVER_IP_AGG=192.168.100.4:31810
  • CLIENT_ID=2
Exposed Interfaces

uc6dmlarm28080: 8080 / Access / TCP uc6dmlarm280: 80 / Access / TCP obustart2: 5001 / Access / TCP

Required Interfaces
Plugins
Volumes
Devices
Labels
Advanced Options

Setup Applications

uc6nmsen2 / uc6nmsen2

Has uc6nmsen2 with the name uc6nmsen21831.

uc6nmcli2 / uc6nmclient

Has uc6nmclient with the name us6nmclient1771.

uc6aggnode / uc6aggnode

Has uc6aggnode with the name uc6aggnode1781.

uc6dmltrain0 / uc6dmltrain0

Has uc6dmltrain0 with the name uc6dmltrain02031.

uc6dmltrain1 / uc6dmltrain1

Has uc6dmltrain1 with the name uc6dmltrain1541.

uc6pqos / uc6pqos

Has uc6pqos with the name uc6pqos1841.

uc6dmlarm0 / uc6dmlarm0

Has uc6dmlarm0 with the name uc6dmlarm02041.

uc6dmlarm1 / uc6dmlarm1

Has uc6dmlarm1 with the name uc6dmlarm12051.

uc6dmlarm2 / uc6dmlarm2

Has uc6dmlarm2 with the name uc6dmlarm22061.

Setup Deployment

uc6aggnode6 / uc6aggnode

Configure "uc6aggnode1781" Component

Select node: 5g-iana-mec

Set the Constraints of "uc6aggnode1781" Access Interface

Radio Service Types: eMBB Uplink Bandwidth: 1 Downlink Bandwidth: 10

uc6nmsender / uc6nmsen2

Configure "uc6nmsen21831" Component

Select node: 5g-iana-mec

Set the Constraints of "uc6nmsen21831" Access Interface

Radio Service Types: eMBB Uplink Bandwidth: 1 Downlink Bandwidth: 10

uc6pqos0 / uc6pqos

Configure "uc6pqos1841" Component

Select node: 5g-iana-mec

Set the Constraints of "uc6pqos1841" Access Interface

Radio Service Types: eMBB Uplink Bandwidth: 1 Downlink Bandwidth: 10

uc6nmcli1 / uc6nmcli2

Select node: uulm-obu1

Set the Constraints of "" Access Interface

Radio Service Types: eMBB Uplink Bandwidth: 1 Downlink Bandwidth: 10

uc6nmcli0 / uc6nmcli2

Configure "" Component

Select node: uulm-obu0

Set the Constraints of "uc6nmclient1771" Access Interface

Radio Service Types: eMBB Uplink Bandwidth: 1 Downlink Bandwidth: 10

uc6dml90 / uc6dmltrain0

Configure "uc6dmltrain02031" Component

Select node: uulm-obu0

Set the Constraints of "uc6dmltrain02031" Access Interface

Radio Service Types: eMBB Uplink Bandwidth: 1 Downlink Bandwidth: 10

uc6dml91 / uc6dmltrain1

Configure "uc6dmltrain1541" Component

Select node: uulm-obu1

Set the Constraints of "uc6dmltrain1541" Access Interface

Radio Service Types: eMBB Uplink Bandwidth: 1 Downlink Bandwidth: 10

uc6dmlarm0 / uc6dmlarm0

Configure "uc6dmlarm02041" Component

Select node: orin

Set the Constraints of "uc6dmlarm02041" Access Interface

Radio Service Types: eMBB Uplink Bandwidth: 1 Downlink Bandwidth: 10

uc6dmlarm1 / uc6dmlarm1

Configure "uc6dmlarm12051" Component

Select node: ubuntu

Set the Constraints of "uc6dmlarm12051" Access Interface

Radio Service Types: eMBB Uplink Bandwidth: 1 Downlink Bandwidth: 10

uc6dmlarm2 / uc6dmlarm2

Configure "uc6dmlarm22061" Component

Select node: links-vobu-1

Set the Constraints of "uc6dmlarm22061" Access Interface

Radio Service Types: eMBB Uplink Bandwidth: 1 Downlink Bandwidth: 10

Curl commands

# towards uc6aggnode
curl -X POST -H "Content-Type: application/json" -d '{ "ml_model": "../resources/best_model_no_tuner_40.h5", "num_epochs": 10, "min_working_nodes": 1, "hyperparam_epochs": 5, "hyperparam_batch_size": 2048, "hyperparam_learning_rate": 0.001, "avg_algorithm": "FedAvg", "training_clients_per_round": 1}' http://172.17.0.1:34001/config_server

curl -X POST -H "Content-Type: application/json" -d '{"eligible_clients_ids" : ["1"]}' http://172.17.0.1:34001/select_clients

# towards nmcli2
curl -X GET -H "Content-Type: application/json" -d "{\"node_ip\": [\"http://172.17.0.1:41002/upload\"], \"stream_ip\": \"172.17.0.1\", \"stream_url\": \"rtmp://172.17.0.1:31000/live/test\"}" http://172.17.0.1:45000/demo/start

Possible Tags

curl -u 5g-iana:5g-iana -k https://192.168.100.2:5000/v2/uulm/nginx/tags/list
{"name":"uulm/nginx","tags":["v1.2.1","v1.1.0","v1.2.2","v1.1.1"]}
curl -u 5g-iana:5g-iana -k https://192.168.100.2:5000/v2/uulm/passive_network_monitoring/tags/list
{"name":"uulm/passive_network_monitoring","tags":["v1.2.1","v1.1.0","v1.2.0","v1.1.1"]}
curl -u 5g-iana:5g-iana -k https://192.168.100.2:5000/v2/uulm/uc6aggnode/tags/list
{"name":"uulm/uc6aggnode","tags":["v0.9.0"]}
curl -u 5g-iana:5g-iana -k https://192.168.100.2:5000/v2/uulm/training_agent/tags/list
{"name":"uulm/training_agent","tags":["v1.1.0","v1.2.0","v1.1.1"]}

Kubernetes Stats

Aggregator node

nxw@5g-iana-manager:~$ kc get all -n 31ff3ac6-c9c9-454c-8131-f0be06dfd711
NAME                                                               READY   STATUS    RESTARTS      AGE
pod/uc6agg-uc6aggnode1781-eeqsuyvfcx-deployment-767949685b-tlrn8   1/1     Running   4 (44h ago)   45h

NAME                                               TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)                         AGE
service/uc6agg-uc6aggnode1781-eeqsuyvfcx-service   NodePort   10.152.183.223   <none>        8080:30765/TCP,5000:31810/TCP   45h

NAME                                                          READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/uc6agg-uc6aggnode1781-eeqsuyvfcx-deployment   1/1     1            1           45h

Curl only from obu or mec Curl to start this: curl -X POST -H "Content-Type: application/json" -d '{ "ml_model": "../resources/best_model_no_tuner_40.h5", "num_epochs": 10, "min_working_nodes": 2, "hyperparam_epochs": 5, "hyperparam_batch_size": 2048,"hyperparam_learning_rate": 0.001, "avg_algorithm": "FedAvg", "training_clients_per_round": 2}' http://192.168.100.4:31808/config_server Client Selection: curl -X GET -H "Content-Type: application/json" -d '{"eligible_clients_ids" : ["0", "1"]}' http://192.168.100.4:31808/select_clients

uc6dml on uulm-obu0 / uulm-obu1

uulm-obu0
nxw@5g-iana-manager:~$ kc get all -n 5dcb12b1-a7a9-4b73-b290-a30f1d02b7db
NAME                                                       TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)                                      AGE
service/uc6dmltrain0-uc6dmltrain02031-jekf9nmeui-service   NodePort   10.152.183.71   <none>        80:31418/TCP,8080:30402/TCP,5001:32126/TCP   45h

NAME                                                                  READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/uc6dmltrain0-uc6dmltrain02031-jekf9nmeui-deployment   0/0     0            0           45h

NAME                                                                             DESIRED   CURRENT   READY   AGE
replicaset.apps/uc6dmltrain0-uc6dmltrain02031-jekf9nmeui-deployment-7b779477b4   0         0         0       45h
uulm-obu1
nxw@5g-iana-manager:~$ kc get all -n 7cc5f73c-e349-493c-a592-9e0e685a0a65
NAME                                                      TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)                                      AGE
service/uc6dmltrain1-uc6dmltrain1541-xtyata0ycb-service   NodePort   10.152.183.89   <none>        8080:30022/TCP,80:32174/TCP,5001:31066/TCP   45h

NAME                                                                 READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/uc6dmltrain1-uc6dmltrain1541-xtyata0ycb-deployment   0/0     0            0           45h

NAME                                                                           DESIRED   CURRENT   READY   AGE
replicaset.apps/uc6dmltrain1-uc6dmltrain1541-xtyata0ycb-deployment-bd7d5964b   0         0         0       45h

PQoS (TODO)

nxw@5g-iana-manager:~$ kc get all -n e2c74d7f-5de3-47ae-a450-5af3745ba0dc
NAME                                                              READY   STATUS              RESTARTS   AGE
pod/uc6pqos0-uc6pqos1841-chdrqcj0rm-deployment-7546f9455f-qmfx6   0/1     ContainerCreating   0          21s

NAME                                              TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/uc6pqos0-uc6pqos1841-chdrqcj0rm-service   NodePort   10.152.183.18   <none>        5000:32119/TCP   21s

NAME                                                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/uc6pqos0-uc6pqos1841-chdrqcj0rm-deployment   0/1     1            0           21s

NAME                                                                    DESIRED   CURRENT   READY   AGE
replicaset.apps/uc6pqos0-uc6pqos1841-chdrqcj0rm-deployment-7546f9455f   1         1         0       21s

NmSender

nxw@5g-iana-manager:~$ kc get all -n 1918b480-5b0c-4cf5-aff6-f60d06622251
NAME                                                                  READY   STATUS    RESTARTS   AGE
pod/uc6nmsender-uc6nmsen21831-3ebfpbnq83-deployment-64884c7f769pc8s   1/1     Running   0          56m

NAME                                                   TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/uc6nmsender-uc6nmsen21831-3ebfpbnq83-service   NodePort   10.152.183.30   <none>        1935:31023/TCP   56m

NAME                                                              READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/uc6nmsender-uc6nmsen21831-3ebfpbnq83-deployment   1/1     1            1           56m

NAME                                                                         DESIRED   CURRENT   READY   AGE
replicaset.apps/uc6nmsender-uc6nmsen21831-3ebfpbnq83-deployment-64884c7f76   1         1         1       56m

NmCli on uulm-obu0 / uulm-obu1

uulm-obu0
nxw@5g-iana-manager:~$ kc get all -n a0633f4a-98bb-4dc3-9aff-c0c8b75ccf33
NAME                                                                  READY   STATUS    RESTARTS   AGE
pod/uc6nmcli0-uc6nmclient1771-1gyqqtau43-deployment-6d6fc795dfsbvgj   1/1     Running   0          16m

NAME                                                   TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service/uc6nmcli0-uc6nmclient1771-1gyqqtau43-service   NodePort   10.152.183.164   <none>        8000:30637/TCP   16m

NAME                                                              READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/uc6nmcli0-uc6nmclient1771-1gyqqtau43-deployment   1/1     1            1           16m

NAME                                                                         DESIRED   CURRENT   READY   AGE
replicaset.apps/uc6nmcli0-uc6nmclient1771-1gyqqtau43-deployment-6d6fc795df   1         1         1       16m

Curl to start this: curl -X GET -H "Content-Type: application/json" -d "{\"endpoint_ip\": [\"http://192.168.100.4:31418/upload\", \"https://webhook.site/fbf62890-8c93-426c-bb19-461d8e11ff8c\"], \"ping_ip\": \"192.168.100.4\", \"stream_url\": \"rtmp://192.168.100.4:31023/live/test\"}" http://192.168.100.4:30637/demo/start

uulm-obu1
nxw@5g-iana-manager:~$ kc get all -n fa862b87-1d25-4357-bc29-ffcc4aa67907
NAME                                                                  READY   STATUS    RESTARTS   AGE
pod/uc6nmcli1-uc6nmclient1771-k9rifya6n3-deployment-84f59b85ccvrn8q   1/1     Running   0          14m

NAME                                                   TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service/uc6nmcli1-uc6nmclient1771-k9rifya6n3-service   NodePort   10.152.183.237   <none>        8000:32334/TCP   14m

NAME                                                              READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/uc6nmcli1-uc6nmclient1771-k9rifya6n3-deployment   1/1     1            1           14m

NAME                                                                         DESIRED   CURRENT   READY   AGE
replicaset.apps/uc6nmcli1-uc6nmclient1771-k9rifya6n3-deployment-84f59b85cc   1         1         1       14m

Curl only from obu or mec Curl to start this: curl -X GET -H "Content-Type: application/json" -d "{\"endpoint_ip\": [\"http://192.168.100.4:32174/upload\", \"https://webhook.site/fbf62890-8c93-426c-bb19-461d8e11ff8c\"], \"ping_ip\": \"192.168.100.4\", \"stream_url\": \"rtmp://192.168.100.4:31023/live/test\"}" http://192.168.100.4:32334/demo/start

{
  "endpoint_ip": [
    "http://192.168.100.4:30956/upload",
    "http://192.168.100.4:32119/accept_data"
  ],
  "ping_ip": "192.168.100.4",
  "stream_url": "rtmp://192.168.100.4:30888/live/test"
}

Scripts

From uulm-obu0, uulm-obu1 or 5g-iana-mec. Get list of repos: curl -u 5g-iana:5g-iana -k https://192.168.100.2:5000/v2/_catalog Get tags for a repo: curl -u 5g-iana:5g-iana -k https://192.168.100.2:5000/v2/uulm/training_agent/tags/list

Issues

uulm-obu0 offline

uulm-obu0 is offline and has been offline for a while.

Logs

Can't access logs from kubernetes on the uulm-obu1

Error from server: Get "https://172.16.1.11:10250/containerLogs/26f69d2b-bf62-44a6-9346-421d34d376d8/uc6dml9-01-uc6dmltrain541-ccdgt3sqq8-deployment-6896f68c87cgq4r/uc6dml9-01-uc6dmltrain541-ccdgt3sqq8": dial tcp 172.16.1.11:10250: i/o timeout

Troubleshooting steps would be

I get "i/o timeouts" when calling "microk8s kubectl logs"

Make sure your hostname resolves correctly to the IP address of your host or localhost. The following error may indicate this misconfiguration:

microk8s kubectl logs Error from server: Get "https://hostname:10250/containerLogs/default/...": dial tcp host-IP:10250: i/o timeout

One way to address this issue is to add the hostname and IP details of the host in /etc/hosts. In the case of a multi-node cluster, the /etc/hosts on each machine has to be updated with the details of all cluster nodes.

But doesn't work

todo

  • Agg node testing - Giorgos will test on platform
  • network monitoring figure out why not our obus are working
  • check arm deployment of nmclient
  • deploy nmclient tool on uc1 obus
  • confirm pqos deployment on obu on our obus

Data Collection for NEtwork Monitoring

curl -X GET -d "{\"id\": 1}" 192.168.200.11:32684/data_collection/get_data_stats
curl -X GET -H "Content-Type: application/json" -d "{\"endpoint_ip\": [\"https://webhook.site/85e1c94b-6642-45e2-abd4-59ef11450c2b\"], \"ping_ip\": \"192.168.100.4\", \"stream_url\": \"rtmp://192.168.100.4:31023/live/test\"}" http://192.168.200.11:32684/demo/start

PQoS Final Event

Component

General

  • Name: uc6pqos-fe
  • Architecture: x86
  • Elasticity controller: HORIZONTAL

Distribution Parameters

  • Docker Image: uc6pqos:v1.3.0
  • Docker Credentials:

Minimum Execution Requirements

  • vCPUs: 1
  • RAM (MB): 512
  • Storage (GB): 10
  • Hypervisor Type: ESXI

Health Check

Environment variables

For testing

Exposed Interfaces

  • uc6pqosfe5000: 5000

Application

  • Name: PQoS-finalevent
  • Component: uc6pqos-fe

Instance

  • Name: PQoS-finalevent
  • Selector Provider: NEXTWORKS-OSS
  • Application: PQoS-finalevent
    • Selector node: uulm-obu0 # For Testing
  • Ingress:
    • Minimum Bandwidth: eMBB
    • Radio Service Types: 1
    • Maximum Bandwidth: 10