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

Architektur

Was der Rewrite auslässt

OpenKeel behält die OpenStack-APIs, nicht die gesamte Mechanik dahinter. Manche Funktionen werden der darunterliegenden Cloud-Native-Plattform überlassen (KubeVirt, CDI, CSI, OVN, Medik8s, ExternalDNS, Kubernetes selbst), manche waren upstream veraltet, und manche interne Mechanik ist in Go einfacher. Jede ist aufgeführt mit dem Grund für ihr Auslassen und dem Grund, warum die Lösung als Ganzes nicht beeinträchtigt ist.

Drei Gründe, eine Funktion auszulassen

Plattform

Von der Cloud-Native-Plattform übernommen

Kubernetes und seine Operatoren betreiben, verschieben, heilen und vernetzen die Workloads bereits: OpenKeel steuert sie, statt sie neu zu implementieren, sodass die Funktion weiterhin existiert, eine Ebene tiefer.

Upstream

Upstream veraltet oder ungenutzt

Veraltete APIs, Proxys zu entfernten Diensten und Treiber für Back Ends, die OpenKeel nicht nutzt: Nichts in der Plattform ruft sie auf.

Go

Vereinfachte interne Mechanik

Zellen, RPC-Topologien, Agenten pro Host, Privilegien-Helfer: ersetzt durch einfachere Mechanismen mit derselben REST-API und demselben Verhalten aus Sicht der Clients.

Modul für Modul

Jede Zeile verweist auf die Seite der Komponente, die Grund, Auswirkung und Quelldokument nennt.

  • 78ausgelassene Funktionen in 22 Modulen
  • 38Von der Cloud-Native-Plattform übernommen
  • 8Upstream veraltet oder ungenutzt
  • 32Vereinfachte interne Mechanik

Compute und Kapazität

ModulAusgelassene FunktionKindÜbernommen von
PlacementNicht authentifizierter Modus noauth2Vereinfachte interne Mechanik—
PlacementOnline-Datenmigrationen für alte DatenbankenUpstream veraltet oder ungenutzt—
PlacementCORS-MiddlewareVon der Cloud-Native-Plattform übernommenIngress (Gateway API)
PlacementLogging in Dateien, osprofiler, Healthcheck-MiddlewareVon der Cloud-Native-Plattform übernommenKubernetes probes, OpenTelemetry
NovaCells v2, cell0 und build requestsVereinfachte interne Mechanik—
Novanova-compute pro Host und libvirt-TreiberVon der Cloud-Native-Plattform übernommenKubeVirt
NovaVeraltete Proxy-APIs (Images, Volumes, Netzwerke)Upstream veraltet oder ungenutzt—
NovaSuspend auf FestplatteVon der Cloud-Native-Plattform übernommenKubeVirt
NovaWarten auf network-vif-plugged und Timeouts beim VIF-PluggingVon der Cloud-Native-Plattform übernommenOVN CNI
ZunDocker-Daemon, zun-cni und kuryr-libnetworkVon der Cloud-Native-Plattform übernommenKubernetes-Pods, Kata Containers
ZunPause, unpause und commitVon der Cloud-Native-Plattform übernommenKubernetes
ZunBeschreibbare Schicht über stop hinweg erhaltenVon der Cloud-Native-Plattform übernommenKubernetes
ZunDocker-Image-Suche, docker load, Docker-NetzwerkeVon der Cloud-Native-Plattform übernommenKubernetes (kubelet)
ZunDISK_GB-Claim in PlacementVon der Cloud-Native-Plattform übernommenKubernetes (ephemeral-storage)
ZunRabbitMQ-RPC zu zun-computeVereinfachte interne Mechanik—
MasakariHost-Monitor von masakari-monitorsVon der Cloud-Native-Plattform übernommenMedik8s
Masakarioslo.messaging-RPC und tooz-KoordinationVereinfachte interne MechanikKubernetes Leases
MasakariTaskflow-Logbook und benutzerdefinierte Recovery-FlowsVereinfachte interne Mechanik—
MasakariWSGI-Serveroptionen, Healthcheck, osapi_v1-FilterVon der Cloud-Native-Plattform übernommenKubernetes probes
IronicRabbitMQ-RPC zwischen API und ConductorVereinfachte interne Mechanik—
IronicTemporäre Swift-URLs für ImagesVereinfachte interne Mechanik—
IronicKolla-Startskripte und sudoVereinfachte interne MechanikKubernetes

