OpenKeel: die souveräne französische Cloud-Lösung mit europäischer Reichweite der inherent-Gruppe inherent entdecken

Architektur

Knotenplatzierung

Wo jede Komponente läuft: der Talos-Produktionscluster und das schlanke kind-Labor.

Talos-Produktionscluster

Diagramm openkeel-cluster-talos.svg Vollbild
Legende und Details

OpenKeel interactions — view cluster:talos

#FromToProtocolWhat
1Swift proxySwift storageREST over HTTPS (Keystone token)internal account/container/object requests (ring lookup)
2Ironic APIIronic conductorREST over HTTPS (Keystone token)JSON-RPC deploy/clean/power
3SkylinePublic ingress (Gateway API data plane) on control plane and network nodesREST over HTTPS (Keystone token)all APIs
4Nova compute agentPlacementREST over HTTPS (Keystone token)inventory, traits
5Nova compute agentIronic APIREST over HTTPS (Keystone token)nodes → Placement inventory (planned)
6Neutron metadata agentNovaREST over HTTPS (Keystone token)metadata API :8775, X-Instance-ID + HMAC signature
7Ironic conductorNeutronREST over HTTPS (Keystone token)provisioning/tenant ports
8Ironic conductorGlanceREST over HTTPS (Keystone token)image download (cache)
9Public ingress (Gateway API data plane) on control plane and network nodesOpenKeel control plane: all OpenKeel servicesREST over HTTPS (Keystone token)routes per service (HTTPS)
10OpenKeel control plane: all OpenKeel servicesMariaDB GaleraSQL over TLS (MariaDB Galera)own schema (not Swift)
11SkylineMariaDB GaleraSQL over TLS (MariaDB Galera)settings, revoked tokens
12OpenKeel control plane: all OpenKeel servicesRabbitMQAMQPS (RabbitMQ RPC / notifications)versioned notifications
13NovaNova compute agentAMQPS (RabbitMQ RPC / notifications)RPC
14RabbitMQDesignateAMQPS (RabbitMQ RPC / notifications)sink: Nova/Neutron events
15NovaKubeVirt infraKubernetes API over HTTPS (CRDs, PVCs, watches)VirtualMachine, Instancetype, Preference
16NovaCDIKubernetes API over HTTPS (CRDs, PVCs, watches)root DataVolume: clone of the image PVC
17Nova compute agentkube-apiserverKubernetes API over HTTPS (CRDs, PVCs, watches)watch node allocatable
18Swift storageLonghorn controllersKubernetes API over HTTPS (CRDs, PVCs, watches)one PVC per device (block StorageClass)
19GlanceKubeVirt infraKubernetes API over HTTPS (CRDs, PVCs, watches)VirtualMachineExport (download without keep_original)
20GlanceCDIKubernetes API over HTTPS (CRDs, PVCs, watches)DataVolume upload (upload proxy), import, clone
21CinderLonghorn controllersKubernetes API over HTTPS (CRDs, PVCs, watches)PVC (Block), VolumeSnapshot
22CinderKubeVirt infraKubernetes API over HTTPS (CRDs, PVCs, watches)volume hotplug
23ManilaLonghorn controllersKubernetes API over HTTPS (CRDs, PVCs, watches)PVC (RWX filesystem)
24DesignateExternalDNSKubernetes API over HTTPS (CRDs, PVCs, watches)DNSEndpoint per recordset
25MasakariMedik8s operatorsKubernetes API over HTTPS (CRDs, PVCs, watches)NodeHealthCheck, remediation status
26MasakariKubeVirt infraKubernetes API over HTTPS (CRDs, PVCs, watches)VMI delete, live migration
27MariaDB OperatorMariaDB GaleraKubernetes API over HTTPS (CRDs, PVCs, watches)runs Galera; databases, users, grants; server certificates (own CA)
28RabbitMQ operatorsRabbitMQKubernetes API over HTTPS (CRDs, PVCs, watches)RabbitmqCluster, vhost, users, permissions
29Medik8s operatorskube-apiserverKubernetes API over HTTPS (CRDs, PVCs, watches)fencing, out-of-service taint
30Medik8s operatorsSelf Node Remediation agent (watchdog fencing)Kubernetes API over HTTPS (CRDs, PVCs, watches)SelfNodeRemediation → watchdog reboot
31Neutron metadata agentOpen vSwitch: ovs-vswitchd + ovsdb-server, br-int (VM NICs, Geneve tunnels)Data path (disks, NICs, DNS answers)ovnmeta-<net> namespace, veth with iface-id = metadata port
32MariaDB GaleraLonghorn manager, instance managers (engines, replicas), CSI node pluginData path (disks, NICs, DNS answers)PVCs, 1 replica strict-local
33RabbitMQLonghorn manager, instance managers (engines, replicas), CSI node pluginData path (disks, NICs, DNS answers)PVCs, 1 replica strict-local
34Longhorn controllersLonghorn manager, instance managers (engines, replicas), CSI node pluginData path (disks, NICs, DNS answers)replicas on node disks
35Longhorn controllersSwift storageData path (disks, NICs, DNS answers)XFS devices, 1 Longhorn replica
36KubeVirt infraTenant VMsData path (disks, NICs, DNS answers)virt-launcher pods
37virt-handlerTenant VMsData path (disks, NICs, DNS answers)domain lifecycle, migrations
38Tenant VMsLonghorn manager, instance managers (engines, replicas), CSI node pluginData path (disks, NICs, DNS answers)VM disks (Longhorn volumes)
39Tenant VMsOpen vSwitch: ovs-vswitchd + ovsdb-server, br-int (VM NICs, Geneve tunnels)Data path (disks, NICs, DNS answers)VM NICs (Multus → br-int, iface-id = Neutron port)
40Tenant VMsNeutron metadata agentData path (disks, NICs, DNS answers)HTTP 169.254.169.254 via the metadata localport
41OpenKeel OVN chassis: ovn-controller (SB → OpenFlow; distributed FIP NAT on hypervisors)Open vSwitch: ovs-vswitchd + ovsdb-server, br-int (VM NICs, Geneve tunnels)Data path (disks, NICs, DNS answers)OpenFlow: br-int flows
42Neutron metadata agentOpenKeel OVN centralOVSDB over ssl: (OVN NB/SB mutual TLS, local OVS DB)SB: Port_Binding lookup per request
43NeutronOpenKeel OVN centralOVSDB over ssl: (OVN NB/SB mutual TLS, local OVS DB)NB writes: switches, ports, routers, ACLs, NAT, DHCP; LSP.up monitor; SB reads: Chassis, Chassis_Private (liveness, binding); repairs drift (maintenance loop)
44OVN gateway chassisOpenKeel OVN centralOVSDB over ssl: (OVN NB/SB mutual TLS, local OVS DB)SB: gateway chassis (ovn-cms-options)
45ovn-bgp-agent + FRROpenKeel OVN centralOVSDB over ssl: (OVN NB/SB mutual TLS, local OVS DB)NB/SB read (Neutron external_ids)
46ovn-bgp-agent + FRROpenKeel OVN centralOVSDB over ssl: (OVN NB/SB mutual TLS, local OVS DB)NB/SB read: FIPs bound to local ports
47OpenKeel OVN chassis: ovn-controller (SB → OpenFlow; distributed FIP NAT on hypervisors)OpenKeel OVN centralOVSDB over ssl: (OVN NB/SB mutual TLS, local OVS DB)reads flows, claims Port_Binding, registers Chassis
48OpenKeel OVN chassis: ovn-controller (SB → OpenFlow; distributed FIP NAT on hypervisors)Open vSwitch: ovs-vswitchd + ovsdb-server, br-int (VM NICs, Geneve tunnels)OVSDB over ssl: (OVN NB/SB mutual TLS, local OVS DB)Open_vSwitch DB: br-int, tunnels, iface-id

