O-RAN notes(2)---Bronze deployment

O-RAN SC Bronze(or release 'B') has been released at 2020/6/21.

Follow link: https://wiki.o-ran-sc.org/pages/viewpage.action?pageId=14221635

 

(1) SMO deployment

https://wiki.o-ran-sc.org/display/GS/SMO+Installation

First of all, you need a VM. Recommend OS is Ubuntu 18.04 LTS (Bionic Beaver). But I am using a cloned Debian-testing VM.

dabs@RICBronze:~/oran/dep/smo/bin$ uname -a
Linux RICBronze 5.6.0-1-amd64 #1 SMP Debian 5.6.7-1 (2020-04-29) x86_64 GNU/Linux

[Step 1: Obtaining the Deployment Scripts and Charts] is very simple:

dabs@RICBronze:~$ mkdir oran
dabs@RICBronze:~$ cd oran
dabs@RICBronze:~/oran$ git clone http://gerrit.o-ran-sc.org/r/it/dep -b bronze
Cloning into 'dep'...
warning: redirecting to https://gerrit.o-ran-sc.org/r/it/dep/
remote: Counting objects: 3, done
remote: Total 4412 (delta 0), reused 4412 (delta 0)
Receiving objects: 100% (4412/4412), 2.21 MiB | 45.00 KiB/s, done.
Resolving deltas: 100% (1784/1784), done.
dabs@RICBronze:~/oran$ cd dep/
dabs@RICBronze:~/oran/dep$ git submodule update --init --recursive --remote
Submodule 'ric-dep' (https://gerrit.o-ran-sc.org/r/ric-plt/ric-dep) registered for path 'ric-dep'
Cloning into '/home/dabs/oran/dep/ric-dep'...
Submodule path 'ric-dep': checked out 'f13294efad66831d8140c35d21fb59d19160493d'

[Step 2: Generation of cloud-init Script]:

update dep/tools/k8s/etc/infra.rc:

dabs@RICBronze:~/oran/dep/tools/k8s/etc$ cat infra.rc 
# modify below for RIC infrastructure (docker-k8s-helm) component versions
# RIC tested
#INFRA_DOCKER_VERSION=""
#INFRA_HELM_VERSION="2.12.3"
#INFRA_K8S_VERSION="1.16.0"
#INFRA_CNI_VERSION="0.7.5"
# older RIC tested
#INFRA_DOCKER_VERSION=""
#INFRA_HELM_VERSION="2.12.3"
#INFRA_K8S_VERSION="1.13.3"
#INFRA_CNI_VERSION="0.6.0"
# ONAP Frankfurt
INFRA_DOCKER_VERSION="18.09.7"
INFRA_K8S_VERSION="1.15.9"
INFRA_CNI_VERSION="0.7.5"
INFRA_HELM_VERSION="2.16.6"

run gen-cloud-init.sh to generate the k8s-1node-cloud-init-k_1_15-h_2_16-d_18_09.sh script:

dabs@RICBronze:~/oran/dep/tools/k8s/bin$ ./gen-cloud-init.sh 
find: warning: you have specified the global option -maxdepth after the argument -type, but global options are not positional, i.e., -maxdepth affects tests specified before it as well as those specified after it.  Please specify global options before other arguments.
reading in values in /home/dabs/oran/dep/tools/k8s/bin/../etc/env.rc
reading in values in /home/dabs/oran/dep/tools/k8s/bin/../etc/infra.rc
reading in values in /home/dabs/oran/dep/tools/k8s/bin/../etc/openstack.rc
dabs@RICBronze:~/oran/dep/tools/k8s/bin$ ls
deploy-stack.sh    gen-ric-heat-yaml.sh  k8s-1node-cloud-init-k_1_15-h_2_16-d_18_09.sh  uninstall
gen-cloud-init.sh  install               undeploy-stack.sh

[Step 3: Installation of Kubernetes, Helm, Docker, etc.]

First, make changes to the script: k8s-1node-cloud-init-k_1_15-h_2_16-d_18_09.sh

(1) As I am using debian-testing, update the DOCKERVERSION part as below:

(2) update k8s mirror:

(3) update docker mirror:

(4) comment last line to avoid sudden VM reboot(O_O, I thought system failure happened!!!):

(5) edit /etc/hosts:

(6) update docker apt repository

$sudo apt-key fingerprint 0EBFCD88

#for ubuntu
$sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

#for debian-testing
$sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian buster stable"

 

Now, run the script for the 1st time, you should encounter problems, and use CTRL+C to end the infinite loop of 'waiting for 0/8 pods ready and take-a-nap' :

dabs@RICBronze:~/oran/dep/tools/k8s/bin$ sudo ./k8s-1node-cloud-init-k_1_15-h_2_16-d_18_09.sh 

This is caused by the docker-pull-firewalled-problem, you will need following docker images for [Step 3]:

For the k8s.gcr.io/* images, solution:

$sudo kubeadm config images list | sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#registry.aliyuncs.com/google_containers#g' | sudo sh -x

$sudo docker images | grep registry.aliyuncs.com/google_containers | awk '{print "docker tag ",$1":"$2,$1":"$2}' | sed -e 's#registry.aliyuncs.com/google_containers#k8s.gcr.io#2' | sudo sh -x

$sudo docker images | grep registry.aliyuncs.com/google_containers | awk '{print "docker rmi ", $1":"$2}' | sudo sh -x

For the flannel image, solution:

manually download flannel:v0.12.0 from github or baidu-netdisk-link:

https://github.com/coreos/flannel/releases/download/v0.12.0/flanneld-v0.12.0-amd64.docker

鏈接: https://pan.baidu.com/s/1_3H6_0kaJwkmse1v6dYt1w 提取碼: jdmc
$sudo docker load < ~/Downloads/flanneld-v0.12.0-amd64.docker

For the tiller image, solution:

dabs@RICBronze:/tmp$ docker pull sapcc/tiller:v2.16.6
v2.16.6: Pulling from sapcc/tiller
aad63a933944: Pull complete 
5a5f2e29be4f: Pull complete 
d2bd87496312: Pull complete 
27aa33a05387: Pull complete 
Digest: sha256:e88aaf190da692e7a31d825e3e88a3264a1c03b430f995b8f58d2cb55cb434a8
Status: Downloaded newer image for sapcc/tiller:v2.16.6

dabs@RICBronze:/tmp$ docker tag sapcc/tiller:v2.16.6 gcr.io/kubernetes-helm/tiller:v2.16.6

dabs@RICBronze:/tmp$ docker rmi sapcc/tiller:v2.16.6
Untagged: sapcc/tiller:v2.16.6
Untagged: sapcc/tiller@sha256:e88aaf190da692e7a31d825e3e88a3264a1c03b430f995b8f58d2cb55cb434a8

 

With all the docker images ready, you can run the script for the 2nd time. Eventually, you will end up with an one-node k8s cluster, and 9 Running pods.

dabs@RICBronze:~/oran/dep/tools/k8s/bin$ sudo kubectl get nodes
[sudo] password for dabs: 
NAME        STATUS   ROLES    AGE     VERSION
ricbronze   Ready    master   2m33s   v1.15.9

dabs@RICBronze:~/oran/dep/tools/k8s/bin$ sudo kubectl get pods --all-namespaces
NAMESPACE     NAME                                READY   STATUS    RESTARTS   AGE
kube-system   coredns-5d4dd4b4db-gdb5r            1/1     Running   1          2m22s
kube-system   coredns-5d4dd4b4db-st47q            1/1     Running   1          2m22s
kube-system   etcd-ricbronze                      1/1     Running   1          101s
kube-system   kube-apiserver-ricbronze            1/1     Running   1          83s
kube-system   kube-controller-manager-ricbronze   1/1     Running   1          99s
kube-system   kube-flannel-ds-amd64-25qhz         1/1     Running   1          2m22s
kube-system   kube-proxy-r8qgg                    1/1     Running   1          2m22s
kube-system   kube-scheduler-ricbronze            1/1     Running   1          91s
kube-system   tiller-deploy-666f9c57f4-f2gzv      1/1     Running   1          70s

Manually reboot VM and you are ready for [Step 4:  Deploy SMO].

dabs@RICBronze:~/oran/dep$ cd smo/bin
dabs@RICBronze:~/oran/dep/smo/bin$ ls
install  uninstall
dabs@RICBronze:~/oran/dep/smo/bin$ sudo ./install initlocalrepo

[Step 4] really needs hours as been told...

Good luck!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章