Speicher

ModulAusgelassene FunktionKindÜbernommen von
CinderVolume-Treiber der Hersteller und FC Zone ManagerVon der Cloud-Native-Plattform übernommenCSI (standardmäßig Longhorn)
CinderVolume-Migration zwischen BackendsVon der Cloud-Native-Plattform übernommenCSI
CinderCinder-Replikation und failover_hostVon der Cloud-Native-Plattform übernommenCSI
CinderBarbican-Schlüssel pro verschlüsseltem VolumeVon der Cloud-Native-Plattform übernommenVerschlüsselte Longhorn-Volumes
CinderRPC-Casts und Scheduling nach Statistiken pro PoolVereinfachte interne Mechanik—
CinderActive-Active-Cluster und os-hostsVereinfachte interne MechanikKubernetes Leases
GlanceImage-Cache und glance-cache-WerkzeugeVon der Cloud-Native-Plattform übernommenCDI
GlanceStores rbd, swift, s3, cinder und vmwareVon der Cloud-Native-Plattform übernommenCDI, CSI (Longhorn)
GlancePlugin image_conversion (qemu-img)Von der Cloud-Native-Plattform übernommenCDI
GlanceTaskflow-ExecutorVereinfachte interne Mechanik—
ManilaShare-Treiber der HerstellerVon der Cloud-Native-Plattform übernommenNFS-Ganesha auf CSI (Longhorn)
ManilaRabbitMQ-RPC und hostlokale SperrenVereinfachte interne MechanikKubernetes Leases
ManilaCIFS-Shares und Snapshot-Revert vor OrtVon der Cloud-Native-Plattform übernommenCSI
Swift und S3Swift-Proxy, Rings und Speicher-DaemonsVon der Cloud-Native-Plattform übernommenRook-Ceph RGW
Swift und S3Separate S3-Schicht (s3api, ec2-api-s3)Von der Cloud-Native-Plattform übernommenRook-Ceph RGW

Netzwerk

ModulAusgelassene FunktionKindÜbernommen von
NeutronNicht-OVN-Mechanism-Treiber und Agenten pro HostVon der Cloud-Native-Plattform übernommenOVN
NeutronOctavia-Dienst, amphora-Treiber und housekeepingVon der Cloud-Native-Plattform übernommenOVN-Load-Balancer
NeutronOctavia-TLS-Terminierung über BarbicanVereinfachte interne Mechanik—
NeutronAMQP-RessourcenbenachrichtigungenVereinfachte interne Mechanik—
Octavia (OVN)Laden von Python-Providern und Driver AgentVereinfachte interne Mechanik—
Octavia (OVN)Octavia-Plugin von neutron-ovn-db-sync-utilVereinfachte interne Mechanik—
Octavia (OVN)Veraltete keystoneauth-Endpoint-OptionenUpstream veraltet oder ungenutzt—
Neutron-FWaaSAgent-Treiber, iptables, conntrack und NFLOGVon der Cloud-Native-Plattform übernommenOVN
Neutron-FWaaSManuelles neutron-ovn-db-sync-utilVereinfachte interne Mechanik—
Neutron-FWaaSLaden von service_plugins in neutron-serverVereinfachte interne MechanikKubernetes Deployments
Neutron-VPNaaSLibreswan-Treiber und alter L3-Agent-PfadUpstream veraltet oder ungenutzt—
Neutron-VPNaaSRabbitMQ-RPC und Agent-BenachrichtigungenVereinfachte interne Mechanik—
Neutron-VPNaaSrootwrap und Interface-TreiberVereinfachte interne MechanikKubernetes DaemonSet
OVN-BGP-AgentSouthbound-, EVPN- und Stretched-L2-TreiberVereinfachte interne Mechanik—
OVN-BGP-AgentExposure-Methoden l2vni und dynamicUpstream veraltet oder ungenutzt—
OVN-BGP-Agentprivsep-Daemons und oslo.concurrencyVereinfachte interne MechanikKubernetes DaemonSet