kind-Labor

Diagramm openkeel-cluster-lab.svg Vollbild
Legende und Details

OpenKeel interactions — view cluster:lab

#FromToProtocolWhat
1openkeel-lab-keystone-bootstrapKeystoneREST over HTTPS (Keystone token)users, roles, catalog, service tokens
2openkeel-lab-smokekind node: all OpenKeel servicesREST over HTTPS (Keystone token)token, catalog, one call per service (internal URLs)
3openstack CLINodePorts 30500–30998 published on 127.0.0.1 (kind extraPortMappings)REST over HTTPS (Keystone token)all APIs
4NodePorts 30500–30998 published on 127.0.0.1 (kind extraPortMappings)kind node: all OpenKeel servicesREST over HTTPS (Keystone token)routes per service (HTTPS)
5openkeel-lab-setupMariaDB 11.4SQL over TLS (MariaDB Galera)databases, users, grants
6openkeel-lab-keystone-bootstrapMariaDB 11.4SQL over TLS (MariaDB Galera)bootstrap rows (no keystone-manage)
7openkeel-<p>-db-migrateMariaDB 11.4SQL over TLS (MariaDB Galera)schema migrations
8kind node: all OpenKeel servicesMariaDB 11.4SQL over TLS (MariaDB Galera)own schema (not Swift)
9openkeel-skylineMariaDB 11.4SQL over TLS (MariaDB Galera)settings, revoked tokens
10kind node: all OpenKeel servicesRabbitMQ 4.1AMQPS (RabbitMQ RPC / notifications)versioned notifications
11Makefilekubectl apply -kKubernetes API over HTTPS (CRDs, PVCs, watches)lab-up: credentials Secret, Multus, overlay
12Makefileopenkeel-lab-smokeKubernetes API over HTTPS (CRDs, PVCs, watches)lab-smoke, lab-refresh-tokens
13openkeel-lab-setupkube-apiserver + etcdKubernetes API over HTTPS (CRDs, PVCs, watches)Fernet/credential keys, openkeel-<p>-secrets
14openkeel-lab-keystone-bootstrapkube-apiserver + etcdKubernetes API over HTTPS (CRDs, PVCs, watches)service-token Secrets, rollout restart
15kubectl apply -kkube-apiserver + etcdKubernetes API over HTTPS (CRDs, PVCs, watches)apply -k overlays/$PROFILE, wait
16install-backends.shReal backends (optional): all PlatformKubernetes API over HTTPS (CRDs, PVCs, watches)install KubeVirt, CDI, Longhorn, snapshots
17kind node: all OpenKeel servicesReal backends (optional): all PlatformKubernetes API over HTTPS (CRDs, PVCs, watches)real-backend components only
18GlanceKubeVirt + CDIKubernetes API over HTTPS (CRDs, PVCs, watches)DataVolume upload (upload proxy), import, clone; VirtualMachineExport (download without keep_original)
19CinderKubeVirt + CDIKubernetes API over HTTPS (CRDs, PVCs, watches)volume hotplug
20Novakube-apiserver + etcdKubernetes API over HTTPS (CRDs, PVCs, watches)watch node allocatable
21NovaKubeVirt + CDIKubernetes API over HTTPS (CRDs, PVCs, watches)VirtualMachine, Instancetype, Preference; root DataVolume: clone of the image PVC
22Makefilekind CLIData path (disks, NICs, DNS answers)lab-up / lab-down: kind createdelete cluster
23Makefilescripts/build-images.shData path (disks, NICs, DNS answers)lab-up / lab-images
24scripts/build-images.shcontainerd in the node: openkeel/openkeel-<project>:lab images (kind load)Data path (disks, NICs, DNS answers)docker build, kind load docker-image
25kind CLIDocker engine on the host: the kind node is a container (no KVM on macOS)Data path (disks, NICs, DNS answers)node container from kind/cluster.yaml
26Neutronovn-centralOVSDB over ssl: (OVN NB/SB mutual TLS, local OVS DB)NB writes: switches, ports, routers, ACLs, NAT, DHCP; LSP.up monitor; SB reads: Chassis, Chassis_Private (liveness, binding); repairs drift (maintenance loop)