blob: 3ccde8d41812fc3007fdb879c0b0ee589d1c28ce [file] [log] [blame]
Roger Maitlandeb412c62018-05-31 14:09:09 -04001.. This work is licensed under a Creative Commons Attribution 4.0 International License.
2.. http://creativecommons.org/licenses/by/4.0
3.. Copyright 2018 Amdocs, Bell Canada
4
5.. Links
6.. _HELM Best Practices Guide: https://docs.helm.sh/chart_best_practices/#requirements
7.. _kubectl Cheat Sheet: https://kubernetes.io/docs/reference/kubectl/cheatsheet/
8.. _Kubernetes documentation for emptyDir: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
9.. _Docker DevOps: https://wiki.onap.org/display/DW/Docker+DevOps#DockerDevOps-DockerBuild
10.. _http://cd.onap.info:30223/mso/logging/debug: http://cd.onap.info:30223/mso/logging/debug
11.. _Onboarding and Distributing a Vendor Software Product: https://wiki.onap.org/pages/viewpage.action?pageId=1018474
12.. _README.md: https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/README.md
13
14.. figure:: oomLogoV2-medium.png
15 :align: right
16
17.. _onap-on-kubernetes-with-rancher:
18
Mike Elliottf137b2c2019-04-30 16:28:07 -040019ONAP on HA Kubernetes Cluster
20#############################
Roger Maitlandeb412c62018-05-31 14:09:09 -040021
Mike Elliottf137b2c2019-04-30 16:28:07 -040022This guide provides instructions on how to setup a Highly-Available Kubernetes Cluster.
23For this, we are hosting our cluster on OpenStack VMs and using the Rancher Kubernetes Engine (RKE)
24to deploy and manage our Kubernetes Cluster.
Roger Maitlandeb412c62018-05-31 14:09:09 -040025
Mike Elliott474c3502019-05-09 10:56:16 -040026.. contents::
27 :depth: 1
28 :local:
29..
30
Mike Elliottf137b2c2019-04-30 16:28:07 -040031The result at the end of this tutorial will be:
Roger Maitlandeb412c62018-05-31 14:09:09 -040032
Mike Elliottf137b2c2019-04-30 16:28:07 -040033*1.* Creation of a Key Pair to use with Open Stack and RKE
Roger Maitlandeb412c62018-05-31 14:09:09 -040034
Mike Elliottf137b2c2019-04-30 16:28:07 -040035*2.* Creation of OpenStack VMs to host Kubernetes Control Plane
Roger Maitlandeb412c62018-05-31 14:09:09 -040036
Mike Elliottf137b2c2019-04-30 16:28:07 -040037*3.* Creation of OpenStack VMs to host Kubernetes Workers
Roger Maitlandeb412c62018-05-31 14:09:09 -040038
Mike Elliottf137b2c2019-04-30 16:28:07 -040039*4.* Installation and configuration of RKE to setup an HA Kubernetes
Roger Maitlandeb412c62018-05-31 14:09:09 -040040
Mike Elliottf137b2c2019-04-30 16:28:07 -040041*5.* Installation and configuration of kubectl
42
43*5.* Installation and configuration of helm
44
45*7.* Creation of an NFS Server to be used by ONAP as shared persistance
46
47There are many ways one can execute the above steps. Including automation through the use of HEAT to setup the OpenStack VMs.
48To better illustrate the steps involved, we have captured the manual creation of such an environment using the ONAP Wind River Open Lab.
49
Mike Elliottf137b2c2019-04-30 16:28:07 -040050Create Key Pair
51===============
52A Key Pair is required to access the created OpenStack VMs and will be used by
53RKE to configure the VMs for Kubernetes.
54
55Use an existing key pair, import one or create a new one to assign.
56
57.. image:: images/keys/key_pair_1.png
58
59.. Note::
60 If you're creating a new Key Pair, ensure to create a local copy of the Private Key through the use of "Copy Private Key to Clipboard".
61
62For the purpose of this guide, we will assume a new local key called "onap-key"
63has been downloaded and is copied into **~/.ssh/**, from which it can be referenced.
64
65Example:
Mike Elliott474c3502019-05-09 10:56:16 -040066 > mv onap-key ~/.ssh
Mike Elliottf137b2c2019-04-30 16:28:07 -040067
Mike Elliott474c3502019-05-09 10:56:16 -040068 > chmod 600 ~/.ssh/onap-key
Mike Elliottf137b2c2019-04-30 16:28:07 -040069
70
71Create Kubernetes Control Plane VMs
72===================================
73
74The following instructions describe how to create 3 OpenStack VMs to host the
75Highly-Available Kubernetes Control Plane.
76ONAP workloads will not be scheduled on these Control Plane nodes.
77
78Launch new VM instances
79-----------------------
80
81.. image:: images/cp_vms/control_plane_1.png
82
83Select Ubuntu 18.04 as base image
Roger Maitlandeb412c62018-05-31 14:09:09 -040084---------------------------------
Mike Elliottf137b2c2019-04-30 16:28:07 -040085Select "No" for "Create New Volume"
Roger Maitlandeb412c62018-05-31 14:09:09 -040086
Mike Elliottf137b2c2019-04-30 16:28:07 -040087.. image:: images/cp_vms/control_plane_2.png
Roger Maitlandeb412c62018-05-31 14:09:09 -040088
89Select Flavor
90-------------
Mike Elliottf137b2c2019-04-30 16:28:07 -040091The recommended flavor is at least 4 vCPU and 8GB ram.
Roger Maitlandeb412c62018-05-31 14:09:09 -040092
Mike Elliottf137b2c2019-04-30 16:28:07 -040093.. image:: images/cp_vms/control_plane_3.png
Roger Maitlandeb412c62018-05-31 14:09:09 -040094
95Networking
96----------
97
Mike Elliottf137b2c2019-04-30 16:28:07 -040098.. image:: images/cp_vms/control_plane_4.png
Roger Maitlandeb412c62018-05-31 14:09:09 -040099
100Security Groups
101---------------
102
Mike Elliottf137b2c2019-04-30 16:28:07 -0400103.. image:: images/cp_vms/control_plane_5.png
Roger Maitlandeb412c62018-05-31 14:09:09 -0400104
105Key Pair
106--------
Mike Elliottf137b2c2019-04-30 16:28:07 -0400107Assign the key pair that was created/selected previously (e.g. onap_key).
Roger Maitlandeb412c62018-05-31 14:09:09 -0400108
Mike Elliottf137b2c2019-04-30 16:28:07 -0400109.. image:: images/cp_vms/control_plane_6.png
Roger Maitlandeb412c62018-05-31 14:09:09 -0400110
Mike Elliottf137b2c2019-04-30 16:28:07 -0400111Apply customization script for Control Plane VMs
112------------------------------------------------
Roger Maitlandeb412c62018-05-31 14:09:09 -0400113
Mike Elliottf137b2c2019-04-30 16:28:07 -0400114Click :download:`openstack-k8s-controlnode.sh <openstack-k8s-controlnode.sh>`
115to download the script.
Roger Maitlandeb412c62018-05-31 14:09:09 -0400116
Mike Elliottf137b2c2019-04-30 16:28:07 -0400117.. literalinclude:: openstack-k8s-controlnode.sh
Roger Maitlandeb412c62018-05-31 14:09:09 -0400118 :language: bash
119
120This customization script will:
121
Mike Elliottf137b2c2019-04-30 16:28:07 -0400122* update ubuntu
Roger Maitlandeb412c62018-05-31 14:09:09 -0400123* install docker
Roger Maitlandeb412c62018-05-31 14:09:09 -0400124
Mike Elliottf137b2c2019-04-30 16:28:07 -0400125.. image:: images/cp_vms/control_plane_7.png
Roger Maitlandeb412c62018-05-31 14:09:09 -0400126
127Launch Instance
128---------------
129
Mike Elliottf137b2c2019-04-30 16:28:07 -0400130.. image:: images/cp_vms/control_plane_8.png
Roger Maitlandeb412c62018-05-31 14:09:09 -0400131
Roger Maitlandeb412c62018-05-31 14:09:09 -0400132
Roger Maitlandeb412c62018-05-31 14:09:09 -0400133
Mike Elliottf137b2c2019-04-30 16:28:07 -0400134Create Kubernetes Worker VMs
135============================
136The following instructions describe how to create OpenStack VMs to host the
137Highly-Available Kubernetes Workers. ONAP workloads will only be scheduled on these nodes.
Roger Maitlandeb412c62018-05-31 14:09:09 -0400138
Mike Elliottf137b2c2019-04-30 16:28:07 -0400139Launch new VM instances
140-----------------------
Roger Maitlandeb412c62018-05-31 14:09:09 -0400141
Mike Elliottf137b2c2019-04-30 16:28:07 -0400142The number and size of Worker VMs is depenedent on the size of the ONAP deployment.
143By default, all ONAP applications are deployed. It's possible to customize the deployment
144and enable a subset of the ONAP applications. For the purpose of this guide, however,
145we will deploy 12 Kubernetes Workers that have been sized to handle the entire ONAP
146application workload.
Roger Maitlandeb412c62018-05-31 14:09:09 -0400147
Mike Elliottf137b2c2019-04-30 16:28:07 -0400148.. image:: images/wk_vms/worker_1.png
Roger Maitlandeb412c62018-05-31 14:09:09 -0400149
Mike Elliottf137b2c2019-04-30 16:28:07 -0400150Select Ubuntu 18.04 as base image
Roger Maitlandeb412c62018-05-31 14:09:09 -0400151---------------------------------
152Select "No" on "Create New Volume"
153
Mike Elliottf137b2c2019-04-30 16:28:07 -0400154.. image:: images/wk_vms/worker_2.png
Roger Maitlandeb412c62018-05-31 14:09:09 -0400155
156Select Flavor
157-------------
Mike Elliottf137b2c2019-04-30 16:28:07 -0400158The size of Kubernetes hosts depend on the size of the ONAP deployment
159being installed.
Roger Maitlandeb412c62018-05-31 14:09:09 -0400160
Mike Elliottf137b2c2019-04-30 16:28:07 -0400161If a small subset of ONAP applications are being deployed
162(i.e. for testing purposes), then 16GB or 32GB may be sufficient.
Roger Maitlandeb412c62018-05-31 14:09:09 -0400163
Mike Elliottf137b2c2019-04-30 16:28:07 -0400164.. image:: images/wk_vms/worker_3.png
Roger Maitlandeb412c62018-05-31 14:09:09 -0400165
166Networking
167-----------
168
Mike Elliottf137b2c2019-04-30 16:28:07 -0400169.. image:: images/wk_vms/worker_4.png
Roger Maitlandeb412c62018-05-31 14:09:09 -0400170
171Security Group
172---------------
173
Mike Elliottf137b2c2019-04-30 16:28:07 -0400174.. image:: images/wk_vms/worker_5.png
Roger Maitlandeb412c62018-05-31 14:09:09 -0400175
176Key Pair
177--------
Mike Elliottf137b2c2019-04-30 16:28:07 -0400178Assign the key pair that was created/selected previously (e.g. onap_key).
Roger Maitlandeb412c62018-05-31 14:09:09 -0400179
Mike Elliottf137b2c2019-04-30 16:28:07 -0400180.. image:: images/wk_vms/worker_6.png
Roger Maitlandeb412c62018-05-31 14:09:09 -0400181
182Apply customization script for Kubernetes VM(s)
183-----------------------------------------------
184
Mike Elliottf137b2c2019-04-30 16:28:07 -0400185Click :download:`openstack-k8s-workernode.sh <openstack-k8s-workernode.sh>` to download the
186script.
Roger Maitlandeb412c62018-05-31 14:09:09 -0400187
Mike Elliottf137b2c2019-04-30 16:28:07 -0400188.. literalinclude:: openstack-k8s-workernode.sh
Roger Maitlandeb412c62018-05-31 14:09:09 -0400189 :language: bash
190
191This customization script will:
192
Mike Elliottf137b2c2019-04-30 16:28:07 -0400193* update ubuntu
Roger Maitlandeb412c62018-05-31 14:09:09 -0400194* install docker
Mike Elliottf137b2c2019-04-30 16:28:07 -0400195* install nfs common
Roger Maitlandeb412c62018-05-31 14:09:09 -0400196
Roger Maitlandeb412c62018-05-31 14:09:09 -0400197
198Launch Instance
199---------------
200
Mike Elliottf137b2c2019-04-30 16:28:07 -0400201.. image:: images/wk_vms/worker_7.png
Roger Maitlandeb412c62018-05-31 14:09:09 -0400202
Roger Maitlandeb412c62018-05-31 14:09:09 -0400203
Roger Maitlandeb412c62018-05-31 14:09:09 -0400204
Mike Elliottf137b2c2019-04-30 16:28:07 -0400205
206Assign Floating IP addresses
207----------------------------
208Assign Floating IPs to all Control Plane and Worker VMs.
209These addresses provide external access to the VMs and will be used by RKE
210to configure kubernetes on to the VMs.
211
212Repeat the following for each VM previously created:
213
214.. image:: images/floating_ips/floating_1.png
215
216Resulting floating IP assignments in this example.
217
218.. image:: images/floating_ips/floating_2.png
219
220
221
222
223Configure Rancher Kubernetes Engine (RKE)
224=========================================
225
226Install RKE
227-----------
228Download and install RKE on a VM, desktop or laptop.
229Binaries can be found here for Linux and Mac: https://github.com/rancher/rke/releases/tag/v0.2.1
230
231RKE requires a *cluster.yml* as input. An example file is show below that
232describes a Kubernetes cluster that will be mapped onto the OpenStack VMs
233created earlier in this guide.
234
235Example: **cluster.yml**
236
237.. image:: images/rke/rke_1.png
238
239Click :download:`cluster.yml <cluster.yml>` to download the
240configuration file.
241
242.. literalinclude:: cluster.yml
243 :language: yaml
244
245Prepare cluster.yml
246-------------------
247Before this configuration file can be used the external **address**
248and the **internal_address** must be mapped for each control and worker node
249in this file.
250
251Run RKE
252-------
253From within the same directory as the cluster.yml file, simply execute:
254
Mike Elliott474c3502019-05-09 10:56:16 -0400255 > rke up
Mike Elliottf137b2c2019-04-30 16:28:07 -0400256
257The output will look something like:
258
259.. code-block::
Mike Elliott474c3502019-05-09 10:56:16 -0400260
Mike Elliottf137b2c2019-04-30 16:28:07 -0400261 INFO[0000] Initiating Kubernetes cluster
262 INFO[0000] [certificates] Generating admin certificates and kubeconfig
263 INFO[0000] Successfully Deployed state file at [./cluster.rkestate]
264 INFO[0000] Building Kubernetes cluster
265 INFO[0000] [dialer] Setup tunnel for host [10.12.6.82]
266 INFO[0000] [dialer] Setup tunnel for host [10.12.6.249]
267 INFO[0000] [dialer] Setup tunnel for host [10.12.6.74]
268 INFO[0000] [dialer] Setup tunnel for host [10.12.6.85]
269 INFO[0000] [dialer] Setup tunnel for host [10.12.6.238]
270 INFO[0000] [dialer] Setup tunnel for host [10.12.6.89]
271 INFO[0000] [dialer] Setup tunnel for host [10.12.5.11]
272 INFO[0000] [dialer] Setup tunnel for host [10.12.6.90]
273 INFO[0000] [dialer] Setup tunnel for host [10.12.6.244]
274 INFO[0000] [dialer] Setup tunnel for host [10.12.5.165]
275 INFO[0000] [dialer] Setup tunnel for host [10.12.6.126]
276 INFO[0000] [dialer] Setup tunnel for host [10.12.6.111]
277 INFO[0000] [dialer] Setup tunnel for host [10.12.5.160]
278 INFO[0000] [dialer] Setup tunnel for host [10.12.5.191]
279 INFO[0000] [dialer] Setup tunnel for host [10.12.6.195]
280 INFO[0002] [network] Deploying port listener containers
281 INFO[0002] [network] Pulling image [nexus3.onap.org:10001/rancher/rke-tools:v0.1.27] on host [10.12.6.85]
282 INFO[0002] [network] Pulling image [nexus3.onap.org:10001/rancher/rke-tools:v0.1.27] on host [10.12.6.89]
283 INFO[0002] [network] Pulling image [nexus3.onap.org:10001/rancher/rke-tools:v0.1.27] on host [10.12.6.90]
284 INFO[0011] [network] Successfully pulled image [nexus3.onap.org:10001/rancher/rke-tools:v0.1.27] on host [10.12.6.89]
285 . . . .
286 INFO[0309] [addons] Setting up Metrics Server
287 INFO[0309] [addons] Saving ConfigMap for addon rke-metrics-addon to Kubernetes
288 INFO[0309] [addons] Successfully saved ConfigMap for addon rke-metrics-addon to Kubernetes
289 INFO[0309] [addons] Executing deploy job rke-metrics-addon
290 INFO[0315] [addons] Metrics Server deployed successfully
291 INFO[0315] [ingress] Setting up nginx ingress controller
292 INFO[0315] [addons] Saving ConfigMap for addon rke-ingress-controller to Kubernetes
293 INFO[0316] [addons] Successfully saved ConfigMap for addon rke-ingress-controller to Kubernetes
294 INFO[0316] [addons] Executing deploy job rke-ingress-controller
295 INFO[0322] [ingress] ingress controller nginx deployed successfully
296 INFO[0322] [addons] Setting up user addons
297 INFO[0322] [addons] no user addons defined
298 INFO[0322] Finished building Kubernetes cluster successfully
299
300Install Kubectl
301===============
302
303Download and install kubectl. Binaries can be found here for Linux and Mac:
304
305https://storage.googleapis.com/kubernetes-release/release/v1.13.5/bin/linux/amd64/kubectl
306https://storage.googleapis.com/kubernetes-release/release/v1.13.5/bin/darwin/amd64/kubectl
307
308Validate deployment
309-------------------
Mike Elliott474c3502019-05-09 10:56:16 -0400310 > cp kube_config_cluster.yml ~/.kube/config.onap
Mike Elliottf137b2c2019-04-30 16:28:07 -0400311
Mike Elliott474c3502019-05-09 10:56:16 -0400312 > export KUBECONFIG=~/.kube/config.onap
Mike Elliottf137b2c2019-04-30 16:28:07 -0400313
Mike Elliott474c3502019-05-09 10:56:16 -0400314 > kubectl config use-context onap
Mike Elliottf137b2c2019-04-30 16:28:07 -0400315
Mike Elliott474c3502019-05-09 10:56:16 -0400316 > kubectl get nodes -o=wide
Mike Elliottf137b2c2019-04-30 16:28:07 -0400317
318.. code-block::
Mike Elliott474c3502019-05-09 10:56:16 -0400319
Mike Elliottf137b2c2019-04-30 16:28:07 -0400320 NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
321 onap-control-1 Ready controlplane,etcd 3h53m v1.13.5 10.0.0.8 <none> Ubuntu 18.04 LTS 4.15.0-22-generic docker://18.9.5
322 onap-control-2 Ready controlplane,etcd 3h53m v1.13.5 10.0.0.11 <none> Ubuntu 18.04 LTS 4.15.0-22-generic docker://18.9.5
323 onap-control-3 Ready controlplane,etcd 3h53m v1.13.5 10.0.0.12 <none> Ubuntu 18.04 LTS 4.15.0-22-generic docker://18.9.5
324 onap-k8s-1 Ready worker 3h53m v1.13.5 10.0.0.14 <none> Ubuntu 18.04 LTS 4.15.0-22-generic docker://18.9.5
325 onap-k8s-10 Ready worker 3h53m v1.13.5 10.0.0.16 <none> Ubuntu 18.04 LTS 4.15.0-22-generic docker://18.9.5
326 onap-k8s-11 Ready worker 3h53m v1.13.5 10.0.0.18 <none> Ubuntu 18.04 LTS 4.15.0-22-generic docker://18.9.5
327 onap-k8s-12 Ready worker 3h53m v1.13.5 10.0.0.7 <none> Ubuntu 18.04 LTS 4.15.0-22-generic docker://18.9.5
328 onap-k8s-2 Ready worker 3h53m v1.13.5 10.0.0.26 <none> Ubuntu 18.04 LTS 4.15.0-22-generic docker://18.9.5
329 onap-k8s-3 Ready worker 3h53m v1.13.5 10.0.0.5 <none> Ubuntu 18.04 LTS 4.15.0-22-generic docker://18.9.5
330 onap-k8s-4 Ready worker 3h53m v1.13.5 10.0.0.6 <none> Ubuntu 18.04 LTS 4.15.0-22-generic docker://18.9.5
331 onap-k8s-5 Ready worker 3h53m v1.13.5 10.0.0.9 <none> Ubuntu 18.04 LTS 4.15.0-22-generic docker://18.9.5
332 onap-k8s-6 Ready worker 3h53m v1.13.5 10.0.0.17 <none> Ubuntu 18.04 LTS 4.15.0-22-generic docker://18.9.5
333 onap-k8s-7 Ready worker 3h53m v1.13.5 10.0.0.20 <none> Ubuntu 18.04 LTS 4.15.0-22-generic docker://18.9.5
334 onap-k8s-8 Ready worker 3h53m v1.13.5 10.0.0.10 <none> Ubuntu 18.04 LTS 4.15.0-22-generic docker://18.9.5
335 onap-k8s-9 Ready worker 3h53m v1.13.5 10.0.0.4 <none> Ubuntu 18.04 LTS 4.15.0-22-generic docker://18.9.5
336
337
338Install Helm
339============
340
Mike Elliott474c3502019-05-09 10:56:16 -0400341Example Helm client install on Linux:
342 > wget http://storage.googleapis.com/kubernetes-helm/helm-v2.12.3-linux-amd64.tar.gz
Mike Elliottf137b2c2019-04-30 16:28:07 -0400343
Mike Elliott474c3502019-05-09 10:56:16 -0400344 > tar -zxvf helm-v2.12.3-linux-amd64.tar.gz
Mike Elliottf137b2c2019-04-30 16:28:07 -0400345
Mike Elliott474c3502019-05-09 10:56:16 -0400346 > sudo mv linux-amd64/helm /usr/local/bin/helm
Mike Elliottf137b2c2019-04-30 16:28:07 -0400347
Mike Elliott474c3502019-05-09 10:56:16 -0400348Initialize Kubernetes Cluster for use by Helm
349---------------------------------------------
350 > kubectl -n kube-system create serviceaccount tiller
351
352 > kubectl create clusterrolebinding tiller --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
353
354 > helm init --service-account tiller
355
356 > kubectl -n kube-system  rollout status deploy/tiller-deploy
Mike Elliottf137b2c2019-04-30 16:28:07 -0400357
358
Roger Maitlandeb412c62018-05-31 14:09:09 -0400359
360Setting up an NFS share for Multinode Kubernetes Clusters
361=========================================================
Roger Maitlandeb412c62018-05-31 14:09:09 -0400362Deploying applications to a Kubernetes cluster requires Kubernetes nodes to
Mike Elliottf137b2c2019-04-30 16:28:07 -0400363share a common, distributed filesystem. In this tutorial, we will setup an
364NFS Master, and configure all Worker nodes a Kubernetes cluster to play
365the role of NFS slaves.
366
367It is recommneded that a separate VM, outside of the kubernetes
368cluster, be used. This is to ensure that the NFS Master does not compete for
369resources with Kubernetes Control Plane or Worker Nodes.
370
371
372Launch new NFS Server VM instance
373---------------------------------
374.. image:: images/nfs_server/nfs_server_1.png
375
376Select Ubuntu 18.04 as base image
377---------------------------------
378Select "No" on "Create New Volume"
379
380.. image:: images/nfs_server/nfs_server_2.png
381
382Select Flavor
383-------------
384
385.. image:: images/nfs_server/nfs_server_3.png
386
387Networking
388-----------
389
390.. image:: images/nfs_server/nfs_server_4.png
391
392Security Group
393---------------
394
395.. image:: images/nfs_server/nfs_server_5.png
396
397Key Pair
398--------
399Assign the key pair that was created/selected previously (e.g. onap_key).
400
401.. image:: images/nfs_server/nfs_server_6.png
402
403Apply customization script for NFS Server VM
404--------------------------------------------
405
406Click :download:`openstack-nfs-server.sh <openstack-nfs-server.sh>` to download the
407script.
408
409.. literalinclude:: openstack-k8s-workernode.sh
410 :language: bash
411
412This customization script will:
413
414* update ubuntu
415* install nfs server
416
417
418Launch Instance
419---------------
420
421.. image:: images/nfs_server/nfs_server_7.png
422
423
424
425Assign Floating IP addresses
426----------------------------
427
428.. image:: images/nfs_server/nfs_server_8.png
429
430Resulting floating IP assignments in this example.
431
432.. image:: images/nfs_server/nfs_server_9.png
433
434
435To properly set up an NFS share on Master and Slave nodes, the user can run the
436scripts below.
Roger Maitlandeb412c62018-05-31 14:09:09 -0400437
Sylvain Desbureaux7fe7b042019-01-31 17:10:12 +0100438Click :download:`master_nfs_node.sh <master_nfs_node.sh>` to download the
439script.
Roger Maitlandeb412c62018-05-31 14:09:09 -0400440
441.. literalinclude:: master_nfs_node.sh
442 :language: bash
443
444Click :download:`slave_nfs_node.sh <slave_nfs_node.sh>` to download the script.
445
446.. literalinclude:: slave_nfs_node.sh
447 :language: bash
448
449The master_nfs_node.sh script runs in the NFS Master node and needs the list of
450NFS Slave nodes as input, e.g.::
451
Mike Elliott474c3502019-05-09 10:56:16 -0400452 > sudo ./master_nfs_node.sh node1_ip node2_ip ... nodeN_ip
Roger Maitlandeb412c62018-05-31 14:09:09 -0400453
454The slave_nfs_node.sh script runs in each NFS Slave node and needs the IP of
455the NFS Master node as input, e.g.::
456
Mike Elliott474c3502019-05-09 10:56:16 -0400457 > sudo ./slave_nfs_node.sh master_node_ip
Roger Maitlandeb412c62018-05-31 14:09:09 -0400458
Roger Maitlandeb412c62018-05-31 14:09:09 -0400459
460ONAP Deployment via OOM
461=======================
462Now that kubernetes and Helm are installed and configured you can prepare to
463deploy ONAP. Follow the instructions in the README.md_ or look at the official
464documentation to get started:
465
466- :ref:`quick-start-label` - deploy ONAP on an existing cloud
467- :ref:`user-guide-label` - a guide for operators of an ONAP instance