0% found this document useful (0 votes)
65 views

Meetup OpenStack Cologne Fundamentals Workshop

The document describes an upcoming OpenStack Fundamentals Workshop on deploying OpenStack Newton using Kolla-Ansible. The agenda includes an overview of OpenStack history and components, a demo of OpenStack, and a hands-on session to deploy OpenStack with Kolla-Ansible on a single node using Docker containers. Key services like Nova, Glance, Keystone, Cinder, Neutron and Horizon are explained. Deployment options for OpenStack like DevStack, OpenStack Ansible, Packstack and TripleO are also mentioned.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views

Meetup OpenStack Cologne Fundamentals Workshop

The document describes an upcoming OpenStack Fundamentals Workshop on deploying OpenStack Newton using Kolla-Ansible. The agenda includes an overview of OpenStack history and components, a demo of OpenStack, and a hands-on session to deploy OpenStack with Kolla-Ansible on a single node using Docker containers. Key services like Nova, Glance, Keystone, Cinder, Neutron and Horizon are explained. Deployment options for OpenStack like DevStack, OpenStack Ansible, Packstack and TripleO are also mentioned.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 49

OpenStack Fundamentals Workshop

(Deploy OpenStack Newton w/ Kolla-Ansible)

@OpenStack-Cologne Meetup

2016 June, 29th


Arash Kaffamanesh
@kaffamanesh
About OpenStack-Cologne Meetup

● Initiated: April 2014


● Meetups: 8
● Stackers: 271
● Location: Cologne
● Sponsors:
○ Clouds Sky GmbH
○ HPE
○ K3 Innovationen GmbH
○ teuto.net
○ HyperHQ Inc.
○ more sponsors are more than welcome ;-)
Agenda
● OpenStack History

● OpenStack Projects, Components & Services

● OpenStack Demo

● HandsOn OpenStack deployment with Kolla-Ansible


(dockerized)

● OpenStack Deployment with TripleO (for HA'ed


deplyoments) → next meetup

● Introduction to OpenStack Administration


Fundamentals and Certification by Linux Foundation
OpenStack History
● Was initiated by NASA and Rackspace in
June 2010
● OpenStack Foundation founded in 2012
● OpenStack is one of the most popular Open
Source Cloud Operating Systems
● Is the largest open source project helping
to build your own private cloud
environment or to build public or hybrid
cloud offerings
● Over 1 million lines of code
OpenStack Projects, Services and
Infrastructure Components
● OpenStack Core, Optional & Independent
Projects
● Major Components of OpenStack
● Services provided by core projects
● OpenStack Infrastructure Components
● A project provides one or more services
● Currently 9 core projects
● More than 20 Additional projects
OpenStack Components

Source: http://hackstack.org/x/blog/2013/09/05/openstack-seven-layer-dip-as-a-service/
OpenStack as Layers

Source: http://hackstack.org/x/blog/2013/09/05/openstack-seven-layer-dip-as-a-service/
OpenStack Component Naming

● Official “component name”, e.g. “Compute


Service”, describes the components
function
● Code name (nice name, e.g. “Nova”)
OpenStack Core Services

● Nova (Compute)
● Glance (Image Services)
● Keystone (Auth. / Authz API Service)
● Cinder (Block Storage)
● Horizon (Frontend)
● Neutron (Software Defined Networking)
● Swift (Object Storage)
● Ceilometer (Telemetry)
● Heat (Orchestration)
OpenStack Core Services

Source: Red Hat OpenStack Platform 8 Architecture Guide


OpenStack Demo
OpenStack Additional Services

● Ironic (bare-metal provisioning)


● Trove (DBaaS)
● Sahara (Data Processing, Hadoop aaS)
● Magnum (Containers as a Service w/ Docker
Swarm, Kubernetes)
● Manila (Fileshare)
● Murano (Application Catalog)
● etc..
OpenStack Infrastructure
Components
● Ceph implementation for Cinder, Glance and Nova

● Openvswitch and Linuxbridge backends for Neutron

● MongoDB as a database backend for Ceilometer and Gnocchi

● RabbitMQ as a messaging backend for communication between services.

● HAProxy and Keepalived for high availability of services and their


endpoints.

● MariaDB and Galera for highly available MySQL databases

● Heka A distributed and scalable logging system for openstack services.


OpenStack Reference Architecture
(Nodes and Roles)
● The Cloud Controller (CC) / head node

● The API node

● The Network Controller (NC) node

● The Compute nodes

● The Storage Controller node


The Cloud Controller (CC)

● The CC hosts:

○ MariaDB

○ Mongo NoSQL DB

○ RabbitMQ (non-OpenStack services:


SPOF, will be replaced by ØMQ)

Note: CC is typically not be reachable via public


address
The API Node

● The API node hosts:

○ nova-api

○ keystone-api

○ cinder-api

○ neutron-server

Note: API node is typically reachable via public


The Network Controller Node

● Runs neutron networking services:

