This guide describes the installation of A&AI via OOM on a clean Ubuntu 16.04 machine. It creates a local kubernetes cluster on the machine and starts the A&AI services using OOM (A&AI services are represented as Helm Charts inside OOM).
Note: the guide could be out-of-sync with the installation procedure anytime as OOM changes versions and dependencies and the changes might not be reflected here.
In order to install A&AI on a barebone Ubuntu 16.04 machine we have to install these apps:
- Docker
- Kubernetes
- Helm
- OOM
1. Docker installation
This is just a run-of-the-mill docker installation:
Code Block |
---|
|
sudo apt-get remove docker docker-engine docker.io
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce |
2. Kubernetes Installation
We install kubernetes with flannel and (in the last step) make master schedulable:
Code Block |
---|
|
sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo add-apt-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
sudo apt-get update
#if the next step fails, verify that a file named /etc/apt/sources.list.d/kubernetes.list exists and contains this line: deb http://apt.kubernetes.io/ kubernetes-xenial main
sudo apt-get install kubelet kubeadm kubectl kubernetes-cni
# check that you have enough disk space under /var/lib/docker
# perform the preflight action
sudo kubeadm config images pull
#if the next step fails with an error about swap, do the following: sudo swapoff -a
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0master/Documentation/kube-flannel.yml
kubectl taint nodes --all node-role.kubernetes.io/master- |
3. Hel(l)m
We need a specific version of helm (so don't install the newest), we also need to create a service account (otherwise we are unable to install from the local helm repository), we install tiller and add the repository itself:
Code Block |
---|
|
wget http://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz
tar -zxvf helm-v2.9.1-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/local/bin/helm
helm version
kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
helm init
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec": {"serviceAccount":"tiller"}}}}'
helm serve &
helm repo add local http://127.0.0.1:8879 |
4. OOM
The installation is as follows:
Code Block |
---|
|
git clone "https://gerrit.onap.org/r/oom"
cd oom
git submodule init
git submodule update
sudo cp -R ~/oom/kubernetes/helm/plugins/ ~/.helm
|
Before running A&AI straightforward. Before running ONAP we must customize what projects should be enabled in the oom/kubernetes/onap/values.yaml file. As we want to run A&AI, we should have:
...
Code Block |
---|
|
git clone -b beijing http://gerrit.onap.org/r/oom
cd oom/kubernetes
make all
sudo helm installdeploy local/onap -f onap/values.yaml --version 2.0.0 -n demo ./onap --namespace onapnsonap |
When you do
Code Block |
---|
|
kubectl get pods --all-namespaces |
you should see kubernetes and A&AI pods running.
To remove everything, execute:
Code Block |
---|
|
helm undeploy demo --purge |