Installing Containerized OpenStack using Kolla
Dependencies
#!/bin/bash #I use RDO repos for the host # curl http://trunk.rdoproject.org/centos7/current/delorean.repo > /etc/yum.repos.d/delorean.repo # curl http://trunk.rdoproject.org/centos7/dlrn-deps.repo > /etc/yum.repos.d/dlrn.repo echo "Installing dependencies..." yum install -y epel-release yum install -y python-pip docker docker-python ntp ansible python-devel libffi-devel openssl-devel gcc python-openstackclient python-neutronclient git pip install -U pip pip install -U docker-py systemctl enable ntpd.service systemctl start ntpd.service # Create the drop-in unit directory for docker.service mkdir -p /etc/systemd/system/docker.service.d # Create the drop-in unit file tee /etc/systemd/system/docker.service.d/kolla.conf <<-'EOF' [Service] MountFlags=shared EOF #Change the storage driver from the slow devicemapper to overlay sed -ie 's/DOCKER_STORAGE_OPTIONS=/DOCKER_STORAGE_OPTIONS=--storage-driver=overlay/' /etc/sysconfig/docker-storage sed -e 's/--selinux-enabled/--selinux-enabled=false/' /etc/sysconfig/docker sed -ie 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config # Run these commands to reload the daemon systemctl daemon-reload systemctl enable docker systemctl restart docker
If the machine name is not on a DNS server we add it to the /etc/hosts file:
kolla-host 192.168.100.201
Install Kolla
It has to be installed from source:
# git clone https://git.openstack.org/openstack/kolla # pip install kolla/ # cd kolla # cp -r etc/kolla /etc/
Configure Kolla
You can modify Kolla settings in /etc/kolla/globals.yml
docker_namespace: "kolla" network_interface: "eth0" neutron_external_interface: "eth1" kolla_internal_vip_address: "192.168.100.254"
If we change the docker_namespace an error is thrown
Start Registry
Since we're running kolla from git master we have to run our own registry
# docker run -d -p 4000:5000 --restart=always --name registry registry
Enable remote registry in the config file:
docker_registry: "localhost:4000"
Build Images
Since we're running from master it's recommended to build the images
# kolla-build
I got out of memory errors building some images on a VM with 4GB of RAM.
I had to install neutron-lbaas-agent manually:
# kolla-build neutron-lbaas-agent
Some images can't be built from binary (still, don't understand what this is) I ignore this ones since i don't want this components
# kolla-build -t source watcher-applier watcher-engine senlin-api kuryr senlin-engine senlin-base watcher-base watcher-api
Deploy Kolla
Generate passwords for /etc/kolla/passwords.yml
# kolla-genpwd
Prechecks
# kolla-ansible prechecks
Verify images
# kolla-ansible pull
Run deployment
# kolla-ansible deploy
On a small VM i had to run this command three times. This does not happen with a full system.
Post Deploy
# kolla-ansible post-deploy # . /etc/kolla/admin-openrc.sh # kolla/tools/init-runonce
RANDOM NOTES:
On a 4GB VM i got a Cannot allocate memory error when i run kolla build, had to create the images one by one with calling kolla-build for each one