○ L3 agent

○ DHCP agent

○ Metadata agent

Note: NC is connected to all physical networks


The Compute Nodes

● Runs the hypervisor (e.g. KVM)

● Is connected to the management- and


internal VM physical networks

Note: the compute nodes don’t need to be


reachable via public addresses
The Storage Controller Nodes

● Runs Swift Proxy

● Runs Ceph components with load balancing


via CRUSH
Nova (Compute Service)

● Provides Virtualization to an OS Cloud


● Start, stop, control VMs
● Keeps track of all VMs for e.g. load
balancing
● Reports VM states to the cloud
Components of Nova

● Nova compute
● Nova api
● Nova scheduler
● Nova cert
● Nova objectstore
● Nova conductor
● Nova consoleauth
● Nova novncproxy
Hypervisors Supported by Nova

● KVM
● LXC
● Qemu (non-KVM accelerated version)
● VMWare vSphere
● Xen
● IBM PowerVM
● Microsoft Hyper-V

Note: Hypervisor mixture is possible, but w/o


live-migration capabilities
Glance (Image Service)
● Manages VM images and their
administration and storage via glance-api
and glance-registry and MariaDB
● glance-api is used to upload images
● glance-registry manages the Glance
database and provides the information
about the stored images and their location
● Images can be stored in Swift, S3, Rados or
on the file system
● W/ glance-cli you can list, upload, delete or
snapshot images, as well as w/ Horizon
Keystone (Identity Service)
● Provides Authentication & Authorization for
members (tenants == projects) and admins
● Other OS Services need to identify with
Keystone too
● Authentication is token based
● Every user or service needs to acquire a
token, which is used to send commands to
Keystone and other services
● Tokens are only valid for a limited time
● Keystone is aware of the ever changing
location of endpoints of other services!
Cinder (Volume Service)
● By default VMs are assigned ephermeral
storage on the hypervisor node
● If the VM is started somewhere else or gets
deleted, the ephermeral data is lost!
● Cinder provides VMs with block storage
● One can boot even VMs off of volumes
● Cinder supports software based storage
such as Ceph, NFS, etc., or
● Hardware-base storage such as SolidFire,
Nexenta, etc..
Cinder (Volume Service)
● By default VMs are assigned ephermeral
storage on the hypervisor node
● If the VM is started somewhere else or gets
deleted, the ephermeral data is lost!
● Cinder provides VMs with block storage
● One can boot even VMs off of volumes
● Cinder supports software-based storage
such as Ceph, NFS, GlusterFS, etc., or
hardware-based storage such as SolidFire,
Nexenta, EMC, etc..
Cinder Services
● Cinder-API is the interface to talk to Cinder
● Cinder-Volume creates and deletes volumes
and manages the storage backend
● Cinder-Scheduler is responsible to
coordinate storage access in steups which
have more than one storage backend
Horizon (OS Dashboard)
● Horizon is the web-user interface for doing
things such as:
Starting, stopping, deleting, live-migrating
or creating snapshots of VMs
Managing projects (tenants)
Connecting to VM’s console
Creating Security Groups, Networks and
much more …
Neutron (Software Defined Networking)

● Neutron uses Open vSwitch and OpenFlow


plugins by default to manage the switch and
network packet flows
● Based on OpenFlow rules, packets are
forwarded between VMs on the same node
or across physical nodes
● Other plugins are:
Cisco UCS plugins
Midonet
ML2 (Modular Layer 2) SDN Plugins
etc..
OpenStack Services Distribution and
Scalability across nodes (simple)
Some OpenStack Distros (products)
Distros Support OS Hypervisor

Debian OS community Debian KVM / Xen

HP Helion Y Hlinux (Debian based) KVM / ESX / Hyper-V

IBM Cloud Manager with Y RHEL KVM / PowerKVM


OpenStack

Mirantis Fuel Y Ubuntu / RHEL KVM / ESX / Xen

Oracle OS Y Oracle Linux / Solaris KVM / Solaris Zone

Piston OS (Cisco) Y Iocane Linux KVM / ESX / Xen

Rackspace OS Y Ubuntu KVM / ESX / Xen


(OpenCenter)

Red Hat OSP Y RHEL Red Hat’s KVM

Red Hat RDO community CentOS / Fedora / RHEL KVM / LXC / Nova-Docker

SUSE Cloud Y SUSE KVM / ESX / Xen

Ubuntu OpenStack Y Ubuntu KVM / ESX / LXD

VMware VIO Y vSphere ESX


