Services Core OpenStack
Introduction
OpenStack est composé de nombreux services (projets), chacun ayant un rôle spécifique. Certains sont essentiels (core), d'autres optionnels. Cette section détaille les services et leurs interdépendances.
Prérequis
Points à apprendre
Classification des services
graph TB
subgraph Core["SERVICES CORE<br/>(Indispensables pour un cloud fonctionnel)"]
Keystone["🔑 Keystone<br/>Identity"]
Nova["💻 Nova<br/>Compute"]
Neutron["🌐 Neutron<br/>Network"]
Glance["📀 Glance<br/>Image"]
Placement["📊 Placement"]
Cinder["💾 Cinder<br/>Storage"]
end
subgraph Additional["SERVICES ADDITIONNELS"]
Horizon["🖥️ Horizon<br/>Dashboard"]
Swift["📦 Swift<br/>Object"]
Heat["🔥 Heat<br/>Orch."]
Octavia["⚖️ Octavia<br/>LB"]
Magnum["🐳 Magnum<br/>Container"]
Barbican["🔐 Barbican<br/>Secrets"]
Manila["📁 Manila<br/>Share"]
Designate["🌍 Designate<br/>DNS"]
end
Services Core - Détails
Keystone (Identity)
| Aspect |
Détail |
| Port |
5000 |
| Fonction |
Authentification, autorisation, catalogue services |
| Dépendances |
MariaDB, Memcached |
| Critique |
Oui - tous les services en dépendent |
# Composants
keystone-api # API (WSGI)
# Pas de workers séparés, tout dans l'API
Nova (Compute)
| Aspect |
Détail |
| Port |
8774 |
| Fonction |
Gestion des instances (VMs) |
| Dépendances |
Keystone, Glance, Neutron, Placement |
| Critique |
Oui - service principal |
# Composants
nova-api # API REST
nova-scheduler # Placement des VMs sur les hosts
nova-conductor # Coordination, accès DB
nova-compute # Agent sur chaque hyperviseur
nova-novncproxy # Console VNC
nova-spicehtml5proxy # Console SPICE (alternative)
Neutron (Network)
| Aspect |
Détail |
| Port |
9696 |
| Fonction |
Réseaux virtuels, SDN |
| Dépendances |
Keystone |
| Critique |
Oui |
# Composants
neutron-server # API REST
neutron-openvswitch-agent # Agent OVS sur chaque nœud
neutron-l3-agent # Routage (sur controller ou DVR)
neutron-dhcp-agent # DHCP pour les réseaux
neutron-metadata-agent # Metadata pour les VMs
neutron-linuxbridge-agent # Alternative à OVS
Glance (Image)
| Aspect |
Détail |
| Port |
9292 |
| Fonction |
Stockage et distribution des images |
| Dépendances |
Keystone, Backend (Swift/Ceph/Filesystem) |
| Critique |
Oui |
# Composants
glance-api # API REST, gestion images
# glance-registry # Déprécié depuis Victoria
Placement
| Aspect |
Détail |
| Port |
8778 |
| Fonction |
Inventaire ressources, allocation |
| Dépendances |
Keystone, MariaDB |
| Critique |
Oui (depuis Stein) |
# Composants
placement-api # API (WSGI)
Cinder (Block Storage)
| Aspect |
Détail |
| Port |
8776 |
| Fonction |
Volumes persistants |
| Dépendances |
Keystone, Backend (LVM/Ceph/NFS) |
| Critique |
Quasi-standard |
# Composants
cinder-api # API REST
cinder-scheduler # Placement des volumes
cinder-volume # Gestion volumes (1 par backend)
cinder-backup # Sauvegarde volumes (optionnel)
Services Additionnels
Horizon (Dashboard)
# Interface web
Port: 80/443
Dépendances: Tous les services pour les afficher
Swift (Object Storage)
# Stockage objet S3-like
Ports: 8080 (proxy), 6000-6002 (storage)
Alternative: RadosGW (Ceph) pour compatibilité S3
Heat (Orchestration)
# Templates d'infrastructure (HOT/CFN)
Port: 8004
Composants: heat-api, heat-engine
Octavia (Load Balancer)
# LBaaS v2
Port: 9876
Composants: octavia-api, octavia-worker, octavia-housekeeping
Dépendance: Nova (crée des VMs Amphora)
Magnum (Container Orchestration)
# Clusters Kubernetes/Swarm
Port: 9511
Composants: magnum-api, magnum-conductor
Dépendance: Heat
Barbican (Key Management)
# Gestion secrets et certificats
Port: 9311
Utilisé par: Octavia (TLS), Nova (encryption)
Manila (Shared Filesystems)
# NFS/CIFS as a Service
Port: 8786
Backends: CephFS, NetApp, Generic (NFS)
Designate (DNS)
# DNS as a Service
Port: 9001
Backends: Bind9, PowerDNS
Dépendances entre services
graph TD
subgraph Core
K[Keystone]
N[Nova]
Ne[Neutron]
G[Glance]
P[Placement]
C[Cinder]
end
subgraph Backend
DB[(MariaDB)]
MQ[RabbitMQ]
MC[Memcached]
end
subgraph Additional
H[Horizon]
O[Octavia]
M[Magnum]
He[Heat]
end
K --> DB
K --> MC
N --> K
N --> G
N --> Ne
N --> P
N --> MQ
N --> DB
Ne --> K
Ne --> MQ
Ne --> DB
G --> K
G --> DB
P --> K
P --> DB
C --> K
C --> MQ
C --> DB
H --> K
H --> N
H --> Ne
H --> G
H --> C
O --> K
O --> N
O --> Ne
M --> K
M --> He
M --> N
He --> K
He --> N
He --> Ne
Services backend
MariaDB / MySQL
# Base de données relationnelle
Port: 3306
Mode HA: Galera Cluster
Utilisé par: Tous les services OpenStack
RabbitMQ
# Message queue (AMQP)
Ports: 5672 (AMQP), 15672 (Management)
Mode HA: Cluster avec mirrored queues
Utilisé par: Nova, Neutron, Cinder, Heat, etc.
Memcached
# Cache distribué
Port: 11211
Utilisé par: Keystone (tokens), Horizon (sessions)
Tableau récapitulatif des ports
| Service |
Port(s) |
Protocole |
| Keystone |
5000 |
HTTPS/HTTP |
| Nova API |
8774 |
HTTPS/HTTP |
| Nova VNC |
6080 |
WebSocket |
| Neutron |
9696 |
HTTPS/HTTP |
| Glance |
9292 |
HTTPS/HTTP |
| Placement |
8778 |
HTTPS/HTTP |
| Cinder |
8776 |
HTTPS/HTTP |
| Horizon |
80, 443 |
HTTP/HTTPS |
| Swift Proxy |
8080 |
HTTP |
| Heat |
8004 |
HTTPS/HTTP |
| Octavia |
9876 |
HTTPS/HTTP |
| Magnum |
9511 |
HTTPS/HTTP |
| Barbican |
9311 |
HTTPS/HTTP |
| MariaDB |
3306 |
MySQL |
| RabbitMQ |
5672, 15672 |
AMQP |
| Memcached |
11211 |
Memcache |
Configuration minimale recommandée
Déploiement minimal (lab)
services:
- keystone
- nova
- neutron
- glance
- placement
- horizon
Déploiement production
services:
core:
- keystone
- nova
- neutron
- glance
- placement
- cinder
recommended:
- horizon
- octavia # Si load balancing requis
- heat # Si orchestration templates
- barbican # Si chiffrement requis
optional:
- magnum # Si Kubernetes
- manila # Si shared filesystems
- designate # Si DNS dynamique
Exemples pratiques
Vérifier l'état des services
# Services compute
openstack compute service list
# Agents réseau
openstack network agent list
# Services volume
openstack volume service list
# État global via Kolla
docker ps --format "table {{.Names}}\t{{.Status}}" | grep -E "(keystone|nova|neutron|glance|cinder)"
Identifier les dépendances
# Voir les endpoints requis par un service
openstack catalog list
# Vérifier la configuration d'un service
docker exec nova_api cat /etc/nova/nova.conf | grep -E "^\[keystone|^\[neutron|^\[glance"
Ressources
Checkpoint