Skip to content

Deployment Steps

Gustavo Zanatta Bruno edited this page Nov 15, 2021 · 5 revisions

Prerequisites

  • Mongo version 3.6.8;
  • Kubernetes Cluster version between 1.16 and 1.21;
  • Kuberbetes SO Nodes:
    • Debian Running Real Time Kernel;
    • Ubuntu (Recomended) Running Low Latency Kernel;

Setup core

  • First install mongo version 3.6.8 to run core database in one place acessible by cluster:
sudo apt-get install sudo apt-get install -y mongodb-org=3.6.8
  • Change core deployment file to correct database IP updating env value DB_IP to IP from place where is running mongo from the previsous step;

  • Label node or nodes with tag core=true where the core is allowed to run, in the example below, it is allowed to run in node1:

kubectl label nodes node1 core=true
  • Start core:
kubectl apply -f images/core/core-deployment.yaml

Setup Optimization Control

  • Just apply deployment and service from the scheduler file:
kubectl apply -f scheduler-manager/k8s/deployment.yaml

Operator

Operator Dependencies

  • Install Go Version 1.14
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.14.15.linux-amd64.tar.gz &&\
export PATH=$PATH:/usr/local/go/bin &&\
source $HOME/.profile
  • Install kustomize
curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"  | bash &&\
mv kustomize /usr/bin/
  • Compile and deploy Operator. Go inside k8s-operator/ and:
make install && make deploy

Deploy an essential chain (CU, DU, and RU)

  • First, get de IP from the core pod:
kubectl get pods -o wide
  • Edit file ran_v1alpha1_randeployer.yaml and change the coreIP parameter to the address we copied in the previous step:

  • And start to chain an applying custom resource RANDeployer with the command:

kubectl apply -f k8s-operator/config/samples/ran_v1alpha1_randeployer.yaml

Deploy customized topologies

Now label RAN nodes.

Running more complex topologies: Now label the nodes that will be able to receive the VNFs from the RAN. In example bellow nodes1 and 2 are used to master. Other are used to run RAN VNFs nodes.

kubectl label node node1 oai.unisinos/node-number=0 --overwrite
kubectl label node node2 oai.unisinos/node-number=0 --overwrite
kubectl label node node3 oai.unisinos/node-number=1 --overwrite
kubectl label node node4 oai.unisinos/node-number=2 --overwrite
kubectl label node node5 oai.unisinos/node-number=3 --overwrite
kubectl label node node6 oai.unisinos/node-number=4 --overwrite

Setup Topologies:

  • Setup RUs locations in the format of file rus.yaml, where "RU": 0 not will tun RU and 1 will RUN. This spec is used too to define the number of the chains.
  • Setup Network links in the format of file topology.yaml. These values are used to algorithm compute teh VNFs locations.
  • Apply topology:
kubectl apply -f k8s-operators/config/samples/ran-placer-config-maps/mini-topo/.

Deploy a customized topology:

  • Edit file ran_v1alpha1_ranplacer.yaml and change the coreIP parameter to the address we copied in the previous step:

  • And finally, start chain an applying custom resource RANPlacer with the command:

kubectl apply -f k8s-operator/config/samples/ran_v1alpha1_ranplacer.yaml