Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Updated the broken links to docs

...

The official documentation for installation of ONAP with OOM / Kubernetes is located in readthedocs here (and http://onap.readthedocs.io/en/latest/submodules/oom.git/docs/oom_quickstart_guide.html).  The supported versions of Kubernetes is as follows:

Software Requirements

...

1.8.10 (via Rancher 1.6.14)

...

17.03-ce

Note: if you are not using the scripts off OOM-710 - and your helm client/server versions are different - upgrade the server

to fix: Error: incompatible versions client[v2.7.2] server[v2.6.1]

do: helm init --upgrade

Hardware Requirements

...

63G at startup

70G after 48h

Recommend 128G class VM

Image Removed

75G at startup

100G after a week

Recommend

120-160G HD

4 min

60 peak at startup

recommended 16-32 vCores

...

see list on PortProfile

Recommend

0.0.0.0/0 (all open)

Quickstart

Beijing ONAP on Azure ARM template to full OOM install - see ONAP on Kubernetes on Microsoft Azure#Quickstart

Amsterdam ONAP on Intel Openstack to full OOM install - see ONAP on Kubernetes on OpenStack

Installation Flow

1) To start - pick your infrastructure - ONAP supports deployment to all the major public clouds such as:

2) On your VM in the above infrastructure - create a Kubernetes environment (a one time activity) follow one of these guides:

3) Install ONAP - use the cd.sh script provided as a patch in review

  • https://gerrit.onap.org/r/#/c/32653/
  • om_entrypoint.sh 11418 tested with latest OOM-715 oom_rancher_install.sh 20180411:0030 and OOM-716 cd.sh 20180410:2300 versions on a one-click automated deploy on a clean ubuntu VM via the ARM template on OOM-710

Versions

Master

Code Block
themeMidnight
root@a-onap-auto-20180418-0:/var/lib/waagent/custom-script/download/0# kubectl version
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.10", GitCommit:"044cd262c40234014f01b40ed7b9d09adbafe9b1", GitTreeState:"clean", BuildDate:"2018-03-19T17:51:28Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"8+", GitVersion:"v1.8.10-rancher1", GitCommit:"66aaf7681d4a74778ffae722d1f0f0f42c80a984", GitTreeState:"clean", BuildDate:"2018-03-20T16:02:56Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
root@a-onap-auto-20180418-0:/var/lib/waagent/custom-script/download/0# docker version
Client:
 Version:      17.03.2-ce
Server:
 Version:      17.03.2-ce
root@a-onap-auto-20180418-0:/var/lib/waagent/custom-script/download/0# helm version
Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}

Known Issues

Beijing/master branch

These are current failures for individual ONAP compoents that have workarounds or can be ignored - as a service to everyone who asks - last update 20180314

AAF has a failing container - 

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyAAF-170

SDC has an internal dependency issue and will need a coordinated restart - 

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySDC-739

SDNC has a timing issue and will need a restart - 

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyOOM-543

(vCPE/vVOLTE use case only) VFC has a failing container - 

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyVFC-818

(vCPE/vVOLTE use case only) VNFSDK has a failing container - 

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyVNFSDK-226

Details

Table of Contents

Installation templates for Kubernetes and deploying ONAP via OOM for the master and amsterdam branches are in the following locations

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyOOM-710

Kubernetes devops / workarounds / troubleshooting content restored from version 378  - into the page ONAP on Kubernetes on Rancher

Example End to End Kubernetes based ONAP install and deployment

Scenario: installing Rancher on clean Ubuntu 16.04 64g VM (single collocated server/host) and the master branch of onap via OOM deployment (3 scripts)

1 hour video of automated installation on an AWS EC2 spot instance

View file
nameoom_rancher_cd_full_auto_install_on_aws_ec2_20180227.mp4
height250

Note: amsterdam will require a different onap-parameters.yaml 

Code Block
languagebash
themeMidnight
titleSetup rancher and run cd.sh to deploy OOM
# or just run the WIP oom_entrypoint.sh script (And swap out your own onap-parameters.yaml for amsterdam or values.yaml for master)
#use the latest on https://jira.onap.org/browse/OOM-710
wget https://jira.onap.org/secure/attachment/LATEST_ID/oom_entrypoint.sh
chmod 777 oom_entrypoint.sh
./oom_entrypoint.sh -b master -s your_ip/dns-name -e onap
# refer to this script that runs oom_rancher_setup.sh and cd.sh in sequence

Manual Quickstart Installation - Please use script instead

(Manual instructions)  - try to use the script at Setting up Kubernetes with Rancher via https://gerrit.onap.org/r/#/c/32019

ONAP Minimum R1 Installation Helm Apps

oom/kubernetes/oneclick/setenv.bash maybe updated to the following reduce app set.  

...

HELM_APPS=('mso' 'message-router' 'sdnc' 'vid' 'robot' 'portal' 'policy' 'appc' 'aai' 'sdc' 'log')
#HELM_APPS=('consul' 'msb' 'mso' 'message-router' 'sdnc' 'vid' 'robot' 'portal' 'policy' 'appc' 'aai' 'sdc' 'dcaegen2' 'log' 'cli' 'multicloud' 'clamp' 'vnfsdk' 'uui' 'aaf' 'vfc' 'kube2msb' 'esr')

is located in Read the Docs:

1) install rancher, clone oom, run config-init pod, run one or all onap components

...

*****************

Note: uninstall docker if already installed - as Kubernetes 1.8 under rancher supports 17.03.2 as of 20180124

% sudo apt-get remove docker-engine

*****************

Install Rancher

