Skip to content

Component Interaction

Cross-Cluster Communication

The four core Kubernetes clusters (plus the optional Arbiter Cluster) communicate via various protocols and APIs:

text
┌────────────────────────────────────────────────────────────────────────────────┐
│                           CROSS-CLUSTER COMMUNICATION                          │
├────────────────────────────────────────────────────────────────────────────────┤
│                                                                                │
│  ┌──────────────────┐                           ┌──────────────────┐           │
│  │ MANAGEMENT       │◀══════ Metrics/Logs ══════│ CONTROL PLANE    │           │
│  │ CLUSTER          │                           │ CLUSTER          │           │
│  │                  │══ OpenBao Secrets (ESO) ═▶│                  │           │
│  │ OpenBao   ───────┼───────────────────────────┼─▶ ESO            │           │
│  │ Greenhouse ◀─────┼───────────────────────────┼─ Prometheus Fed. │           │
│  │ Aurora     ◀─────┼───────────────────────────┼─ API Aggregation │           │
│  └────────┬─────────┘                           └────────┬─────────┘           │
│           │                                              │                     │
│           │ Metrics/Logs                                 │ K8s API             │
│           │                                              │ OpenStack API       │
│           │                                              │                     │
│  ┌────────▼─────────┐                           ┌────────▼─────────┐           │
│  │ HYPERVISOR       │◀══════ K8s API ═══════════│ Control Plane    │           │
│  │ CLUSTER          │                           │ Services         │           │
│  │                  │                           │                  │           │
│  │ Hypervisor Op ───┼── watches K8s Nodes       │ Nova API         │           │
│  │ Hyp. Node Agent  │                           │ Neutron API      │           │
│  │ HA Agent ────────┼── Eviction/Migration CRDs │ Keystone/Glance  │           │
│  │ Nova Agent ──────┼───────────────────────────┼─▶ Cortex         │           │
│  │ ovn-controller   │                           │                  │           │
│  └────────┬─────────┘                           └────────┬─────────┘           │
│           │                                              │                     │
│           │ RBD/iSCSI                                    │ Ceph Admin          │
│           │ Block Storage                                │ Arbiter Mgmt        │
│           │                                              │                     │
│           │           ┌──────────────────┐               │                     │
│           └──────────▶│ STORAGE          │◀──────────────┘                     │
│                       │ CLUSTER          │                                     │
│                       │                  │                                     │
│                       │ Ceph MON/OSD     │        ┌──────────────────┐         │
│                       │ Rook Operator    │        │ ARBITER CLUSTER  │         │
│                       │ RBD/RadosGW      │        │ (Optional/Remote)│         │
│                       │                  │        │                  │         │
│                       │ Ext. Arbiter Op ─┼───────▶│ External MON     │         │
│                       │                  │  K8s   │ (Quorum only)    │         │
│                       └──────────────────┘  API   └──────────────────┘         │
│                                                                                │
└────────────────────────────────────────────────────────────────────────────────┘

Communication Matrix

Source ClusterTarget ClusterProtocolPurpose
Control PlaneHypervisorOpenStack APINova Compute control
HypervisorControl PlaneKubernetes APICRD updates (Hypervisor status)
HypervisorStorageRBD/iSCSIVM block storage
StorageArbiter (Remote)Kubernetes APIExternal Arbiter MON deployment
ManagementControl PlanePrometheus Fed.Metrics aggregation
ManagementHypervisorPrometheus Fed.Metrics aggregation
ManagementStoragePrometheus Fed.Metrics aggregation
allManagement (OpenBao)HTTPSESO secret sync

For CRD definitions referenced in this chapter, see CRDs. For the multi-cluster architecture overview, see Architecture Overview.

Hypervisor Node Agents (in Hypervisor Cluster)

Each hypervisor node in the Hypervisor Cluster runs the following agents:

