<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-zhou-crosscloud-orchestration-01" category="info" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="DRO-DS">Cross-Domain Cloud-Native Resource Orchestration Framework with Dynamic Weight-Based Scheduling</title>
    <seriesInfo name="Internet-Draft" value="draft-zhou-crosscloud-orchestration-01"/>
    <author initials="C." surname="Zhou" fullname="Chengyu Zhou" role="editor">
      <organization>Huazhong University of Science and Technology</organization>
      <address>
        <postal>
          <street>1037 Luoyu Road, Hongshan Distric</street>
          <city>Wuhan</city>
          <region>Hubei Province</region>
          <code>430074</code>
          <country>CN</country>
        </postal>
        <phone>13375002396</phone>
        <email>m202474228@hust.edu.cn</email>
      </address>
    </author>
    <author initials="Y." surname="Mo" fullname="Yijun Mo">
      <organization>Huazhong University of Science and Technology</organization>
      <address>
        <email>moyj@hust.edu.cn</email>
      </address>
    </author>
    <author initials="H." surname="Liu" fullname="Hongyang Liu">
      <organization>Huazhong University of Science and Technology</organization>
      <address>
        <email>3184035501@qq.com</email>
      </address>
    </author>
    <author initials="Y." surname="Pan" fullname="Yunhui Pan">
      <organization>Huazhong University of Science and Technology</organization>
      <address>
        <email>panyunhui121@163.com</email>
      </address>
    </author>
    <date year="2025" month="April" day="27"/>
    <area>Operations and Management Area</area>
    <workgroup>Operations and Management Area Working Group</workgroup>
    <keyword>multi-cluster</keyword>
    <keyword>resource scheduling</keyword>
    <abstract>
      <?line 55?>

