You can skip this step if your Kubernetes cluster deployment is on a single VM.
When setting up a Kubernetes cluster, the folder /dockerdata-nfs must be shared between all of the Kubernetes nodes. This folder is used as a volume by the ONAP pods to share data, so there can only be one copy.
On this page we will attempt to do this by setting up an NFS server on the Kubernetes Master and then mount the shared directory on all Kubernetes nodes.
These instruction where written using VMs created from a ubuntu-16.04-server-cloudimg-amd64-disk1 image.
Any user can be used to run the steps in this page, as all the commands are "sudo".
On the NFS Server VM (Kubernetes Master)
The actual /dockerdata-nfs folder will live on Kubernetes Master node which will also be running the NFS server to export this folder.
Set up the /dockerdata-nfs Folder
Choose one of the following to create the /dockerdata-nfs folder on this VM:
Use local directory | Run the following command as root: sudo mkdir -p /dockerdata-nfs |
---|---|
Use separate volume | Following instruction from Create an OpenStack Volume to: (where the VM Instance is the one that you have chosen) |
Setup the NFS Server and Export /dockerdata-nfs Folder
Execute the following commands:
sudo apt update sudo apt install nfs-kernel-server sudo vi /etc/exports # append the following /dockerdata-nfs *(rw,no_root_squash,no_subtree_check) sudo vi /etc/fstab # append the following /home/ubuntu/dockerdata-nfs /dockerdata-nfs none bind 0 0 sudo service nfs-kernel-server restart
On the other VMs (Kubernetes Nodes)
Mount the /dockerdata-nfs Folder
On each of the Kubernetes nodes, mount the /dockerdata-nfs folder.
sudo apt update sudo apt install nfs-common -y sudo mkdir /dockerdata-nfs sudo chmod 777 /dockerdata-nfs # Option 1: sudo mount -t nfs -o proto=tcp,port=2049 <hostname or IP address of NFS server>:/dockerdata-nfs /dockerdata-nfs sudo vi /etc/fstab # append the following <hostname of IP address of NFS server>:/dockerdata-nfs /dockerdata-nfs nfs auto 0 0 # Option 2: sudo vi /etc/fstab # append the following <hostname of IP address of NFS server>:/dockerdata-nfs /dockerdata-nfs nfs auto 0 0 sudo mount -a
Verify it :
Tocuh a file inside /dockerdata-nfs directory on the Kubernetes Master and check to see if the same file is found under /dockerdata-nfs on all Kubernetes nodes.
Unmount the share directory
Use the lazy (-l) option on Kubernetes nodes to force unmount the mount point.
For example,
sudo umount -l /dockerdata-nfs