Identität und Sicherheit

ModulAusgelassene FunktionKindÜbernommen von
KeystoneBenachrichtigungsformat basicVereinfachte interne Mechanik—
KeystoneLogging in Dateien, osprofiler, Healthcheck, CORSVon der Cloud-Native-Plattform übernommenKubernetes-Probes, OpenTelemetry, Ingress
Barbicanbarbican-retry-ProzessUpstream veraltet oder ungenutzt—
BarbicanDogtag-Secret-Store und CAUpstream veraltet oder ungenutzt—
BarbicanLogging in Dateien, Healthcheck-Middleware, oslo_reportsVon der Cloud-Native-Plattform übernommenKubernetes probes

Dienste und Orchestrierung

ModulAusgelassene FunktionKindÜbernommen von
Designatemdns, AXFR/NOTIFY und Pool-ZieleVon der Cloud-Native-Plattform übernommenExternalDNS
DesignateRPC für central, worker, producer und tooz-SperrenVereinfachte interne MechanikKubernetes Leases
DesignateSPF-, SSHFP-, CAA-, CERT-, HTTPS- und SVCB-EinträgeVon der Cloud-Native-Plattform übernommenExternalDNS
DesignateSekundäre Zonen bei Cloud-DNS-AnbieternVon der Cloud-Native-Plattform übernommenExternalDNS
CloudKittyPyScripts (vom Dienst ausgeführtes Python)Vereinfachte interne MechanikCEL
CloudKittyGnocchi- und Aetos-Collectoren, Gnocchi-FetcherVon der Cloud-Native-Plattform übernommenPrometheus
CloudKittyElasticsearch, OpenSearch, Loki und Storage v1Von der Cloud-Native-Plattform übernommenInfluxDB
CloudKittyRabbitMQ-RPC und tooz-SperrenVereinfachte interne MechanikKubernetes Leases
EC2-APIec2-api-s3-ServerVon der Cloud-Native-Plattform übernommenRook-Ceph RGW
EC2-APIec2-api-metadata-DienstVon der Cloud-Native-Plattform übernommenKubeVirt (cloud-init)
EC2-APIDateisperre pro Host für das Standard-VPCVereinfachte interne Mechanik—

Konsole und Werkzeuge

ModulAusgelassene FunktionKindÜbernommen von
Skylinenginx und skyline-nginx-generatorVereinfachte interne Mechanik—
SkylineZulässige CORS-OriginsUpstream veraltet oder ungenutzt—
SkylineFastAPI-Dokumentationsrouten und Offline-GeneratorenVereinfachte interne Mechanik—
ok (CLI)Interaktive cmd2-ShellVereinfachte interne Mechanik—
ok (CLI)Separat installierte Python-PluginsVereinfachte interne Mechanik—
okadmHost-Vorbereitung per SSH und Ansible-InventarVon der Cloud-Native-Plattform übernommenKubernetes
okadmlibvirt- und OVS-Agenten auf den HostsVon der Cloud-Native-Plattform übernommenKubeVirt, OVN, CSI
okadmVon Hand bereitgestellte MariaDB, RabbitMQ und MemcachedVon der Cloud-Native-Plattform übernommenKubernetes-Operatoren
okadmWerkzeugkette aus Python, Ansible und helm oder kubectlVereinfachte interne Mechanik—

Noch nicht erledigte Arbeit ist hier nicht aufgeführt: Sie steht in den Known gaps der docs/CONFORMANCE.md jedes Moduls.