<t>The Distributed Resource Orchestration and Dynamic Scheduling (DRO-DS) standard in cross-domain cloud-native environments aims to address the challenges of resource management and scheduling in multi-cloud architectures, providing a unified framework for efficient, flexible, and reliable resource allocation. As enterprise applications scale, the limitations of single Kubernetes clusters become increasingly apparent, particularly in terms of high availability, disaster recovery, and resource optimization. To address these challenges, DRO-DS introduces several innovative technologies, including dynamic weight-based scheduling, storage-transmission-compute integration mechanisms, follow-up scheduling, real-time monitoring and automated operations, as well as global views and predictive algorithms.</t>
    </abstract>
  </front>
  <middle>
    <?line 59?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>With the rapid development of cloud-native technologies, Kubernetes has become the de facto standard for container orchestration and management. However, as enterprises expand their applications to handle larger workloads, the limitations of single-domain Kubernetes deployments become evident, particularly in terms of high availability, disaster recovery, and resource management. To address these challenges, many organizations have adopted multi-cloud architectures, which offer benefits such as cost optimization, geographic redundancy, and environmental isolation.</t>
      <t>Despite the advantages of multi-cloud architectures, they also introduce new challenges. Each Kubernetes cluster typically resides in an isolated subnet, forming "resource silos" that hinder elastic resource sharing and lead to load imbalances across network domains. This results in inefficient resource utilization and potential waste. To overcome these issues, the Kubernetes community introduced KubeFed V2, a multi-cluster federation scheduler. However, KubeFed V2 has several limitations, including static weight-based scheduling, insufficient support for stateful services, and limited real-time monitoring capabilities.</t>
      <t>To address these shortcomings, there is an urgent need for a new cross-domain scheduling engine capable of dynamically managing and optimizing resources across multiple domains, providing robust support for stateful services, and offering comprehensive real-time monitoring and automation capabilities. This document proposes the Distributed Resource Orchestration and Dynamic Scheduling (DRO-DS) standard for cross-domain cloud-native environments, designed to meet these requirements. This document normatively references <xref target="RFC5234"/> and provides additional information in <xref target="KubernetesDocs"/> and <xref target="KarmadaDocs"/>.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="scope">
      <name>Scope</name>
      <t>This standard provides a unified framework for distributed resource management across cloud service providers, regions, and heterogeneous computing environments. It is primarily applicable to scenarios such as cross-domain resource orchestration in multi-cloud architectures (e.g., hybrid deployments on AWS/Azure/GCP), distributed resource scheduling (e.g., resource coordination between eastern and western data centers), unified management of heterogeneous computing environments (e.g., CPU/GPU/FPGA hybrid architectures), and cross-domain high-availability deployment of stateful services (e.g., databases, message queues). The technical implementation boundary is strictly limited to resource abstraction layer scheduling strategies and does not involve specific details of underlying network infrastructure. It adheres to the principle of cloud service provider neutrality and does not mandate specific vendor implementation solutions.</t>
      <t>The intended audience for this standard includes multi-cloud architecture designers, cloud-native platform developers, and distributed system operations engineers. As an enhanced extension component of existing single-cluster schedulers (e.g., the Kubernetes default scheduler), this standard does not replace basic scheduling functionalities. Instead, it introduces innovative mechanisms such as dynamic weight-based scheduling and storage-transmission-compute integration to achieve collaborative optimization of cross-domain resources. The technical specifications focus on control plane architecture design, scheduling process standardization, and API interface definitions, while maintaining openness to specific implementation technologies on the data plane.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <section anchor="definitions">
        <name>Definitions</name>
        <ul spacing="normal">
          <li>
            <t><strong>Cross-Domain</strong>: Refers to multiple independent Kubernetes clusters or cloud environments.</t>
          </li>
          <li>
            <t><strong>Distributed Resource Orchestration (DRO)</strong>: The process of managing and coordinating resources across multiple domains.</t>
          </li>
          <li>
            <t><strong>Storage-Transmission-Compute Integration (STCI)</strong>: A method for unified management of storage, data transmission, and computing resources.</t>
          </li>
          <li>
            <t><strong>Resource Water Level (RWL)</strong>: A metric representing the proportion of current resource usage relative to total available resources.</t>
          </li>
          <li>
            <t><strong>Global View (GV)</strong>: A comprehensive overview of all domain resources and their states.</t>
          </li>
          <li>
            <t><strong>Follow-Up Scheduling (FS)</strong>: A scheduling mechanism that ensures consistency and efficiency of stateful services across domains.</t>
          </li>
        </ul>
      </section>
      <section anchor="abbreviation">
        <name>Abbreviation</name>
        <ul spacing="normal">
          <li>
            <t><strong>Kubernetes (K8s)</strong>: An open-source container orchestration platform.</t>
          </li>
          <li>
            <t><strong>Cloud-Native</strong>: Applications and services specifically designed to leverage cloud computing platforms.</t>
          </li>
          <li>
            <t><strong>Dynamic Scheduling (DS)</strong>: A scheduling mechanism that adapts to real-time resource availability and demand.</t>
          </li>
          <li>
            <t><strong>Application Programming Interface (API)</strong>: A set of rules and protocols for building and interacting with software applications.</t>
          </li>
          <li>
            <t><strong>Key-Value Store (KV Store)</strong>: A type of database that stores, retrieves, and manages data using a simple key-value method.</t>
          </li>
          <li>
            <t><strong>Predictive Algorithm (PA)</strong>: An algorithm that forecasts future resource demands based on historical data and current trends.</t>
          </li>
          <li>
            <t><strong>Stateful Service (SS)</strong>: Services such as databases and caches that maintain state between client interactions.</t>
          </li>
          <li>
            <t><strong>Real-Time Monitoring (RTM)</strong>: Continuous real-time monitoring of system health and resource usage.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>In this section, we introduce the challenges in this field and the functional requirements of DRO-DS.</t>
      <section anchor="background-and-challenges">
        <name>BACKGROUND AND CHALLENGES</name>
        <t>The cross-domain deployment of cloud-native technologies is undergoing a paradigm shift from single-domain to multi-cloud hybrid architectures. Industry practices indicate that enterprises commonly face systemic performance degradation caused by cross-cloud resource scheduling, exposing deep-seated design limitations of traditional scheduling mechanisms in dynamic heterogeneous environments. The fundamental contradictions are reflected in three aspects:</t>
        <section anchor="resource-fragmentation-challenges">
          <name>RESOURCE FRAGMENTATION CHALLENGES</name>
          <ul spacing="normal">
            <li>
              <t>Differences in resource abstraction models across heterogeneous cloud platforms create scheduling barriers. Fragmentation in virtual machine specifications, storage interfaces, and network QoS policies makes it difficult to construct a global resource view.</t>
            </li>
            <li>
              <t>Storage locality constraints and spatiotemporal mismatches in computing resource distribution lead to simultaneous resource idling and contention.</t>
            </li>
            <li>
              <t>Bandwidth fluctuations and cost sensitivity in cross-domain network transmission significantly increase the complexity of scheduling strategies.</t>
            </li>
          </ul>
        </section>
        <section anchor="scheduling-latency-bottlenecks">
          <name>SCHEDULING LATENCY BOTTLENECKS</name>
          <ul spacing="normal">
            <li>
              <t>Periodic polling-based state awareness mechanisms struggle to capture instantaneous load changes, resulting in decision biases during traffic burst scenarios.</t>
            </li>
            <li>
              <t>The cumulative delay effect of cross-domain communication in the control plane causes policy synchronization lags, which worsen nonlinearly in large-scale network domain scenarios.</t>
            </li>
            <li>
              <t>Static resource allocation strategies cannot adapt to the diurnal fluctuations of workloads, leading to resource mismatches.</t>
            </li>
          </ul>
        </section>
        <section anchor="operational-complexity-dilemmas">
          <name>OPERATIONAL COMPLEXITY DILEMMAS</name>
          <ul spacing="normal">
            <li>
              <t>Semantic differences in heterogeneous monitoring systems reduce the efficiency of root cause analysis.</t>
            </li>
            <li>
              <t>The cross-domain extension of service dependency chains results in fault propagation paths with mesh topology characteristics.</t>
            </li>
            <li>
              <t>Implicit errors caused by environmental configuration drift are exponentially amplified in cross-domain scheduling scenarios.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="function-requirements-of-dro-ds">
        <name>Function Requirements of DRO-DS</name>
        <t>DRO-DS should support the following functionalities:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Unified Abstraction and Modeling of Cross-Domain Resources</strong>: The system must establish a standardized resource description framework, supporting unified semantic mapping of resources such as virtual machines, storage, and networks in multi-cloud heterogeneous environments. This eliminates differences in resource specifications and interface policies across cloud platforms, enabling discoverability, measurability, and collaborative management of global resources, thereby addressing scheduling barriers caused by resource fragmentation.</t>
          </li>
          <li>
            <t><strong>Dynamic Weight Elastic Scheduling Mechanism</strong>: Based on real-time domain resource water levels, load states, and network topology data, dynamically calculate scheduling weight coefficients for each domain. Automatically adjust resource allocation directions based on task priorities and business policies to achieve balanced distribution in high-load scenarios and resource aggregation in low-load scenarios, overcoming the latency bottlenecks of static scheduling strategies.</t>
          </li>
          <li>
            <t><strong>Topology-Aware Scheduling for Stateful Services</strong>: For stateful services such as databases and message queues, integrate network latency detection, storage locality constraint analysis, and service dependency relationship modeling to intelligently select the optimal deployment domain and provide smooth migration strategies, ensuring service continuity, data consistency, and fault recovery capabilities in cross-domain scenarios.</t>
          </li>
          <li>
            <t><strong>Integrated Storage-Transmission-Compute Collaborative Scheduling</strong>: Through data hotspot identification, hierarchical caching strategies, and incremental synchronization optimization, achieve tightly coupled decision-making for storage resource distribution, data transmission paths, and computing task scheduling, minimizing cross-domain data transfer overhead and improving resource utilization efficiency.</t>
          </li>
          <li>
            <t><strong>Cross-Domain Intelligent Monitoring and Automated Operations</strong>: Build a unified collection and standardized transformation layer for heterogeneous monitoring data, support topology modeling and root cause analysis of service dependency chains, and automatically trigger operations such as scaling and failover based on predefined policies, reducing the complexity of manual intervention.</t>
          </li>
          <li>
            <t><strong>Elastic Scaling and Cost-Aware Optimization</strong>: Integrate historical load pattern analysis and multi-cloud cost models to achieve predictive resource pre-allocation and cost-performance-optimized scheduling strategies, support elastic resource provisioning for burst traffic, and optimize cross-cloud costs, avoiding resource mismatches and waste.</t>
          </li>
          <li>
            <t><strong>Cloud-Native Ecosystem Compatibility</strong>: Maintain API compatibility with mainstream container orchestration systems such as Kubernetes, support Custom Resource Definition (CRD) extensions and cross-domain federation management standards, avoid vendor lock-in, and reduce adaptation costs for existing architectures.</t>
          </li>
        </ol>
      </section>
      <section anchor="system-interaction-model">
        <name>System Interaction Model</name>
        <section anchor="control-plane-model">
          <name>Control Plane Model</name>
          <t>In multi-domain environments, to effectively manage multiple domains, a dedicated control plane is necessary to handle domain joining/eviction, state management, and application scheduling. The control plane is logically separated from the domains (data plane) where applications actually run. Depending on enterprise needs and scale, the control plane in a DRO-DS-based management/control architecture can adopt two deployment modes: control plane with dedicated domain resources and control plane sharing domain resources with the data plane.</t>
          <section anchor="control-plane-with-dedicated-domain-resources">
            <name>Control Plane with Dedicated Domain Resources</name>
            <t>In this mode, control plane components exclusively occupy one or more dedicated domains as "control domains" for executing all multi-domain management decisions. These control domains do not run actual business applications but focus on managing the state and scheduling of other worker domains. Control domains can ensure high availability through election mechanisms, avoiding single points of failure. Worker domains contain multiple "worker nodes," each running actual business applications. As shown in Figure 1, the control plane and data plane are physically isolated, ensuring system stability and security. Deploying multiple control domains achieves high availability of the control plane, preventing system-wide failures due to a single control domain failure. This deployment mode is suitable for complex, large-scale multi-domain environments with high isolation and stability requirements.</t>
            <figure>
              <name>Control Plane with Dedicated Domain Resources</name>
              <artwork><![CDATA[
+---------------------------------------------------------+
| Control Plane                                           |
|       +---------------------------------------------+   |
|       |   cross-domain Management Components        |   |
|       +---------------------------------------------+   |
+---------------------------------------------------------+
                           |
                           V
                     +---------------+
                     | control Flow  |
                     +---------------+
                           |
                           V
  +-------------------------------------------------+
  |     +--------------+      +--------------+      |
  |     |Worker Cluster|      |Worker Cluster|      |
  |     |              |      |              |      |
  |     |app1 app2 ....|      |app1 app2 ... |      |
  |     +--------------+      +--------------+      |
  | Data Plane                                      |
  +-------------------------------------------------+
]]></artwork>
            </figure>
          </section>
          <section anchor="control-plane-sharing-domain-resources-with-data-plane">
            <name>Control Plane Sharing Domain Resources with Data Plane</name>
            <t>In this mode, control plane components share the same general domain with business applications. Control plane components determine master-slave relationships through election mechanisms, with the master control plane responsible for management decisions across all general domains. This deployment approach simplifies infrastructure and reduces resource costs but may lead to mutual interference between the control plane and data plane. As shown in Figure 2, this mode does not require additional dedicated control domains, resulting in lower overall resource usage. It is suitable for small-scale multi-domain environments with relatively simple deployment and maintenance.</t>
            <figure>
              <name>Control Plane Sharing Domain Resources with Data Plane</name>
              <artwork><![CDATA[
+-------------------------+                      +-------------------------+    
|  +--------------------+ |   +--------------+   |  +--------------------+ |    
|  | control Components | | <-| control Flow |-> |  | control Components | |
|  +--------------------+ |   +--------------+   |  +--------------------+ |  
|    app1 app2 ......     |                      |   app1 app2 ......      |    
+-------------------------+                      +-------------------------+
]]></artwork>
            </figure>
          </section>
        </section>
        <section anchor="network-model">
          <name>Network Model</name>
          <t>In the network model, multiple domains (whether based on the same or different cloud providers) typically operate in network isolation, each within its own subnet. Therefore, ensuring network connectivity becomes a critical issue in multi-domain collaboration. The network connectivity between domains depends on specific usage scenarios. For example, in tenant isolation scenarios, strict network isolation is required between domains of different tenants to ensure security; in high availability or elastic scaling scenarios, business applications may require east-west network access, ensuring that applications can communicate with each other regardless of the domain they run in. Additionally, the multi-domain control plane must be able to connect to all domains to implement management decisions. To achieve inter-domain connectivity, the following two approaches can be used.</t>
          <section anchor="gateway-routing">
            <name>Gateway Routing</name>
            <t>Gateway routing is a method of achieving cross-domain communication by deploying gateways in each domain. Specifically, gateways are responsible for forwarding packets from one domain to the target address in another domain. This approach is similar to the multi-network model in service meshes (e.g., Istio), where cross-domain business application network activities are forwarded by gateways, ensuring service-to-service communication.</t>
          </section>
          <section anchor="overlay-network-overlay">
            <name>Overlay Network Overlay</name>
            <t>An overlay network is a method of constructing a virtual network using tunneling technology, enabling multiple domains to be logically in the same virtual subnet despite being physically located in different clouds or VPCs, thereby achieving direct network connectivity. The core idea of an overlay network is to build tunnels over the Layer 3 network (IP network) to transmit Layer 2 packets (e.g., Ethernet frames), forming a flat virtual network.</t>
          </section>
        </section>
        <section anchor="service-discovery-and-governance">
          <name>Service Discovery and Governance</name>
          <t>In this standard, a cross-domain service (Multi-Cluster Service) refers to a collection of service instances spanning multiple domains, and its management and discovery mechanisms follow the definitions in [KEP-1645]. Cross-domain services allow applications to perform consistent service registration, discovery, and access across multiple domains, ensuring seamless operation of business applications regardless of their domain location. Service registration information is written to the KV Store via the API Server, and the scheduler makes cross-domain service routing decisions based on the global service directory, with the monitoring system synchronizing the health status of services in each domain in real time.</t>
        </section>
      </section>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <section anchor="logic-architecture">
        <name>Logic Architecture</name>
        <t>The architecture design references <xref target="KarmadaDocs"/>. This document provides a reference functional architecture for DRO-DS, as shown in Figure 1.</t>
        <figure>
          <name>Logic Architecture Of DRO-DS</name>
          <artwork><![CDATA[
+---------------------------------------------------------+
|                   Control Plane                         |
|  +-------------+       +-------------+       +--------+ |
|  | API Server  <------->  Scheduler  <------> KV Store| |
|  +------+------+       +------+------+       +--------+ |
|         |                     |                         |
|         v                     v                         |
|  +-------------+       +-------------+                  |
|  | Controller  |       | Monitoring  |                  |
|  | Manager     <-------> System      |                  |
|  +------+------+       +-------------+                  |
+---------|-----------------------|-----------------------+
          | (Management Commands) | (Metrics Collection)
          v                       v
+---------|-----------------------|------------------------+
|         |                       |                        |
|  +------v------+         +------v------+                 |
|  | Cluster 1   |         | Cluster 2   | ...             |
|  | (Data Plane)|         | (Data Plane)|                 |
|  +-------------+         +-------------+                 |
+----------------------------------------------------------+
]]></artwork>
        </figure>
        <t>The DRO-DS architecture aims to provide a unified framework for resource management and scheduling across multiple domains in cloud-native environments. The key components of the architecture include:</t>
        <ul spacing="normal">
          <li>
            <t><strong>DRO-DS API Server</strong>: The DRO-DS API Server serves as the central hub for receiving and distributing scheduling requests. It communicates with other system components, coordinates commands, and ensures that tasks are properly scheduled and executed. The API Server supports both synchronous and asynchronous communication, allowing flexible integration with various tools and systems.</t>
          </li>
          <li>
            <t><strong>DRO-DS Scheduler</strong>: The DRO-DS Scheduler is responsible for the core resource scheduling tasks. It integrates the characteristics of resources across three dimensions - network, storage, and computing power - to construct a multi-modal network resource scheduling framework. It intelligently allocates these resources to ensure optimal performance and resource utilization. The scheduler employs the Storage-Transmission-Compute Integration (STCI) method, tightly coupling storage, data transmission, and computing to minimize unnecessary data movement and improve data processing efficiency.  </t>
            <t>
