From: Lott, Christopher (cl778h) Date: Mon, 20 Jan 2020 20:56:57 +0000 (-0500) Subject: Extend network and K8S installation instructions X-Git-Tag: 2.0.6~1 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=cb200338a3fb842c9500a9e8b3f36a2e72db0bb2;p=it%2Fdep.git Extend network and K8S installation instructions Add minor details to K8s installation steps Drop repeat of ric-infra and ric-plt from ric-aux, add large resource requirements Signed-off-by: Lott, Christopher (cl778h) Change-Id: Ib787fb678a4e114a23c0a7ef144524b23ab3d1d5 --- diff --git a/docs/installation-aux.rst b/docs/installation-aux.rst index 124f728b..f3befca3 100644 --- a/docs/installation-aux.rst +++ b/docs/installation-aux.rst @@ -15,6 +15,13 @@ .. limitations under the License. .. ===============LICENSE_END========================================================= +Resource Requirements +--------------------- + +To run the RIC-AUX cluster in a dev testing setting, the minimum requirement +for resources is a VM with 4 vCPUs, 16G RAM and at least 40G of disk space. + + Getting and Preparing Deployment Scripts ---------------------------------------- @@ -25,24 +32,25 @@ Run the following commands in a root shell: git clone http://gerrit.o-ran-sc.org/r/it/dep cd RECIPE_EXAMPLE -Edit the recipe files RIC_INFRA_RECIPE_EXAMPLE and RIC_PLATFORM_RECIPE_EXAMPLE. In particular the following values often need adaptation to local deployments: +Edit the recipe files RIC_INFRA_RECIPE_EXAMPLE and RIC_PLATFORM_RECIPE_EXAMPLE. +In particular the following values often need adaptation to local deployments: -#. Docker registry URL; -#. Docker registry credential; -#. Helm repo credential; +#. Docker registry URL +#. Docker registry credential +#. Helm repo credential #. Component docker container image tags. -Deploying the Infrastructure and Platform Groups ------------------------------------------------- +Deploying the Aux Group +----------------------- -After the recipes are edited, the Near Realtime RIC is ready to be deployed. +After the recipes are edited, the AUX group is ready to be deployed. .. code:: bash cd dep/bin - ./deploy-ric-infra ../RECIPE_EXAMPLE/RIC_INFRA_RECIPE_EXAMPLE - ./deploy-ric-platform ../RECIPE_EXAMPLE/RIC_PLATFORM_RECIPE_EXAMPLE + ./deploy-ric-infra ../RECIPE_EXAMPLE/RIC_INFRA_AUX_RECIPE_EXAMPLE + ./deploy-ric-aux ../RECIPE_EXAMPLE/RIC_INFRA_RECIPE_EXAMPLE Checking the Deployment Status @@ -52,42 +60,4 @@ Now check the deployment status and results similar to the below indicate a comp .. code:: - # helm list - NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE - r1-a1mediator 1 Tue Nov 26 00:47:12 2019 DEPLOYED a1mediator-1.0.0 1.0 ricplt - r1-appmgr 1 Tue Nov 26 00:47:09 2019 DEPLOYED appmgr-1.1.0 1.0 ricplt - r1-dbaas1 1 Tue Nov 26 00:47:10 2019 DEPLOYED dbaas1-1.1.0 1.0 ricplt - r1-chartmuseum 1 Tue Nov 26 03:16:42 2019 DEPLOYED chartmuseum-0.0.1 0.1 ricinfra - r1-e2mgr 1 Tue Nov 26 00:47:10 2019 DEPLOYED e2mgr-1.1.0 1.0 ricplt - r1-e2term 1 Tue Nov 26 00:47:11 2019 DEPLOYED e2term-1.1.0 1.0 ricplt - r1-extsvcplt 1 Tue Nov 26 00:47:17 2019 DEPLOYED extsvcplt-0.2.0 1.0 ricplt - r1-jaegeradapter 1 Tue Nov 26 00:47:16 2019 DEPLOYED jaegeradapter-0.1.0 1.0 ricplt - r1-kong 1 Tue Nov 26 00:45:36 2019 DEPLOYED kong-1.0.0 1.0 ricinfra - r1-ricaux-credential 1 Tue Nov 26 00:45:42 2019 DEPLOYED credential-1.1.0 1.0 ricaux - r1-ricinfra-credential 1 Tue Nov 26 00:45:43 2019 DEPLOYED credential-1.1.0 1.0 ricinfra - r1-ricplt-credential 1 Tue Nov 26 00:45:42 2019 DEPLOYED credential-1.1.0 1.0 ricplt - r1-ricxapp-credential 1 Tue Nov 26 00:45:42 2019 DEPLOYED credential-1.1.0 1.0 ricxapp - r1-rsm 1 Tue Nov 26 00:47:15 2019 DEPLOYED rsm-2.0.6 1.0 ricplt - r1-rtmgr 1 Tue Nov 26 00:47:09 2019 DEPLOYED rtmgr-1.1.0 1.0 ricplt - r1-submgr 1 Tue Nov 26 00:47:13 2019 DEPLOYED submgr-1.1.0 1.0 ricplt - r1-vespamgr 1 Tue Nov 26 00:47:14 2019 DEPLOYED vespamgr-0.0.1 1.0 ricplt - r1-xapp-tiller 1 Tue Nov 26 00:45:44 2019 DEPLOYED xapp-tiller-0.1.0 1.0 ricinfra - # kubectl get pods -n ricplt - NAME READY STATUS RESTARTS AGE - deployment-ricplt-a1mediator-5c4df477f9-6zxxx 1/1 Running 0 132m - deployment-ricplt-appmgr-65bc8b958c-tggg7 1/1 Running 0 132m - deployment-ricplt-dbaas-74bf584449-k484v 1/1 Running 0 132m - deployment-ricplt-e2mgr-74cd9865bc-hpn6b 1/1 Running 0 132m - deployment-ricplt-e2term-cc7b5d99-pkctr 1/1 Running 0 132m - deployment-ricplt-jaegeradapter-cc49c64dc-vj622 1/1 Running 0 131m - deployment-ricplt-rsm-599cd4d6c8-4jhft 1/1 Running 0 131m - deployment-ricplt-rtmgr-85d89868d6-58wvl 1/1 Running 1 132m - deployment-ricplt-submgr-7cbd697c7f-p9x4x 1/1 Running 0 132m - deployment-ricplt-vespamgr-7bb4c7585f-9z6qm 1/1 Running 0 132m - # kubectl get pods -n ricinfra - NAME READY STATUS RESTARTS AGE - deployment-ricinfra-chartmuseum-7d97f4b995-gkxsq 1/1 Running 0 133m - deployment-tiller-ricxapp-65f9cbc8d7-qcr5t 1/1 Running 0 133m - r1-kong-kong-84695ff65d-9sjwg 2/2 Running 2 133m - tiller-secret-generator-w6bnd 0/1 Completed 0 133m - + TBD diff --git a/docs/installation-guides.rst b/docs/installation-guides.rst index f451c81b..6f734a0f 100644 --- a/docs/installation-guides.rst +++ b/docs/installation-guides.rst @@ -51,7 +51,9 @@ The following diagram depicts the installation architecture. .. image:: images/nrtric-amber.png :width: 600 -Within the RIC cluster, Kubernetes resources are deployed using three name spaces: ricinfra, ricplt, and ricxapp. Similarly, within the AUX cluster, Kubernetes resources are deployed using two name spaces: ricinfra, and ricaux. +Within the RIC cluster, Kubernetes resources are deployed using three name spaces: ricinfra, ricplt, +and ricxapp. Similarly, within the AUX cluster, Kubernetes resources are deployed using two name spaces: +ricinfra, and ricaux. For each cluster, there is a Kong ingress controller that proxies incoming API calls into the cluster. With Kong, service APIs provided by Kubernetes resources can be accessed at the cluster node IP and diff --git a/docs/installation-k8s1node.rst b/docs/installation-k8s1node.rst index 8936be81..1270337c 100644 --- a/docs/installation-k8s1node.rst +++ b/docs/installation-k8s1node.rst @@ -16,39 +16,47 @@ .. ===============LICENSE_END========================================================= - -Resource Requirements ---------------------- - -To run Near Realtime RAN Controller in a dev testing setting , the minimum requirement for resources is a VM with 4 vCPUs, 16G RAM, and at least 40G of vDisk space. - - - Script for Setting Up 1-node Kubernetes Cluster ----------------------------------------------- +The it/dep repo can be used for generating a simple script that can help setting up a +one-node Kubernetes cluster for dev and testing purposes. Related files are under the +**ric-infra/00-Kubernetes** directory. To get started, clone the repository on the +target VM: + +:: + + git clone https://gerrit.o-ran-sc.org/r/it/dep -The it/dep repo can be used for generating a simple script that can help setting up a one-node Kubernetes cluster for dev and testing purposes. Related files are under the **ric-infra/00-Kubernetes** directory. Configurations -------------- The generation of the script reads in the parameters from the following files: -- etc/env.rc: Normally no change needed for this file. If where the Kubernetes cluster runs has special requirements, such as running private Docker registry with self-signed certificates, or hostnames that can be only resolved via private /etc/hosts entries, such parameters are entered into this file. -- etc/infra.rc: This file specifies the versions docker host, Kubernetes, and Kubernetes CNI versions. If a version is left empty, the installation will use the default version that the OS package management software would install. -- etc/openstack.rc: If the Kubernetes cluster is deployed on Open Stack VMs, this file specifies parameters for accessing the APIs of the Open Stack installation. This is not supported in Amber release yet. +- etc/env.rc: Normally no change needed for this file. If where the Kubernetes cluster runs + has special requirements, such as running private Docker registry with self-signed certificates, + or hostnames that can be only resolved via private /etc/hosts entries, such parameters are + entered into this file. +- etc/infra.rc: This file specifies the docker host, Kubernetes, and Kubernetes CNI versions. + If a version is left empty, the installation will use the default version that the OS package + management software would install. +- etc/openstack.rc: If the Kubernetes cluster is deployed on Open Stack VMs, this file specifies + parameters for accessing the APIs of the Open Stack installation. This is not supported in Amber + release yet. Generating Set-up Script ------------------------ -After the configurations are updated, the following steps will create a script file that can be used for setting up a one-node Kubernetes cluster. +After the configurations are updated, the following steps will create a script file that can be +used for setting up a one-node Kubernetes cluster. You must run this command on a Linux machine +with the 'envsubst' command installed. :: - cd bin - ./gen-cloud-init.sh + % cd bin + % ./gen-cloud-init.sh A file named **k8s-1node-cloud-init.sh** would now appear under the bin directory. @@ -58,11 +66,20 @@ Setting up Kubernetes Cluster The new **k8s-1node-cloud-init.sh** file is now ready for setting up the Kubernetes cluster. -It can be run from a root shell of an existing Ubuntu 16.04 or 18.04 VM. Running this script will replace any existing installation of Docker host, Kubernetes, and Helm on the VM. +It can be run from a root shell of an existing Ubuntu 16.04 or 18.04 VM. Running this script +will replace any existing installation of Docker host, Kubernetes, and Helm on the VM. The +script will reboot the machine upon successful completion. Run the script like this: + +:: + + % sudo -i + # ./k8s-1node-cloud-init.sh -It can also be used as the user-data (a.k.a. cloud-init script) supplicated to Open Stack when launching a new Ubuntu 16.04 or 18.04 VM. +This script can also be used as the user-data (a.k.a. cloud-init script) supplied to Open Stack +when launching a new Ubuntu 16.04 or 18.04 VM. -Upon successful execution of the script, when integrated by the kubectl command, the VM should display information similar to below: +Upon successful execution of the script and reboot of the machine, when queried in a root shell +with the kubectl command the VM should display information similar to below: :: @@ -77,4 +94,3 @@ Upon successful execution of the script, when integrated by the kubectl command, kube-system kube-proxy-867v5 1/1 Running 0 103m kube-system kube-scheduler-ljitest 1/1 Running 0 102m kube-system tiller-deploy-68bf6dff8f-6pwvc 1/1 Running 0 102m - diff --git a/docs/installation-virtualbox.rst b/docs/installation-virtualbox.rst index 9a6fe88a..1ff9a3cb 100644 --- a/docs/installation-virtualbox.rst +++ b/docs/installation-virtualbox.rst @@ -22,18 +22,18 @@ Networking The set up requires two VMs connected by a private network. With VirtualBox, this can be done by going under its "Preferences" menu and setting up a private NAT network. -#. "Preference", then select the "Network" tab; +#. Pick "Preferences", then select the "Network" tab; #. Click on the "+" icon to create a new NAT network. A new entry will appear in the NAT networks list #. Double click on the new network to edit its details; give it a name such as "RICNetwork" -#. On the next page, make sure to check: "Enable Network", uncheck the "Supports DHCP" box, and make a note of the "Network CIDR" (for this example, it is 10.0.2.0/24); -#. Click on the "Port Forwarding" button to create the following rules: +#. In the dialog, make sure to check the "Enable Network" box, uncheck the "Supports DHCP" box, and make a note of the "Network CIDR" (for this example, it is 10.0.2.0/24); +#. Click on the "Port Forwarding" button then in the table create the following rules: #. "ssh to ric", TCP, 127.0.0.1, 22222, 10.0.2.100, 22; #. "ssh to aux", TCP, 127.0.0.1, 22223, 10.0.2.101, 22; #. "entry to ric", TCP, 127.0.0.1, 22224, 10.0.2.100, 32080; #. "entry to aux", TCP, 127.0.0.1, 22225, 10.0.2.101, 32080. -#. "Ok" all the way back to create the network. +#. Click "Ok" all the way back to create the network. Creating VMs @@ -51,7 +51,7 @@ Create a VirtualBox VM: #. Check "Enable Network Adapter"; #. Attached to "NAT Network"; - #. Network name for what was created in the previous section: "RICNetwork". + #. Select the Network that was created in the previous section: "RICNetwork". Repeat the process and create the second VM named **myaux**. @@ -59,7 +59,8 @@ Repeat the process and create the second VM named **myaux**. Booting VM and OS Installation ------------------------------ -Follow the OS installation steps to install OS to the VM virtual disk media. Make sure to install openssh server. +Follow the OS installation steps to install OS to the VM virtual disk media. During the setup you must +configure static IP addresses as discussed next. And make sure to install openssh server. VM Network Configuration @@ -69,9 +70,9 @@ Depending on the version of the OS, the networking may be configured during the The network interface is configured with a static IP address: - IP Address: 10.0.2.100 for myric or 10.0.2.101 for myaux; -- Network: 10.0.2.10/24, or network mask 255.255.255.0 +- Subnet 10.0.2.0/24, or network mask 255.255.255.0 - Default gateway: 10.0.2.1 -- Name server: 8.8.8.8 +- Name server: 8.8.8.8; if access to that is is blocked, configure a local DNS server Accessing the VMs