OpenStack is a collection of open-source tools.

Different OpenStack cloud deployment methods are available.

Kolla Ansible is one of the preferred deployment method.

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.

OpenStack Core Service: –

1. Keystone – Identity Service

2. Glance – Image Service.

3. Nova – Compute Service.

4. Neutron – Network Service.

5. Horizon – Dashboard service.

You can check optional services – https://docs.openstack.org/2023.1/install/

My Deployment Overview: –

OS – Centos9

NICs – 2 – Primary network for management and secondary network for cloud network.

Storage DISKS – Custom partition, most of the space is allocated to var partition, Openstack default VM storage partition is var . And 2 Additional disks for Cinder.

OpenStack Services deployment overview: –

By default, the above-core services and Heat (Orchestrator service) will be deployed. Additionally, Services – Cinder (volume service), Grafana, Prometheus (for monitoring the infra) and Magnum for Container infra services enabled on the Kolla deployment file.

Configure IP for Primary Nic, don’t configure any IP for Second NIC.

Deployment Steps: –

Note down NIC names and Storage device names.

Clone or copy script to deployment machine.

URL – https://github.com/Dineshk1205/openstacksinglenode/blob/main/Openstack%20single.sh

In the Script Update the following configuration is based on your env/requirements.

Openstack_Version=’2023.1′ ## Openstack Version ## For the old version minor changes are required.

Openstack_VIP=’172.90.0.201′ ## Free IP

Internal_NIC_Name=’ens192′ ## Primary NIC Name

External_NIC_Name=’ens224′ ## secondary NIC Name

#Cloud network configuration

EXT_NET_CIDR=’172.90.0.1/24′ ## External/Provider Network Subnet.

EXT_NET_RANGE=’start=172.90.0.210, end=172.90.0.245’ ## Network Range

EXT_NET_GATEWAY=’172.90.0.1′ ## Gateway

Also update disks names as per your env (dev/sdb,dev/sdc)

Save configuration. Assign execute (+x) permission to script file – chmod +x openstacksingle.sh

Run script file – ./openstacksingle.sh. It will take 20 to 25 minutes (Based on your infra time will vary). The script will deploy, and configure OpenStack cloud services – keystone, glance, Nova, neutron, Horizon, Cinder, Heat, Magnum and creates an external network, flavours, keypair, magnum template and Kubernetes cluster deployment.

Once deployment is completed. run cat /etc/kola/admin-openrc.sh and copy the admin password.

Use any browser: Dashboard URL – Deployment machine/VIP. Enter username – admin and password – paste the above copied password. click on the sign-in.

After logging, Admin>system information > check if any service state is Down.

And you can check Kubernetes cluster status (Container Infra>Clusters) and also select the Orchestration option and check events. (Note: – Deployed only one master and one worker, you can deploy multiple worker nodes and also you can scale worker nodes. For deploying multiple master nodes requires Octavia load balancer service)

Check in the instance section. Kubernetes master instance created and running. Once Master is ready, heat (Orchestrator) will deploy the worker node instance

From the deployment machine, you can log to master node using instance floating IP.

You can see worker node also created and running.

You run the kubectl command and check Kubernetes node status – kubectl get nodes

You can check in stacks topology –heat created Kubernetes required networks, security policies ..etc.

You also check the pods status – kubectl get pods -A