The scheduler uses a dynamic weight-based scheduling mechanism, where the weight assigned to each domain is determined by its Resource Water Level (RWL) - a metric that reflects the proportion of current resource usage relative to total available resources. This dynamic approach enables the scheduler to adapt to changes in resource availability and demand, ensuring balanced resource allocation across domains.</t>
          </li>
          <li>
            <t><strong>DRO-DS Controller Manager</strong>: The DRO-DS Controller Manager consists of a set of controllers for managing both native and custom resources. It communicates with the API Servers of individual domains to create and manage Kubernetes resources. The Controller Manager abstracts all domains into a unified Cluster-type resource, enabling seamless cross-domain resource and service discovery. This component also ensures consistent management of stateful services such as databases and caches across domains.</t>
          </li>
          <li>
            <t><strong>DRO-DS Monitoring System</strong>: The DRO-DS Monitoring System provides real-time visibility into the health status and resource usage of all domains. It collects and analyzes metrics from each domain, offering comprehensive monitoring data to help operators quickly identify and resolve issues. The Monitoring System supports automated operations, automatically adjusting scheduling strategies based on real-time resource usage and system health. This ensures high availability and efficiency of the system even under changing conditions.</t>
          </li>
          <li>
            <t><strong>Key-Value Store (KV Store)</strong>: The KV Store is a distributed key-value database that stores metadata about the system, ensuring consistency and reliability across all domains. It supports the Global View (GV) of the system, enabling the scheduler to make informed decisions based on a comprehensive understanding of resource availability and usage. The KV Store also facilitates the implementation of Predictive Algorithms (PA), which forecast future resource demands based on historical data and current trends.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="api-specification">
      <name>API Specification</name>
      <section anchor="general-conventions">
        <name>General Conventions</name>
        <ul spacing="normal">
          <li>
            <t><strong>Authentication Method</strong>: The Bearer Token authentication mechanism is used, with the request header including <tt>"Authorization: Bearer &lt;jwt_token&gt;"</tt>.</t>
          </li>
          <li>
            <t><strong>Version Control Policy</strong>: All interface paths start with <tt>"/api/v1/"</tt>, and in the event of a subsequent version upgrade, the path changes to <tt>"/api/v2/"</tt>.</t>
          </li>
          <li>
            <t><strong>Error Code Specification</strong>: The error response body includes the following fields:
            </t>
            <ul spacing="normal">
              <li>
                <t><tt>code</tt>: The error code (e.g., <tt>CLUSTER_NOT_FOUND</tt>).</t>
              </li>
              <li>
                <t><tt>message</tt>: A human-readable error description.</t>
              </li>
              <li>
                <t><tt>details</tt>: An error detail object.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t><strong>Example error response</strong>:</t>
        <sourcecode type="json"><![CDATA[
{
  "code": "POLICY_CONFLICT",
  "message": "Policy name already exists",
  "details": {"policyName": "default-policy"}
}
]]></sourcecode>
      </section>
      <section anchor="control-plane-api">
        <name>Control Plane API</name>
        <section anchor="cluster-management-interface">
          <name>Cluster Management Interface</name>
          <ul spacing="normal">
            <li>
              <t><strong>Interface Path</strong>: <tt>/api/v1/clusters</tt></t>
            </li>
            <li>
              <t><strong>Methods and Functions</strong>:  </t>
              <ul spacing="normal">
                <li>
                  <t><tt>GET</tt>: Retrieve a list of all registered domains.</t>
                </li>
                <li>
                  <t><tt>POST</tt>: Register a new domain.</t>
                </li>
              </ul>
              <sourcecode type="json"><![CDATA[
{
  #Request example
  "name": "gcp-production",
  "endpoint": "https://k8s.gcp.example",
  "capabilities": ["gpu", "tls-encryption"]
}
]]></sourcecode>
              <ul spacing="normal">
                <li>
                  <t><tt>DELETE /{clusterName}</tt>：解除域注册。</t>
                </li>
              </ul>
            </li>
          </ul>
        </section>
        <section anchor="policy-management-interface">
          <name>Policy Management Interface</name>
          <ul spacing="normal">
            <li>
              <t><strong>Interface Path</strong>: <tt>/api/v1/propagationpolicies</tt></t>
            </li>
            <li>
              <t><strong>Methods and Functions</strong>:  </t>
              <ul spacing="normal">
                <li>
                  <t><tt>POST</tt>: Create a resource propagation policy.</t>
                </li>
              </ul>
              <sourcecode type="json"><![CDATA[
{
  #Request example
  "name": "cross-region-policy",
  "resourceType": "Deployment",
  "targetClusters": ["aws-us-east", "azure-europe"]
}
]]></sourcecode>
              <ul spacing="normal">
                <li>
                  <t><tt>PATCH /{policyName}</tt>: Update a policy using the<tt>application/merge-patch+json</tt> format.</t>
                </li>
              </ul>
            </li>
          </ul>
        </section>
        <section anchor="resourceplacementpolicy-interface">
          <name>ResourcePlacementPolicy <strong>Interface</strong></name>
          <ul spacing="normal">
            <li>
              <t><strong>Interface Path</strong>: <tt>/apis/multicluster.io/v1alpha1/resourceplacementpolicies</tt></t>
            </li>
            <li>
              <t><strong>Methods and Functions</strong>:  </t>
              <ul spacing="normal">
                <li>
                  <t><tt>GET</tt>: Retrieve a list of all resource placement policies or query a specific policy.</t>
                </li>
                <li>
                  <t><tt>POST</tt>: Create a resource placement policy, defining the target domains for resource distribution.</t>
                </li>
                <li>
                  <t><tt>DELETE /{policyName}</tt>: Delete a specified placement policy.</t>
                </li>
              </ul>
              <sourcecode type="yaml"><![CDATA[
  #POST creation example
  apiVersion: multicluster.io/v1alpha1
  kind: ResourcePlacementPolicy
  metadata:
    name: webapp-placement
  spec:
    resourceSelector:
      apiVersion: apps/v1
      kind: Deployment
      name: webapp
      namespace: production
    targetClusters:
      - selectorType: name  # Supports "name" or "label"
        values: ["cluster-east", "cluster-west"]
]]></sourcecode>
            </li>
          </ul>
        </section>
        <section anchor="clusteroverridepolicy-interface">
          <name>ClusterOverridePolicy Interface</name>
          <ul spacing="normal">
            <li>
              <t><strong>Interface Path</strong>: <tt>/apis/multicluster.io/v1alpha1/clusteroverridepolicies</tt></t>
            </li>
            <li>
              <t><strong>Methods and Functions</strong>:  </t>
              <ul spacing="normal">
                <li>
                  <t><tt>GET</tt>: Retrieve a list of all override policies or query a specific policy.</t>
                </li>
                <li>
                  <t><tt>POST</tt>: Create an override policy for a specific domain, overriding the configuration of resources in that domain.</t>
                </li>
                <li>
                  <t><tt>DELETE /{policyName}</tt>: Delete a specified override policy.</t>
                </li>
              </ul>
              <sourcecode type="yaml"><![CDATA[
  # POST creation example
    apiVersion: multicluster.io/v1alpha1
    kind: ClusterOverridePolicy
    metadata:
      name: gpu-override
    spec:
      resourceSelector:
        apiVersion: apps/v1
        kind: Deployment
        name: ai-model
        namespace: default
      overrides:
        - clusterSelector: 
            names: ["gpu-cluster"]
          fieldPatches:
            - path: spec.template.spec.containers[0].resources.limits
              value: {"nvidia.com/gpu": 2}
]]></sourcecode>
            </li>
          </ul>
        </section>
        <section anchor="task-scheduling-interface">
          <name>Task Scheduling Interface</name>
          <ul spacing="normal">
            <li>
              <t><strong>Interface Path</strong>: <tt>/api/v1/bindings</tt></t>
            </li>
            <li>
              <t><strong>Methods and Functions</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t><tt>POST</tt>: Trigger a cross-domain scheduling task.</t>
                </li>
                <li>
                  <t><tt>GET /{bindingId}/status</tt>: Query the status of a scheduling task.</t>
                </li>
              </ul>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="data-plane-api">
        <name>Data Plane API</name>
        <section anchor="resource-reporting-interface">
          <name>Resource Reporting Interface</name>
          <ul spacing="normal">
            <li>
              <t><strong>Interface Path</strong>: <tt>/api/v1/metrics</tt></t>
            </li>
            <li>
              <t><strong>Methods and Functions</strong>:  </t>
              <ul spacing="normal">
                <li>
                  <t><tt>PUT</tt>: Report real-time resource metrics for a domain.      </t>
                  <sourcecode type="json"><![CDATA[
{
  # Request example
  "cluster": "aws-us-east",
  "timestamp": "2023-07-20T08:30:00Z",
  "cpuUsage": 72.4,
  "memoryAvailable": 15.2
}
]]></sourcecode>
                </li>
                <li>
                  <t><tt>POST /events</tt>：Push domain event notifications.</t>
                </li>
              </ul>
            </li>
          </ul>
        </section>
        <section anchor="status-synchronization-interface">
          <name>Status Synchronization Interface</name>
          <ul spacing="normal">
            <li>
              <t><strong>Interface Path</strong>: <tt>/api/v1/sync</tt></t>
            </li>
            <li>
              <t><strong>Methods and Functions</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t><tt>PUT /configs</tt>: Synchronize domain configuration information.</t>
                </li>
                <li>
                  <t><tt>POST /batch</tt>: Batch synchronization of status (supports up to 1000 objects per request).</t>
                </li>
              </ul>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="monitoring-api">
        <name>Monitoring API</name>
        <section anchor="real-time-query-interface">
          <name>Real-time Query Interface</name>
          <ul spacing="normal">
            <li>
              <t><strong>Interface Path</strong>: <tt>/api/v1/monitor</tt></t>
            </li>
            <li>
              <t><strong>Methods and Functions</strong>:  </t>
              <ul spacing="normal">
                <li>
                  <t><tt>GET /realtime</tt>: Retrieve a real-time resource monitoring view.      </t>
                  <sourcecode type="json"><![CDATA[
{
  # Response example
  "activeClusters": 8,
  "totalPods": 2450,
  "networkTraffic": "1.2Gbps"
}
]]></sourcecode>
                </li>
              </ul>
            </li>
          </ul>
        </section>
        <section anchor="historical-data-interface">
          <name>Historical Data Interface</name>
          <ul spacing="normal">
            <li>
              <t><strong>Interface Path</strong>: <tt>/api/v1/history</tt></t>
            </li>
            <li>
              <t><strong>Methods and Functions</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t><tt>GET /schedules</tt>: Query historical scheduling records.
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t><tt>startTime</tt>: Start time (in ISO8601 format).</t>
                    </li>
                    <li>
                      <t><tt>endTime</tt>: End time.</t>
                    </li>
                    <li>
                      <t><tt>maxEntries</tt>: Maximum number of entries to return (default is 100).</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t><tt>GET /failures</tt>: Retrieve system failure history logs.</t>
                </li>
              </ul>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="scheduling-process">
      <name>Scheduling Process</name>
      <t>The DRO-DS scheduling process is designed to be modular and extensible, allowing for customization and adaptation to different environments. The process consists of four main steps:</t>
      <section anchor="initializing-scheduling-tasks">
        <name>Initializing Scheduling Tasks</name>
        <ol spacing="normal" type="1"><li>
            <t><strong>Task Request Reception</strong>: The system receives a new scheduling task request, which includes information about the nature of the task, its priority, and resource requirements.</t>
          </li>
          <li>
            <t><strong>Parameter Validation</strong>: The system validates the task parameters to ensure their integrity and legality.</t>
          </li>
          <li>
            <t><strong>Task Identification</strong>: A unique identifier is assigned to the task to track and manage it throughout the scheduling process.</t>
          </li>
        </ol>
      </section>
      <section anchor="collecting-domain-resource-information">
        <name>Collecting Domain Resource Information</name>
        <ol spacing="normal" type="1"><li>
            <t><strong>Total Resource Query</strong>: The system queries each domain to determine the total available resources, including computing, storage, and network capacity.</t>
          </li>
          <li>
            <t><strong>Single Node Maximum Resource Query</strong>: The system checks the maximum available resources of each node within a domain to prevent resource fragmentation and scheduling failure.</t>
          </li>
        </ol>
      </section>
      <section anchor="formulating-scheduling-policies">
        <name>Formulating Scheduling Policies</name>
        <ol spacing="normal" type="1"><li>
            <t><strong>Task Analysis</strong>: The submitted task is mapped through the network modality mapping module to its resource requirements across three dimensions: storage tier, network identifier, and computing power (GPU performance).</t>
          </li>
          <li>
            <t><strong>Domain Filtering</strong>: Based on the task's three-dimensional resource requirements and constraints specified in the application policy (such as region/cloud provider restrictions), domains with resource water levels exceeding limits are excluded, and unsuitable domains are filtered out.</t>
          </li>
          <li>
            <t><strong>Candidate Domain Scoring</strong>: The system evaluates the remaining candidate domains, considering factors such as current resource availability, task priority, resource constraints, and load balancing across domains. The weights of each factor are automatically adjusted based on real-time monitoring data, for example, increasing the network weight coefficient in scenarios with sudden traffic surges.</t>
          </li>
          <li>
            <t><strong>Optimal Domain Selection</strong>: The system selects the domain with the highest score to deploy the task.</t>
          </li>
        </ol>
      </section>
      <section anchor="resource-allocation-and-binding">
        <name>Resource Allocation and Binding</name>
        <ol spacing="normal" type="1"><li>
            <t><strong>Task Allocation</strong>: The system assigns the task to the selected domain to ensure its execution within the specified timeframe.</t>
          </li>
          <li>
            <t><strong>Resource Status Update</strong>: The system updates the resource status of the selected domain, recording the task assignment and resource utilization.</t>
          </li>
          <li>
            <t><strong>Notification and Execution</strong>: The system notifies the relevant modules of the task assignment and monitors its execution to ensure smooth operation.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This memo includes no request to IANA.</t>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <ul spacing="normal">
        <li>
          <t>The DRO-DS system must operate within a trusted environment, such as a private cloud or enterprise-level infrastructure, where security measures are already in place. However, to ensure the security of the system, in accordance with the privacy considerations in Section 7.5 of <xref target="RFC7644"/>, this standard requires the following measures when handling personally identifiable information:
          </t>
          <ul spacing="normal">
            <li>
              <t><strong>Authentication and Authorization</strong>: All communications between components must be authenticated and authorized to prevent unauthorized access.</t>
            </li>
            <li>
              <t><strong>Encryption</strong>: Sensitive data, such as task configurations and resource metadata, must be encrypted both at rest and in transit.</t>
            </li>
            <li>
              <t><strong>Audit Logs</strong>: Comprehensive audit logs must be maintained to track all system activities, facilitating troubleshooting and security investigations.</t>
            </li>
            <li>
              <t><strong>Isolation</strong>: Resources and services must be isolated to prevent cross-domain attacks and ensure that failures in one domain do not affect other domains.</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7644">
          <front>
            <title>System for Cross-domain Identity Management: Protocol</title>
            <author fullname="P. Hunt" initials="P." role="editor" surname="Hunt"/>
            <author fullname="K. Grizzle" initials="K." surname="Grizzle"/>
            <author fullname="M. Ansari" initials="M." surname="Ansari"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>The System for Cross-domain Identity Management (SCIM) specification is an HTTP-based protocol that makes managing identities in multi-domain scenarios easier to support via a standardized service. Examples include, but are not limited to, enterprise-to-cloud service providers and inter-cloud scenarios. The specification suite seeks to build upon experience with existing schemas and deployments, placing specific emphasis on simplicity of development and integration, while applying existing authentication, authorization, and privacy models. SCIM's intent is to reduce the cost and complexity of user management operations by providing a common user schema, an extension model, and a service protocol defined by this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7644"/>
          <seriesInfo name="DOI" value="10.17487/RFC7644"/>
        </reference>
        <reference anchor="RFC5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="KarmadaDocs" target="https://karmada.io/docs/">
          <front>
            <title>Karmada Documentation</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="KubernetesDocs" target="https://kubernetes.io/docs/home/">
          <front>
            <title>Kubernetes Documentation</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 496?>

<section numbered="false" anchor="Acknowledgements">
      <name>Acknowledgements</name>
      <t>This template uses extracts from templates written by
<contact fullname="Pekka Savola"/>, <contact fullname="Elwyn Davies"/> and
<contact fullname="Henrik Levkowetz"/>. [REPLACE]</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
