ONAP on Kubernetes on Huawei Cloud
This guide will provide the steps of how to create a running ONAP instance on Huawei Cloud.
We will use CCE (Cloud Container Engine) service in Huawei Cloud to quickly create a Kubernetes environment then deploy ONAP using OOM project.
1. Visit Huawei Cloud Console
There are different regions you can select, here we recommend Hong Kong for ONAP deployment.
2. Create Kubernetes Cluster using CCE
Select Cloud Container Engine from the Service List
Follow the instructions to create a Kubernetes cluster
CCE will take care of the Kubernetes master part while ECS (Elastic Cloud Server) will create the actual nodes.
ONAP will need 112 vCPUs, 224 RAM and 160G HD to provision all services, e.g. we can create 7 s3.4xlarge.2 VMs as illustrated below.
Here Data Disk is used for docker storage and 200G will guarantee thin pool won't run out.
After Kubernetes cluster is created, we will add EIP (Elastic IP) to each node so they can pull images from internet.
We can manage each node's EIP by clicking the name of a node to switch to Cloud Server Console dashboard.
Instruction of How to set up kubctl command can be found in the resource management tab.
3. Follow the instructions of OOM to deploy ONAP
Deploy ONAP on a Kubernetes cluster launched by CCE is very similar to deploy ONAP on Kubernetes with Rancher
Since CCE node doesn't support Ubuntu for now, scripts to set up NFS will be slightly different.
master_nfs.sh
#!/bin/bash
usage () {
echo "Usage:"
echo " ./$(basename $0) node1_ip node2_ip ... nodeN_ip"
exit 1
}
if [ "$#" -lt 1 ]; then
echo "Missing NFS slave nodes"
usage
fi
#Install NFS kernel
sudo yum update
sudo yum install -y nfs-utils
sudo systemctl enable nfs-server
#Create /dockerdata-nfs and set permissions
sudo mkdir -p /dockerdata-nfs
sudo chmod 777 -R /dockerdata-nfs
sudo chown nobody:nobody /dockerdata-nfs/
#Update the /etc/exports
NFS_EXP=""
for i in $@; do
NFS_EXP+="$i(rw,sync,no_root_squash,no_subtree_check) "
done
echo "/dockerdata-nfs "$NFS_EXP | sudo tee -a /etc/exports
#Restart the NFS service
sudo exportfs -a
sudo systemctl restart nfs-server
slave_nfs.sh
#!/bin/bash
usage () {
echo "Usage:"
echo " ./$(basename $0) nfs_master_ip"
exit 1
}
if [ "$#" -ne 1 ]; then
echo "Missing NFS mater node"
usage
fi
MASTER_IP=$1
#Install NFS common
sudo yum update
sudo yum install -y nfs-utils
sudo systemctl enable nfs-client
#Create NFS directory
sudo mkdir -p /dockerdata-nfs
#Mount the remote NFS directory to the local one
sudo mount $MASTER_IP:/dockerdata-nfs /dockerdata-nfs/
echo "$MASTER_IP:/dockerdata-nfs /dockerdata-nfs nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0" | sudo tee -a /etc/fstab
Other than that, you can refer to the OOM deploy guide.