Skip to content

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

  • Je connais les services core et leur rôle
  • Je peux expliquer les dépendances entre services
  • Je connais les ports standards des services
  • Je comprends le rôle de MariaDB, RabbitMQ et Memcached
  • Je sais quels services sont nécessaires selon le cas d'usage