OpenKeel : la solution Cloud souveraine, française à portée européenne du groupe inherent Découvrir inherent

Architecture

Vue d'ensemble

Clients, API Go, workers et agents, infrastructure partagée, opérateurs, plateforme Kubernetes et systèmes externes.

Services, données et plateforme

Diagramme openkeel-overview.svg Plein écran
De haut en bas : clients, API Go, workers et agents, infrastructure partagée, opérateurs, plateforme Kubernetes, systèmes externes. Les interactions communes à tous les services (jetons, base, notifications, certificats TLS) sont dessinées comme des bus ; tous les flux sont chiffrés en TLS.

Ne pas réécrire ce qui est complexe

Chaque service s'appuie sur une brique Kubernetes éprouvée ; Ironic fait exception, en Python amont dans un chart OpenKeel.

Calcul

Nova → KubeVirt

Les instances sont des VirtualMachines ; CDI importe les images

En savoir plus
Bloc

Cinder → CSI bloc

Les volumes sont des PVC sur tout CSI bloc : Rook-Ceph, Longhorn, NetApp, Dorado, Pure

En savoir plus
Fichier

Manila → NFS-Ganesha

Passerelle NFS créée à la volée dans le réseau du tenant, sur volume CSI bloc

En savoir plus
Réseau

Neutron → OVN

Réseau des VMs isolé du réseau Kubernetes (Multus)

En savoir plus
DNS

Designate → ExternalDNS

Zones et enregistrements publiés par ExternalDNS

En savoir plus
HA

Masakari → Medik8s

Node Healthcheck et Self Node Remediation

En savoir plus
Bare metal

Ironic reste en Python

Trop de configurations matérielles à tester

En savoir plus

Isolation des tenants : les chemins fermés

Une VM n'a aucune interface sur le réseau CNI de Kubernetes : chaque NIC est branchée sur son propre port Neutron dans l'OVN d'OpenKeel. Une garde installée par le plugin CNI ferme les chemins à travers les namespaces partagés.

CheminPourquoi il est fermé
Invité vers un autre réseau de tenantLa seule sortie du tap est le bridge du Pod et le veth vers br-int ; ovn-controller l'associe à un port logique. Les autres switches ne sont joignables que par un routeur Neutron
Invité vers le réseau des pods, le nœud, les Services du clusterAucune interface de l'invité ne les touche, et la garde ferme le passage par les namespaces partagés
MAC ou IP usurpéeport_security du port logique, écrit par Neutron
Port d'un autre projetUn projet ne peut créer ni Pods ni NADs ; seul le rôle service peut lier un port

Source : openkeel-neutron/docs/VM-NETWORKING.md (§ Tenant isolation). make test-cni rejoue l'attaque dans de vrais namespaces, avec et sans la garde.