06 · Cloud
Hybrid cloud
OpenStack + Kubernetes + Azure
Overview
The infrastructure behind Elif: Kubernetes on OpenStack, with Azure AKS capacity connected through Karmada.
Ansible and Heat provision and configure the cluster. The documented deployment brings together Octavia load balancing, multi-cluster workload policies, and Prometheus/Grafana monitoring.
Architecture
- OpenStack Kubernetes
- Karmada
- Azure AKS
Ansible → Heat → kubeadm · Octavia ingress
Stack
- OpenStack
- Cinder
- Swift
- Ansible
- Kubernetes
- Karmada
- Azure AKS
- Prometheus
- Grafana
OpenStack services









In depth
OpenStack services
Nova provides compute instances; Neutron manages networks, ports, routers, and floating IPs; Keystone handles identity; Glance supplies VM images; Heat orchestrates infrastructure; Horizon provides administration; Octavia exposes Kubernetes workloads through load balancers.
Storage: design and deployed configuration
The infrastructure included Cinder block storage and Swift object storage. Cinder-backed boot volumes and CSI provisioning were investigated, but the final deployment used ephemeral VM disks and local-path persistent volumes for MySQL. Swift provides the object-storage service in the infrastructure.
Automation and Kubernetes
Ansible drives Heat provisioning and kubeadm configuration. The cluster uses containerd, Flannel networking, the OpenStack cloud controller, and Octavia integration for LoadBalancer services. The application includes Angular, Spring Boot, MySQL, an AI agent, and an OCR service.
Hybrid orchestration
Karmada connects the private OpenStack cluster with a two-node Azure AKS cluster. Six propagation policies distribute workloads; a demonstration deployed four replicas, split evenly across the two clusters. Override policies handle cluster-specific configuration.
Monitoring and operations
Prometheus collects cluster and infrastructure metrics through Node Exporter and OpenStack Exporter. Grafana dashboards cover Kubernetes, OpenStack, the application, and the hybrid deployment. Operational work included Octavia health-manager connectivity, restart recovery, ingress routing, and WebSocket behavior under scaling.
Academic team project. Deployment details distinguish the working configuration from earlier designs.