text
┌─────────────────────────────────────────────────────────────────────────────────┐
│                       Hypervisor Node (Hypervisor Cluster)                      │
├─────────────────────────────────────────────────────────────────────────────────┤
│                                                                                 │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────┐ │
│  │  Hypervisor Node Agent │  │    OVS Agent    │  │   Nova Agent    │  │ovn-controll.│ │
│  │  ─────────────  │  │  ─────────────  │  │  ─────────────  │  │ ─────────── │ │
│  │  - LibVirt      │  │  - OVS Status   │  │  - Compute Svc  │  │ - OVN→OVS   │ │
│  │    Introspect   │  │  - Bridge Info  │  │  - VM Lifecycle │  │ - Security  │ │
│  │  - Hypervisor   │  │  - Flow Stats   │  │  - Resources    │  │   Groups    │ │
│  │    CRD Status   │  │  - Bond Health  │  │  - Placement    │  │ - Metadata  │ │
│  │  - Migration    │  │  - OVSNode CRD  │  │                 │  │             │ │
│  │    Tracking     │  │    Status       │  │                 │  │             │ │
│  └────────┬────────┘  └────────┬────────┘  └────────┬────────┘  └──────┬──────┘ │
│           │                    │                    │                  │        │
│           │ K8s API            │ K8s API            │ AMQP             │ OVSDB  │
│           │ (Hypervisor        │ (Hypervisor        │ (Control Plane   │        │
│           │  Cluster)          │  Cluster)          │  Cluster)        │        │
│           └────────────────────┴────────────────────┴──────────────────┘        │
│                                                                                 │
│  ┌───────────────────────────────────┐  ┌─────────────────────────────────────┐ │
│  │             LibVirt               │  │           ovs-vswitchd              │ │
│  │                                   │  │                                     │ │
│  │  ┌─────────────────────────────┐  │  │  ┌─────────┐ ┌────────┐ ┌────────┐  │ │
│  │  │ HA Agent                    │  │  │  │  br-int │ │ br-ex  │ │br-prov │  │ │
│  │  │ - Domain Event Subscription │  │  │  │(Integr.)│ │(Extern)│ │(Provid)│  │ │
│  │  │ - Lifecycle/Watchdog Events │  │  │  └────┬────┘ └───┬────┘ └───┬────┘  │ │
│  │  │ - Eviction/Migration CRDs   │  │  │       │          │          │       │ │
│  │  └─────────────────────────────┘  │  │       └──────────┴──────────┘       │ │
│  │                                   │  │                   │                 │ │
│  │  ┌────────┐┌────────┐┌────────┐   │  │                   ▼                 │ │
│  │  │  VM 1  ││  VM 2  ││  VM N  │───┼──┼──▶ vNICs ◀───────────────────────   │ │
│  │  └────────┘└────────┘└────────┘   │  │                                     │ │
│  │              │                    │  └─────────────────────────────────────┘ │
│  │              │ RBD (Ceph)         │                    │                     │
│  │              ▼                    │                    ▼                     │
│  └───────────────────────────────────┘        Physical NICs (Bonds)             │
│                                                                                 │
│  ┌─────────────────────────────────────────────────────────────────────────────┐│
│  │ GardenLinux (Optimized Linux for Hypervisor Nodes)                          ││
│  └─────────────────────────────────────────────────────────────────────────────┘│
│                                                                                 │
└─────────────────────────────────────────────────────────────────────────────────┘

Agent Overview:

AgentRepositoryCRD UpdatesCommunication
Hypervisor Node Agentcobaltcore-dev/kvm-node-agentHypervisor, MigrationK8s API, LibVirt TCP
OVS Agentc5c3/c5c3-operator/agents/ovs-agentOVSNodeK8s API, OVSDB
HA Agent(Part of Hypervisor Node Agent)Eviction, MigrationLibVirt Events
Nova Agent(OpenStack Nova)-AMQP (RabbitMQ)
ovn-controller(OVN)-OVSDB, OVN SB

For CRD definitions (Hypervisor, Eviction, Migration, OVSNode), see CRDs. For the HA Agent event handling, see High Availability. For the OVS bridge layout, see Network Architecture.

Node-Internal System Integration

ComponentCommunication TypePurpose
LibVirt (libvirtd)TCP Port 16509 (qemu+tcp:// or ch+tcp://)Virtualization API (VM lifecycle, introspection, live migration)
Linux NetworkingKernel APIsNetwork and security management
os_vifPython APIVirtual interface management
systemd/JournaldD-Bus / Journal APIService and log management
OVS/OVNOVSDBSoftware-defined networking

For details on storage connectivity (Ceph RBD), see Storage Architecture. For hypervisor lifecycle states, see Hypervisor Lifecycle.