# US 12,182,632 B2 · Communications framework for multi-cluster management systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,632 B2
- Document ID: US12182632B2
- Status: Granted
- Kind: B2
- Application number: 18/177,607
- Filed: 2023-03-02
- Published: 2023-06-29
- Granted: 2024-12-31
- Earliest claimed: 2020-04-14
- Assignees: VMware, Inc.
- Applicants: VMware LLC
- Inventors: Matt Moyer; Tao Jiang; Xavier Stevens; Anusha Muthyampeta; Fabio Yeon
- Web page: https://patentgrep.com/patent/US12182632B2

## CPC

- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06F 16/2282: {Tablespace storage structures; Management thereof}
- G06F 16/24568: {Data stream processing; Continuous queries}
- G06F 16/285: {Clustering or classification}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A framework for facilitating communication between a multi-cluster management (MCM) system and the clusters managed by the system is provided. According to one set of embodiments, the framework comprises two independent, unidirectional communications channels: a first channel (i.e., “intent channel”) that flows from the MCM system to each cluster, and a second channel (i.e., “data sync channel”) that flows from each cluster to the MCM system. Through the intent channel, the MCM system can deliver control information to each cluster for actuating management changes/operations therein in a manner that is robust against network dropouts and packet loss. Through the data sync channel, the MCM system can collect and process status information from each cluster (such as, e.g., object state transitions triggered by the control information sent via the intent channel) in a manner that can efficiently scale to support large numbers of clusters.

## Claims

### Claim 1

A method for facilitating communication between a multi-cluster management (MCM) system and a cluster managed by the MCM system, the method comprising:
transmitting, by a computer system running the MCM system, an object watch list to the cluster, the object watch list identifying objects maintained by the cluster that are of interest to the MCM system;
receiving, by the computer system, a stream of events from the cluster, the stream of events identifying state changes to the objects; and
for each event in the stream:
determining, by the computer system, a partition key for the event comprising an identifier of the cluster and a resource type of an object to which the event pertains; and
storing, by the computer system, the event in one of a plurality of partitions of a data platform of the MCM system based on the event's partition key, a first resource type from a first cluster being stored at a first partition, a second resource type from the first cluster being stored at a second partition to preserve relative ordering of events at the time the events are added to respective partitions in a streaming data platform.

### Claim 2 (depends on 1)

The method of claim 1 wherein the cluster is a Kubernetes cluster and wherein the objects are Kubernetes objects maintained in a Kubernetes data store of the cluster.

### Claim 3 (depends on 1)

The method of claim 1 wherein the data platform is a streaming data platform that allows data to published to and consumed from the data platform as streams of records.

### Claim 4 (depends on 1)

The method of claim 1 further comprising:
receiving, from a service of the MCM system, a request to consume a set of events held in one or more partitions of the data platform.

### Claim 5 (depends on 4)

The method of claim 4 wherein the service previously submitted a request to the cluster for creating one or more objects associated with the set of events.

### Claim 6 (depends on 4)

The method of claim 4 further comprising:
retrieving one or more record streams from the one or more partitions; and
providing the one or more record streams in parallel to the service.

### Claim 7

A non-transitory computer readable storage medium having stored thereon program code executable by a computer system running a multi-cluster management (MCM) system, the program code embodying a method for facilitating communication between the MCM system and a cluster managed by the MCM system, the method comprising:
transmitting an object watch list to the cluster, the object watch list identifying objects maintained by the cluster that are of interest to the MCM system;
receiving a stream of events from the cluster, the stream of events identifying state changes to the objects; and
for each event in the stream:
determining a partition key for the event comprising an identifier of the cluster and a resource type of an object to which the event pertains; and
storing the event in one of a plurality of partitions of a data platform of the MCM system based on the event's partition key, a first resource type from a first cluster being stored at a first partition, a second resource type from the first cluster being stored at a second partition to preserve relative ordering of events at the time the events are added to respective partitions in a streaming data platform.

### Claim 8 (depends on 7)

The non-transitory computer readable storage medium of claim 7 wherein the cluster is a Kubernetes cluster and wherein the objects are Kubernetes objects maintained in a Kubernetes data store of the cluster.

### Claim 9 (depends on 7)

The non-transitory computer readable storage medium of claim 7 wherein the data platform is a streaming data platform that allows data to published to and consumed from the data platform as streams of records.

### Claim 10 (depends on 7)

The non-transitory computer readable storage medium of claim 7 wherein the method further comprising:
receiving, from a service of the MCM system, a request to consume a set of events held in one or more partitions of the data platform.

### Claim 11 (depends on 10)

The non-transitory computer readable storage medium of claim 10 wherein the service previously submitted a request to the cluster for creating one or more objects associated with the set of events.

### Claim 12 (depends on 10)

The non-transitory computer readable storage medium of claim 10 wherein the method further comprises:
retrieving one or more record streams from the one or more partitions; and
providing the one or more record streams in parallel to the service.

### Claim 13

A computer system executing a multi-cluster management (MCM) system, the computer system comprising:
a processor; and
a non-transitory computer readable medium having stored thereon program code that, when executed by the processor, causes the processor to:
transmit an object watch list to the cluster, the object watch list identifying objects maintained by the cluster that are of interest to the MCM system;
receive a stream of events from the cluster, the stream of events identifying state changes to the objects; and
for each event in the stream:
determine a partition key for the event comprising an identifier of the cluster and a resource type of an object to which the event pertains; and
store the event in one of a plurality of partitions of a data platform of the MCM system based on the event's partition key, a first resource type from a first cluster being stored at a first partition, a second resource type from the first cluster being stored at a second partition to preserve relative ordering of events at the time the events are added to respective partitions in a streaming data platform.

### Claim 14 (depends on 13)

The computer system of claim 13 wherein the cluster is a Kubernetes cluster and wherein the objects are Kubernetes objects maintained in a Kubernetes data store of the cluster.

### Claim 15 (depends on 13)

The computer system of claim 13 wherein the data platform is a streaming data platform that allows data to published to and consumed from the data platform as streams of records.

### Claim 16 (depends on 13)

The computer system of claim 13 wherein the program code further causes the processor to:
receive, from a service of the MCM system, a request to consume a set of events held in one or more partitions of the data platform.

### Claim 17 (depends on 16)

The computer system of claim 16 wherein the service previously submitted a request to the cluster for creating one or more objects associated with the set of events.

### Claim 18 (depends on 16)

The computer system of claim 16 wherein the program code further causes the processor to:
retrieve one or more record streams from the one or more partitions; and
provide the one or more record streams in parallel to the service.
