IP Library Granted Patent US 12,182,632
Granted Patent B2
US 12,182,632 · App. 18/177,607 · Granted Dec 31, 2024

Communications framework for multi-cluster management systems

Inventors: Matt Moyer (Kansas City, MO); Tao Jiang (Maple Grove, MN); Xavier Stevens (Portland, OR); Anusha Muthyampeta (Bellevue, WA); Fabio Yeon (Mill Creek, WA)
Assignee: VMware LLC
G06F9/5083G06F9/542G06F16/2282G06F16/24568G06F16/285
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,182,632
App. No.
18/177,607
Granted
Dec 31, 2024
Kind
B2
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 (44)

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.

2. 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.

3. 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.

4. 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.

5. 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.

6. 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.

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.

8. 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.

9. 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.

10. 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.

11. 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.

12. 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.

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.

14. 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.

15. 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.

16. 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.

17. 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.

18. 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.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2023
From: MOYER, MATT; JIANG, TAO; STEVENS, XAVIER; MUTHYAMPETA, ANUSHA; YEON, FABIO
To: VMWARE, INC.
Reel/Frame 062862/0723 →