This article helps you to deploy the nonrtric components in your local VM in minikube environment.
Login into your vm and run the below command as sudo user in the terminal. This will install the latest version of minikube in your vm.
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \ && chmod +x minikube sudo mkdir -p /usr/local/bin/ sudo install minikube /usr/local/bin/ |
You can start the minikube with the below command. Check Troubleshoot section for any potential errors.
sudo minikube start --vm-driver=none |
If the above command is successful, you should see the below logs in your terminal,
If there are no issues then you could see below success message,
Kubectl command enables us to run commands against k8's cluster.
curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl kubectl version --client Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GitCommit:"2e7996e3e2712684bc73f0dec0200d64eec7fe40", GitTreeState:"clean", BuildDate:"2020-05-20T12:52:00Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"} |
Run the below command to install helm version 2.16,
curl -L https://git.io/get_helm.sh | bash |
Run the below command to install latest helm, Create yaml file to define the service account & cluster role binding for helm,
cat > tiller-serviceaccount.yaml << EOF apiVersion: v1 kind: ServiceAccount metadata: name: tiller namespace: kube-system --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: tiller-clusterrolebinding subjects: - kind: ServiceAccount name: tiller namespace: kube-system roleRef: kind: ClusterRole name: cluster-admin apiGroup: "" EOF |
sudo kubectl create -f tiller-serviceaccount.yaml |
helm init --service-account tiller --upgrade |
After initializing helm you can call helm version and you should see below response,
Clone IT/dep repo and go to /dep/bin and run below command,
./deploy-nonrtric -f ../nonrtric/RECIPE_EXAMPLE/example_recipe.yaml |
If the deployment is successful, you could below logs,
Note: It may take a while for A1 controller image to be downloaded.
Kubectl -n nonrtric get pod, will show pod status
Install conntrack,
sudo apt-get install conntrack |
Once k8's commands are installed , minikube will start the initialization process and you may get below error,
Simply turn off the swap,
sudo swapoff -a |
You need to increase the processors of the VM. To this go to the virtual box settings and increase it to 2.
apt install socat |
All the above setup is done in Oracle Virtual box VM and you can try it in different OS's and feel free to update this page
You have Oracle Virtual box installed with Ubuntu VM.
For more information, refer
https://ubuntu.com/download/desktop
There is an alternative way, described in the procedure below to run NonRT-RIC kubenetes cluster in Minikube running on Oracle Virtual Box with Ubuntu 22.04.
Via an installation script that brings up Minikube and allow to deploy NonRT-RIC cluster on it. Besides, the Kubernetes GUI could be started to see overall deployment.
VirtualBox version 6.1. (Can be downloaded from this page Download VirtualBox)
Ubuntu version 22.04. (Can be downloaded from this page Download Ubuntu)
Basic configuration of Ubuntu on Virtual Box can be found below.
###Install Curl### $ sudo apt install curl ###Install Git### $ sudo apt install git |
#!/bin/bash # Script to run as root in Ubuntu 22.04 running on Oracle Virtual Box. # This will bring up MiniKube running. For further Non-RT RIC installation, the related block must uncomment and run. # NOTE: Do 'sudo su' before running the script # NOTE: Before start to installation, ensure that Curl, Git and Wget are ready to use! ###Log all cmds to stdout### set -x ###Fetch and install Docker### curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh ###Install Conntrack### apt-get install conntrack ###Install Socat### apt install socat ###Install GO Lang### wget https://storage.googleapis.com/golang/getgo/installer_linux chmod +x ./installer_linux ./installer_linux source ~/.bash_profile ###Install cri-dockerd### git clone https://github.com/Mirantis/cri-dockerd.git cd cri-dockerd mkdir bin go build -o bin/cri-dockerd mkdir -p /usr/local/bin install -o root -g root -m 0755 bin/cri-dockerd /usr/local/bin/cri-dockerd cp -a packaging/systemd/* /etc/systemd/system sed -i -e 's,/usr/bin/cri-dockerd,/usr/local/bin/cri-dockerd,' /etc/systemd/system/cri-docker.service systemctl daemon-reload systemctl enable cri-docker.service systemctl enable --now cri-docker.socket cd .. ###Install Crictl### VERSION="v1.25.0" wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz sudo tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin rm -f crictl-$VERSION-linux-amd64.tar.gz ###Fetch and install Minikube### curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \ && chmod +x minikube mkdir -p /usr/local/bin/ install minikube /usr/local/bin/ ###Fetch and install Kubectl### curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl chmod +x ./kubectl mv ./kubectl /usr/local/bin/kubectl kubectl version --client #Just print the version ###Fetch Helm 3### curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh ###exit root### exit ###Add user to docker group### sudo usermod -aG docker $USER && newgrp docker ################################################################################## ## Clone dep repo and deploy Non-RT RIC components ### ## Uncomment the following lines to install Non-RT RIC (can also be done later)### ################################################################################## #git clone "https://gerrit.o-ran-sc.org/r/it/dep" #cd dep/bin #sudo ./deploy-nonrtric -f ../nonrtric/RECIPE_EXAMPLE/example_recipe.yaml |
###Start minikube### minikube start ###Check status### $ minikube status $ kubectl get pods -n kube-system |
###Start dashboard### $ minikube dashboard |