Uploaded image for project: 'OpenShift Container Platform (OCP) Strategy'
  1. OpenShift Container Platform (OCP) Strategy
  2. OCPSTRAT-218

Hive in split control plane for etcd scaling

    XMLWordPrintable

Details

    • Feature
    • Resolution: Unresolved
    • Major
    • None
    • None
    • Core
    • False
    • Hide

      None

      Show
      None
    • False
    • OCPSTRAT-16OpenShift - Kubernetes and Core Platform
    • 100
    • 100% 100%
    • 0
    • 0

    Description

      Feature

      Hive in split control plane for etcd scaling

      Goal

      Why is this important?

      • ACM would like to run hive in a "split control plane" for etcd scaling purposes. See "Scenarios".

      Scenarios

      Customer wants to create/manage O(100k) spoke clusters from a single OCP cluster. Due to the number of objects each requires, etcd on one ACM+hive can handle O(1k). ACM proposes an architecture where:

      • ACM/MCE/Hive stacks are running in O(100) separate namespaces on a single OCP cluster. We'll call these "control planes".
      • Each control plane talks to a corresponding "data plane", a virtualized kube API server running in the same namespace, importantly with its own independent etcd.
      • A single "hub of hubs" ACM front end aggregates everything for management and observability. (Does this front end run in the big OCP cluster or elsewhere?) (Hive doesn't know/care about this layer.)
        In this model, all the "runnables" (containers in pods from deployments/statefulsets including controllers; containers in pods created from jobs for e.g. provision/deprovision; maybe other things??) need to be created/reconciled in the control planes; but all the other objects – hive CRs, the Secrets hive consumes, etc. – need to be created/reconciled in the data plane corresponding to that control plane.

      This means we need to teach hive to understand two API servers and manage the right objects in the right one.
From a hive API perspective, this is probably just one field in HiveConfig. Internally, we use different clients for the control plane and data plane objects.
The hard part is going to be figuring out which code paths need to use which clients, and validating that we didn't miss any 

       

      Attachments

        Activity

          People

            julim Ju Lim
            julim Ju Lim
            Bradd Weidenbenner, Eric Fried, Ju Lim, Mike Worthington
            Eric Fried Eric Fried
            Mingxia Huang Mingxia Huang
            Stephanie Stout Stephanie Stout
            Eric Fried Eric Fried
            Dave Mulford Dave Mulford
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated: