Info |
---|
Steps described in this page are run by "ubuntu", a non-root user. |
ONAP deployment in Kubernetes is modeled in the oom project as a one-to-one set of service to pod sets (one pod per docker container).
You can do the undercloud setup by following Quickstart Installation in ONAP on Kubernetes, or by following the steps described on this page - keep both pages in sync.
Table of Contents |
---|
Install Rancher
Follow the steps below to install and configure Rancher:
The following table illustrate the steps that much run or can be skipped
on the each of the Kubernetes cluster node.
Steps Description | Kubernetes Node | |
---|---|---|
Master | worker | |
Install Docker | ||
Configure Kubernetes Cluster | ||
Install kubectl | ||
Install Helm (expect OOM project will be mounted on the same node) |
Table of Contents |
---|
Install Docker
# | Purpose | Command and Example |
---|---|---|
1 | Install Docker 1.12 |
Add host name to /etc/hosts file 1
sudo vi /etc/hosts
Expand | ||
---|---|---|
| ||
ubuntu@sdnc-k8s:~$ more /etc/hosts 127.0.0.1 sdnc-k8s localhost ... 10.147.132.10 sdnc-k8s 10.147.90.6 sdnc-k8s-2 |
Clone the OOM project from ONAP gerrit
git clone http://gerrit.onap.org/r/oom
curl https://releases.rancher.com/install-docker/1.12.sh | sh
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Install/Start Rancher server 3
Only on master node (if you are installing more than one Kubernetes nodes), Use port 8880 instead of 8080.
docker run -d --restart=unless-stopped -p 8880:8080 rancher/server
Expand | ||
---|---|---|
| ||
Unable to find image 'rancher/server:latest' locally latest: Pulling from rancher/server 6599cadaf950: Pull complete 23eda618d451: Pull complete f0be3084efe9: Pull complete 52de432f084b: Pull complete a3ed95caeb02: Pull complete e75cd91a1dc5: Pull complete 997f1b48f59f: Pull complete 313c28fb4e37: Pull complete 2a0730d1275c: Pull complete 8848fbebd2c8: Pull complete 906504ea9ea6: Pull complete 9329940f8e65: Pull complete e849debd7945: Pull complete 4883bd135dd2: Pull complete 605c6a0fe940: Pull complete 274bc004c933: Pull complete a6cb25e8d1a2: Pull complete 3ded9d4c8c2b: Pull complete a571d2f40012: Pull complete Digest: sha256:096026aa3eed411077690c904cd5dd3cce66eb39312c78a84209eab23387c36d Status: Downloaded newer image for rancher/server:latest 4b3020cfccc2db47905e89e66cd8533fea82d60b886b2f4509e5f1c56764563a |
Expand | ||
---|---|---|
| ||
ubuntu@sdnc-k8s:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4b3020cfccc2 rancher/server "/usr/bin/entry /usr/" 12 minutes ago Up 12 minutes 3306/tcp, 0.0.0.0:8880->8080/tcp backstabbing_wright |
Notes:
- Adding all cluster nodes to /etc/hosts file on each node is optional
- Check out compartible versions among Rancher, Kubernetes and Docker
- There may be issues with the DNS pod in Rancher after a reboot or when running clustered hosts as described in ONAP bug OOM-236 (Rancher DNS pod non-functional after system reboot - only in cluster mode). A clean system is OK.
Configure Rancher Client
You can access the Rancher UI through http:<master host IP>:8880 ; it takes you to the apps/stacks page.
For example,
You can access Rancher from http://10.147.132.10:8880/; the page will be opened to http://10.147.132.10:8880/env/1a5/apps/stacks.
From here, follow the steps below to configure the Rancher:
...
Create Rancher environment:
...
- Launch "Manage enviroments" page
- Name: "sdnc-ha"
- (Optional) Add Description of the new environment
- Environment Template: Kubernetes
- Click on the Create button
- Check that the new enviroment has been created and displays as "Active"
Expand | ||
---|---|---|
| ||
...
Add host to INFRASTRUCTURE
...
- Go to the Hosts page via INFRASTRUCTURE -> Hosts
- Click on the AddHost button
- For the first time only, the following confirmation page will appear (click the Save button to continue):
- The following Add Host page will appear:
- Skip steps 1, 2, and 3
- In step 4, fill in the blank with the server IP
- In step 5:
Click the Copy to Clipboard button to copy the command and run it on the server
Expand title Example of registering rancher agent on the server ubuntu@sdnc-k8s:~$ docker run -e CATTLE_AGENT_IP="10.147.132.10" --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.6http://10.147.132.10:8880/v1/scripts/774E9A523D82DBCBDE13:1483142400000:FPPmrMz8IurKQwVLV2UpfGR10AY
Unable to find image 'rancher/agent:v1.2.6' locally
v1.2.6: Pulling from rancher/agent
b3e1c725a85f: Pull complete
6a710864a9fc: Pull complete
d0ac3b234321: Pull complete
87f567b5cf58: Pull complete
063e24b217c4: Pull complete
d0a3f58caef0: Pull complete
16914729cfd3: Pull complete
2ce3828c0b9d: Pull complete
7df47a98fc4b: Pull complete
Digest: sha256:a68afd351c7417e6d66a77e97144113ceb7a9c3cdd46fb6e1fd5f5a5a33111cd
Status: Downloaded newer image for rancher/agent:v1.2.6
INFO: Running Agent Registration Process, CATTLE_URL=http://10.147.132.10:8880/v1
INFO: Attempting to connect to: http://10.147.132.10:8880/v1
INFO: http://10.147.132.10:8880/v1 is accessible
INFO: Inspecting host capabilities
INFO: Boot2Docker: false
INFO: Host writable: true
INFO: Token: xxxxxxxx
INFO: Running registration
INFO: Printing Environment
INFO: ENV: CATTLE_ACCESS_KEY=0CB90B4247A136F6E43E
INFO: ENV: CATTLE_AGENT_IP=10.147.132.10
INFO: ENV: CATTLE_HOME=/var/lib/cattle
INFO: ENV: CATTLE_REGISTRATION_ACCESS_KEY=registrationToken
INFO: ENV: CATTLE_REGISTRATION_SECRET_KEY=xxxxxxx
INFO: ENV: CATTLE_SECRET_KEY=xxxxxxx
INFO: ENV: CATTLE_URL=http://10.147.132.10:8880/v1
INFO: ENV: DETECTED_CATTLE_AGENT_IP=172.17.0.1
INFO: ENV: RANCHER_AGENT_IMAGE=rancher/agent:v1.2.6
INFO: Launched Rancher Agent: 4e3b1e4c2b4c33095ef550cbece626277b63783b012efe74ed2713df63cc925c
Expand title Example of validating rancher agent started ubuntu@sdnc-k8s:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
43eff054da6a rancher/net:v0.11.9 "/rancher-entrypoint." 5 seconds ago Up 4 seconds r-ipsec-cni-driver-1-4a5c6e16
4e3b1e4c2b4c rancher/agent:v1.2.6 "/run.sh run" 27 seconds ago Up 27 seconds rancher-agent
4b3020cfccc2 rancher/server "/usr/bin/entry /usr/" 46 minutes ago Up 46 minutes 3306/tcp, 0.0.0.0:8880->8080/tcp backstabbing_wright
- Click on the Close button to close the Add Host page
- Go to the Hosts page from INFRASTRUCTURE -> Hosts
You should see the newly added host:
Expand title Example of Hosts page with one node Expand title Example of Hosts page has 2 nodes
...
Confirm that the host process has completed
The end of adding the host operation is indicated by the CLI option shown under the KUBERNETES dropdown menu:
| ||
2 | Enable docker command for ubuntu useras recommend from docker installation | sudo usermod -aG docker ubuntu logout log back in and validate docker command is usable by entering "docker" |
Configure Kubernetes Cluster
Set up Kubernetes cluster follow steps at Kubernetes Cluster by Rancher.
...
title | Example of CLI option in KUBERNETES drop down |
---|
...
Install kubectl
kubectl is a command line interface for running commands against Kubernetes clusters.
...
# | Purpose | Command and Example | |||||
---|---|---|---|---|---|---|---|
1 | Download kubectl on the server | curl -LO https LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/ v1.8.6/bin/linux/amd64/kubectl
| |||||
2 | Enable the kubectl command | chmod +x ./ kubectl sudo mv ./ kubectl /usr/local/bin/kubectl vi ~/.bashrc
source ~/.bashrc | |||||
3 | GenerateConfigconfig from the Rancher UI | From the Rancher UI ( access the Rancher UI through http:<master node host IP>:8880 as specified in Kubernetes Cluster by Rancher),
| |||||
4 | Create the kube config on the server | mkdir ~/.kube vi ~/.kube/config Paste the generated config from rancher UI (from last step) to this file, then save the file. | |||||
5 | Validate the kube config | kubectl cluster-info | |||||
6 | Validate the nodes added | kubectl get nodes
|
Install Helm
Helm is used by OOM for package and configuration management. Hence, we are installing Helm (use 2.3.0 not current 2.6.0) on the server where we have mounted the OOM project.
...
# | Purpose | Command and Example | |||||
---|---|---|---|---|---|---|---|
1 | Download the Helm tar file | wget http://storage.googleapis.com/kubernetes-helm/helm-v2.3.0-linux-amd64.tar.gz
| |||||
2 | Untar the Helm tar file | tar -zxvf helm-v2.3.0-linux-amd64.tar.gz
| |||||
3 | Enable the Helm command | sudo mv linux-amd64/helm /usr/local/bin/helm | |||||
Tip of viewing helm command menu |
|
Confirm that the Setup has Finished
...