...
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
...
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 | |
---|---|---|
First | any other | |
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 |
Add host name to /etc/hosts file
note-1
sudo vi /etc/hosts
Install Docker 1.12
note-2
Install Docker 1.12 | Check out compartible versions among Rancher, Kubernetes and Docker, curl https://releases.rancher.com/install-docker/1.12.sh | sh
|
$ more /etc/hosts
127.0.0.1 sdnc-k8s localhost
...
10.147.132.10 sdnc-k8s
10.147.90.6 sdnc-k8s-2
|
title | Example of docker installation |
---|
|
$
sudo usermod -aG docker ubuntu
logout
log back in and validate docker command is usable
Expand | ||
---|---|---|
| ||
$ docker ps |
Install/Start Rancher server
note-3
Only on one node (if you are installing more than one Kubernetes nodes, choose one node to run the Rancher server). Use port 8880 instead of 8080.
docker run -d --restart=unless-stopped -p 8880:8080 rancher/server:v1.6.10
title | Example of rancher start in docker |
---|
$ docker run -d --restart=unless-stopped -p 8880:8080 rancher/server:v1.6.10
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
title | Example of validate rancher server is up in docker |
---|
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e3f1c2ce3234 rancher/server:v1.6.10 "/usr/bin/entry /usr/" 7 seconds ago Up 6 seconds 3306/tcp, 0.0.0.0:8880->8080/tcp pensive_goldberg
$
$ 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
- Click on "Add Enviroment"
- Fill in the template with the following, and then click on the Create button
- Name: "sdnc-ha"
- (Optional) Add Description of the new environment
- Environment Template: Kubernetes
- 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 listed in the page
- 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 $ 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 $ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
64562118a30c rancher/etcd:v2.3.7-13 "/.r/r /opt/rancher/r" 1 seconds ago Up Less than a second r-kubernetes-etcd-1-b95cd471
308b3fbf1882 rancher/net:holder "/.r/r /rancher-entry" 12 seconds ago Up 11 seconds r-ipsec-ipsec-1-9198fa8b
523278d910f4 rancher/dns:v0.15.3 "/rancher-entrypoint." 12 seconds ago Up 11 seconds r-network-services-metadata-dns-1-2730cb6f
8520cc50c5ff rancher/metadata:v0.9.4 "/rancher-entrypoint." 13 seconds ago Up 12 seconds r-network-services-metadata-1-53bf4aaf
1f6dcb021f5b rancher/healthcheck:v0.3.3 "/.r/r /rancher-entry" 14 seconds ago Up 13 seconds r-healthcheck-healthcheck-1-3d14df58
1d7ad141ceec rancher/network-manager:v0.7.8 "/rancher-entrypoint." 14 seconds ago Up 13 seconds r-network-services-network-manager-1-fdd38b68
c7dfdde262d7 rancher/net:v0.11.9 "/rancher-entrypoint." 14 seconds ago Up 13 seconds r-ipsec-cni-driver-1-415b67fe
64e2f05b0394 rancher/agent:v1.2.6 "/run.sh run" 20 seconds ago Up 19 seconds rancher-agent
e3f1c2ce3234 rancher/server:v1.6.10 "/usr/bin/entry /usr/" 9 minutes ago Up 9 minutes 3306/tcp, 0.0.0.0:8880->8080/tcp pensive_goldberg
$
- Click on the Close button to close the Add Host page
| ||
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.
...
You should see the newly added host:
Expand | ||
---|---|---|
| ||
...
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:
Expand | ||
---|---|---|
| ||
...
Repeat step 2 and 3 to add more host
...
title | Example of Hosts page has 2 nodes |
---|
...
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://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
| |||||
2 | Enable the kubectl command | chmod +x kubectl sudo mv kubectl /usr/local/bin/kubectl | |||||
3 | GenerateConfigconfig from the Rancher UI |
| |||||
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
|
...
# | 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
...