ONAP deployment in kubernetes is modelled in the oom project as a 1:1 set of service:pod sets (1 pod per docker container).  The fastest way to get ONAP Kubernetes up is via Rancher on any bare metal or VM that supports a clean Ubuntu 16.04 install and more than 60G ram.

TODO: REMOVE from table cell - wrapping is not working

(on each host) add to your /etc/hosts to point your ip to your hostname (add your hostname to the end). Add entries for all other hosts in your cluster.

For example on openlab - you will need to add the name of your host before you install docker - to avoid the error below

sudo: unable to resolve host onap-oom

sudo vi /etc/hosts
<your-ip> <your-hostname>

Open Ports

On most hosts like openstack or EC2 you can open all the ports or they are open by default - on some environments like Rackspace VM's you need to open them

sudo iptables -I INPUT 1 -p tcp --dport 8880 -j ACCEPT
iptables-save > /etc/iptables.rules

Fix virtual memory allocation (to allow onap-log:elasticsearch to come up under Rancher 1.6.11+)

sudo sysctl -w vm.max_map_count=262144

clone oom (scp your onap_rsa private key first - or clone anon - Ideally you get a full gerrit account and join the community)

see ssh/http/http access links below

https://gerrit.onap.org/r/#/admin/projects/oom

git clone http://gerrit.onap.org/r/oom

(on each host (server and client(s) which may be the same machine)) Install only the 17.03.2 version of Docker (the only version that works with Kubernetes in Rancher 1.6.13+)

Install Docker

for root just run the following line and skip to next section - master branch
curl https://releases.rancher.com/install-docker/17.03.sh | sh
# when running as non-root (ubuntu) run the following and logout/log back in
sudo usermod -aG docker ubuntu

Pre pull docker images the first time you install onap. Currently the pre-pull will take 16-180 min depending on your network. Pre pulling the images will allow the entire ONAP to start in 3-8 min instead of up to 3 hours.

Image RemovedOOM-328 - Preload docker images script before createAll.bash will allow 7 min startup REOPENED

Use script above in oom/kubernetes/config once it is merged.

https://git.onap.org/oom/tree/kubernetes/config/prepull_docker.sh

cp oom/kubernetes/config/prepull_docker.sh .
chmod 777 prepull_docker.sh
nohup ./prepull_docker.sh > prepull.log &

To monitor when prepull is finished see section: Prepulldockerimages. It is advised to wait until pre pull has finished before continuing.

(on the master only) Install rancher (Optional: use 8880 instead of 8080 if there is a conflict) - note there may be issues with the dns pod in Rancher after a reboot or when running clustered hosts - a clean system will be OK -

docker run -d --restart=unless-stopped -p 8880:8080 --name rancher-server rancher/server:v1.6.14

In Rancher UI - dont use (http://127.0.0.1:8880) - use the real IP address - so the client configs are populated correctly with callbacks

You must deactivate the default CATTLE environment - by adding a KUBERNETES environment - and Deactivating the older default CATTLE one - your added hosts will attach to the default

    • Default → Manage Environments
    • Select "Add Environment" button
    • Give the Environment a name and description, then select Kubernetes as the Environment Template
    • Hit the "Create" button. This will create the environment and bring you back to the Manage Environments view
    • At the far right column of the Default Environment row, left-click the menu ( looks like 3 stacked dots ), and select Deactivate. This will make your new Kubernetes environment the new default.

Register your host

Register your host(s) - run following on each host (including the master if you are collocating the master/host on a single machine/vm)

For each host, In Rancher > Infrastructure > Hosts. Select "Add Host"

The first time you add a host - you will be presented with a screen containing the routable IP - hit save only on a routable IP.

Enter IP of host: (if you launched racher with 127.0.0.1/localhost - otherwise keep it empty - it will autopopulate the registration with the real IP)

Image Removed

Copy command to register host with Rancher,

Image Removed

Execute command on each host, for example:

sudo docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.9 http://rackspace.onap.info:8880/v1/scripts/CDE31E5CDE3217328B2D:1514678400000:xLr2ySIppAaEZYWtTVa5V9ZGc

wait for kubernetes menu to populate with the CLI

Install Kubectl

The following will install kubectl (for Kubernetes 1.8.6 ) https://github.com/kubernetes/kubernetes/issues/57528 on a linux host. Once configured, this client tool will provide management of a Kubernetes cluster.

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.8.6/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
mkdir ~/.kube
vi ~/.kube/config

Paste kubectl config from Rancher (you will see the CLI menu in Rancher / Kubernetes after the k8s pods are up on your host)

Click on "Generate Config" to get your content to add into .kube/config

Verify that Kubernetes config is good

root@obrien-kube11-1:~# kubectl cluster-info
Kubernetes master is running at ....
Heapster is running at....
KubeDNS is running at ....
kubernetes-dashboard is running at ...
monitoring-grafana is running at ....
monitoring-influxdb is running at ...
tiller-deploy is running at....

Install Helm

The following will install Helm - currently 2.7.2 on a linux host. Helm is used by OOM for package and configuration management.

https://lists.onap.org/pipermail/onap-discuss/2018-January/007674.html

Prerequisite: Install Kubectl (2.6.1 comes with Rancher 1.6.14 - for master)

wget http://storage.googleapis.com/kubernetes-helm/helm-v2.7.2-linux-amd64.tar.gz
tar -zxvf helm-v2.7.2-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/local/bin/helm
# verify version
helm version
# Rancher 1.6.14 installs 2.7.2 - if you upgrade to 2.8.0 - you will need to upgrade helm on the server to the version to level of client
helm init --upgrade

...