OpenStack Deployment
Options (for Developers)
● DevStack
● OpenStack Ansible (OSA)
● RDO Packstack (for POCs)
● RDO TripleO (for production)
● HPE Helion TripleO
● Kolla-Ansible (dockerized, uses DLRN RDO
packages and more..)
● Kolla-Kubernetes (just borne)
● Kolla-Rancher (just borne, very exciting!!!)
Kolla (Ansible + Docker OS
Components and Services
● Kolla provides Docker containers and
Ansible playbooks to meet Kolla’s mission
● Kolla’s mission is to provide production
ready containers and deployment tools for
operating OpenStack clouds.

Links for AIO and Multi-Node deployments:


https://github.com/openstack/kolla
http://docs.openstack.org/developer/kolla/
Kolla w/ Cisco!Devnet OpenStack Image

● HandsOn Session:
● Get it, run it and enjoy OS in less than 30
minutes :-)
https://cisco.app.box.com/v/KollaCLBerlin2
016
Kolla AIO Deployment Demo
● Using CentOS 7.2.1511 (Core) on bare-metal
● With 2 Nics
enp2s0 (public interface)
eno1 (internal with no IP configured)
● 16 GB RAM
● 8 Core Intel(R) Xeon(R) CPU E3-1230 V2 @
3.30GHz
Kolla AIO Deployment Steps I
● yum -y update
● reboot
● yum -y install epel-release
● yum -y install python-pip
● curl -sSL https://get.docker.io | bash
● mkdir -p /etc/systemd/system/docker.service.d
● tee /etc/systemd/system/docker.service.d/kolla.conf <<-'EOF'
[Service]
MountFlags=shared
EOF
● systemctl daemon-reload
● systemctl restart docker
● yum install -y python-docker-py
● yum -y install ntp
● systemctl enable ntpd.service
● systemctl start ntpd.service
● systemctl stop libvirtd.service
● systemctl disable libvirtd.service
● yum -y install ansible
Kolla AIO Deployment Steps II
● systemctl daemon-reload
● yum install git -y
● git clone https://git.openstack.org/openstack/kolla
● pip install kolla/
● cd kolla/
● cp -r etc/kolla /etc/
● yum -y install python-devel libffi-devel openssl-devel gcc
● pip install -U python-openstackclient python-neutronclient

●kolla-build → options
● docker images
● kolla-genpwd
● vi /etc/kolla/globals.yml
network_interface: "enp2s0"
neutron_external_interface: "eno1"
kolla_install_type: "binary"
kolla_base_distro: "centos"
openstack_release: "3.0.0"
● kolla-ansible prechecks
● kolla-ansible deploy
Kolla AIO Deployment Steps III
● cd /etc/kolla/
● kolla-ansible post-deploy
● cat admin-openrc.sh
● cp /etc/kolla/admin-openrc.sh openrc
● source openrc
● docker ps -a
● vi /usr/share/kolla/init-runonce
● adapt to your pub. network: neutron subnet-create --name 1-subnet --disable-dhcp --
allocation-pool start=x.x.x.x,end=x.x.x.x public1 x.x.x.x/26 --gateway x.x.x.x
● . /usr/share/kolla/init-runonce
● docker exec -i -t neutron_server /bin/bash
● neutron net-list
● nova boot --flavor m1.tiny --image cirros --key-name oskey --nic net-id=36bbbe4b-64e0-4d87-
9fda-a9f254acbc3c test
● glance image-list
● nova list
● OpenStack CLI Cheat Sheet: http://docs.openstack.org/user-
guide/cli_cheat_sheet.html
Kolla AIO: Access Horizon
●iptables -F —> unless horizon is not
accessible
● Access horizon through the public IP: http://x.x.x.x
● You’ll find the admin credential in openrc file
Kolla AIO: Cleanup
● . /usr/share/kolla/tools/cleanup-containers
● kolla-ansible deploy
● kolla-ansible post-deploy
● . /usr/share/kolla/init-runonce
● Boot Cirros (if sometimes :-) not possible over horizon, current BUG):
● neutron net-list (to find the net-id)
● nova boot --flavor m1.tiny --image cirros --key-name oskey --nic net-id=xxxxxxxxx cirros1
Kolla Multi-Node Setup
● Presented by October workshop :-)
● Probably running with:
○ Kolla-Kubernetes
○ Kolla-Rancher, or
○ Kolla-Mesos
TripleO (OpenStack On OpenStack)

● TripleO stands for OpenStack On


OpenStack and is an OpenStack
project for deploying production
ready OpenStack Clouds with its
own tools such as Heat, Ironic
and Nova.
TripleO Architecture

Source: http://docs.openstack.org/developer/tripleo-docs/introduction/architecture.html
TripleO (OpenStack On OpenStack)

Source: https://access.redhat.com/documentation/en/red-hat-openstack-platform/version-8/director-installation-
and-usage/#chap-Introduction
TripleO (Network Planning)

Source: https://access.redhat.com/documentation/en/red-hat-openstack-platform/version-8/director-installation-
and-usage/#sect-Planning_Networks
TripleO High Availability
Example

Source: https://access.redhat.com/documentation/en/red-hat-openstack-platform/version-8/understanding-red-hat-
openstack-platform-high-availability/
Live Introduction to Linux Foundation
Certified OpenStack Administrator (OCA)
Q&A
Thanks You for
Your attention!

You might also like