Control plane configuration

By using a pair of control switches in the container orchestration platform to form a control plane, efficient use of server rack space is achieved in edge deployment, solving the problem of excessive space occupation in traditional platforms and improving the computing resource utilization of the working node cluster.

CN115904608BActive Publication Date: 2025-09-12HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210435717.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-09-30
Filing Date
2022-04-24
Publication Date
2025-09-12
Estimated Expiration
2042-04-24

AI Technical Summary

Technical Problem

Traditional container orchestration platforms occupy too much server rack space in edge deployments, resulting in limited space in the worker node cluster and difficulty in efficiently utilizing computing resources.

Method used

A pair of control switches is used to form the control plane, one in active mode and one in passive mode. High availability and failover are achieved through virtual IP addresses and network mirroring technology, reducing the physical footprint of the control plane.

Benefits of technology

While ensuring high availability and container coordination functions, rack space is freed up for more worker node clusters, improving the resource utilization of the computing system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115904608B_ABST
    Figure CN115904608B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to control plane configuration. Examples relate to a system including a cluster of worker nodes communicatively connected to the control plane. The control plane includes a first control switch and a second control switch. The control switches are configured with virtual IP addresses. The IP addresses are associated with the control switches operating in active mode. The control switches communicate with the cluster of worker nodes via the virtual IP addresses. A single instance of a key-value database is deployed on one of the first and second control switches operating in active mode, and the first and second control switches are functionally coupled via a distributed block system for data synchronization.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] In traditional computing systems, applications can be stored in a storage medium (e.g., memory) and executed using the processing resources available on the computing system. As an alternative to traditional computing systems, virtual machines (VMs) can be abstracted from the hardware of the computing system. Multiple VMs can run on a single computing system, or a single VM can run on multiple computing systems. Each VM can use a guest operating system, which can be a virtual copy of the hardware used to run the operating system. Each VM can run one application. Taking this abstraction to a higher level, containers can run applications that use a virtualized operating system. A container can be an executable unit of software that includes code, tools, libraries, and / or settings for running an application. Containers can be faster and lighter than VMs that use guest operating systems. BRIEF DESCRIPTION OF THE DRAWINGS

[0002] Certain examples are described in the following detailed description and with reference to the accompanying drawings, in which:

[0003] Figure 1 is a block diagram of a computing system according to some embodiments of the present disclosure.

[0004] Figure 2 is a block diagram of a container orchestration platform according to some examples of the present disclosure.

[0005] Figure 3 is a block diagram of a container orchestration platform and control plane according to some examples of the present disclosure.

[0006] Figure 4 is a block diagram of a computing system illustrating its storage mechanism according to some embodiments of the present disclosure.

[0007] Figure 5 is a flow chart of an example method for assigning control plane roles to a control switch in a computing system according to various examples discussed herein. DETAILED DESCRIPTION

[0008] Computing systems, such as servers, can be used to run certain applications or programs. Multiple applications can run on a single computing system. In such instances, one of the applications may require more resources, which may affect the performance of the remaining applications. Alternatively, a dedicated computing system can be used for each application. Such an approach may result in underutilization of the computing system's resources. As an alternative to traditional computing systems, virtual machines (VMs) can be considered a popular mechanism for running applications. Multiple instances of a VM can run on physical computing resources. Each VM can have its own operating system (OS) instance, so applications can be isolated from their own VM. At a further level of abstraction, containers can be considered for running applications. Containers can be similar to VMs, but can also virtualize operating systems, such as the OS kernel. Because containers are decoupled from the underlying infrastructure (e.g., hardware and OS), they are lightweight and portable. In a deployment environment, container management can be used to manage containerized applications to achieve high availability. Container orchestration architectures can be used to deploy, scale, and / or manage containerized applications, among other things.

[0009] The container coordination architecture may include a control plane for managing various computing resources and controlling data flows. The various computing resources may be a cluster of worker nodes running containerized applications. Typically, for fault tolerance and high availability, the control plane may run on multiple nodes independent of the worker node cluster. For example, as an example, a typical container coordination platform may have a control plane formed by three nodes (e.g., servers) for management functions and two nodes for load balancing between the three nodes. In some instances, the container coordination platform may include a distributed storage system deployed on three nodes / servers, such as an etcd type distributed storage system. The three-node etcd configuration may provide high availability based on Raft / leader-election technology. In addition, the control plane may communicate with the worker node cluster through a load balancer, which may be formed by two nodes.

[0010] In some production environments, such as edge implementations, container orchestration infrastructure (such as a container orchestration infrastructure having the configuration described above) may be physically deployed close to end users or data generation points. Space availability at edge implementations may be more limited than space availability at data centers. Small server racks may fit into such limited available space. In addition, the control plane of the container orchestration architecture may occupy a large proportion of the total space available in the server rack, for example, 20-35% or in some instances more than 50% of the total space available. The remaining space may be used to accommodate a limited number of worker nodes, such as servers for running containerized applications.

[0011] Certain examples of the present disclosure relate to a container orchestration platform. The container orchestration platform may include a pair of control switches for control plane functions. In some examples, the pair of control switches may be Ethernet-based switches. Control plane functions may include managing a cluster of worker nodes and workloads, such as pods, containers, and the like. The pair of control nodes enables networking between the worker nodes and the worker node cluster to communicate outside the network. In some examples, to provide container orchestration and control plane functions, one control switch may operate in active mode, while the other control switch may operate in passive mode (i.e., standby mode). In passive mode, the control switch may perform switching operations but not perform any control plane functions. Switching operations may include receiving data from a source and forwarding the data to a destination (e.g., data link / layer 2 functions) and / or sending data using routing functions (e.g., layer 3 functions). Control functions may include maintaining the state and configuration of the container orchestration platform, the operation of containers and / or pods on data plane resources, and the like. The data may include the operational status of the worker nodes, and which worker nodes various pods should be running on or are currently running on. In some examples, a virtual Internet Protocol address can be provided between the control plane and the worker node cluster for communication. In addition, a single instance of a key-value database can be available on the active control switch. Examples of key-value databases can include etc distributed (etcd) or similar key-value databases. The key-value database can be configured to store data related to the workload, including containers, the state of the worker node cluster, etc. In some examples, the network mirroring system can copy data from the active control switch to the standby control switch. The active control switch can periodically notify the passive control switch of its active state. Based on the failure to receive the active state notification, the passive control switch takes over the management of the worker node cluster and the workload. The control plane framework provides a resilient system with scalability and failover options to achieve high availability while maintaining a substantially very small form factor for edge deployments.

[0012] Examples of the present disclosure relate to a container orchestration platform capable of accommodating larger clusters of worker nodes for processing workloads. A pair of control switches (such as top-of-rack switches) are configured to perform control plane functions with minimal footprint on a server rack configuration. As a result, space can be freed up in the rack to accommodate additional worker nodes compared to traditional container orchestration platforms. In some examples, a standard rack configuration can accommodate a larger cluster of worker nodes than traditional container orchestration platforms. The control plane can utilize a small portion of the rack unit configuration. For example, a pair of top-of-rack switches can be configured to form a control plane. A pair of control switches (i.e., a control plane) with integrated management and networking operations can reduce the physical footprint of the control plane, freeing up additional space for a cluster of worker nodes. Other features and advantages of the present disclosure can be understood from the following description.

[0013] The following discussion relates to various examples of the present disclosure. The examples disclosed herein should not be interpreted or otherwise used to limit the scope of the present disclosure (including the claims). In addition, the following description has a wide range of applications, and the discussion of any example is intended only to describe that example and is not intended to imply that the scope of the present disclosure, including the claims, is limited to that example. Throughout this disclosure, the terms "a" and "an" are intended to mean at least one specific element. In addition, as used herein, the term "comprising" means including but not limited to this. The term "based on" means "based at least in part on".

[0014] Referring now to the accompanying drawings, Figure 1 is a block diagram representing a computing system 100 according to some examples. Computing system 100 may correspond to a container orchestration platform that can be used to automate the deployment, scaling, and management of containerized applications. In this document, a container may be similar to a virtual machine (VM), but with the further abstraction of operating system (OS) virtualization. Containers may share access to the OS kernel and may be placed within a VM or physical computing device. In some examples, one or more containers may be grouped for co-location and / or co-scheduling. For example, the containers of a given container group may be tightly coupled so that the containers within the container group may belong to the same logical host, i.e., the same physical machine or virtual machine. A group of one or more containers may form a pod. The containers of a pod may share storage and network resources. Pods may be created during deployment. A pod may be associated with a worker node until the particular pod is terminated or deleted. Each container may include executable files, binary code, libraries, and configuration files. According to some examples, containers, and particularly groups of containers, may be deployed, scaled, and otherwise managed via a container orchestration platform such as computing system 100.

[0015] In some examples, computing system 100 can be a network architecture having a defined control plane 115 and a data plane 120. Control plane 115 can be functionally connected to data plane 120 and configured to manage computing power for executing one or more workloads on data plane 120. Examples of workloads can include, but are not limited to, containerized applications, containers, pods, virtual machines, etc. In some examples, control plane 115 can include a first control switch 125 and a second control switch 130 that are configured to provide fault tolerance and high availability to manage virtualized workloads. Control switches 125, 130 are configured to perform computing, management, and networking operations.

[0016] The data plane includes a cluster of worker nodes 145-1, 145-2, ... and 145-N. Hereinafter, the worker node cluster is collectively referred to by the reference numeral "145". Examples of worker node clusters 145 may include server clusters. In some additional examples, the worker node clusters 145 may host application pods, which may be basic blocks for executing applications. Each worker node 145-1, 145-2, ... or 145-N may include a processor or microcontroller and / or any other electronic component, or a device or system that enables computing and / or storage operations. In some examples, the worker node clusters 145 may be of a homogeneous type with similar hardware and / or software. In some other examples, the worker node clusters 145 may be of a heterogeneous type with different hardware and / or software configurations.

[0017] As an additional example, worker node cluster 145 can have high-end computing capabilities. Furthermore, some worker nodes can facilitate strong data security, and some worker nodes can have enhanced thermal capabilities. In some examples, worker nodes can include, but are not limited to, other container orchestration systems, container orchestration system clusters, computing devices, workstations, desktop computers, laptop computers, smartphones, storage systems, storage arrays, or converged or hyperconverged systems, among others.

[0018] In some examples, computing system 100 can be deployed in one or more rack units 105. Example computing system 100 includes a single rack form factor, i.e., deployed on rack unit 105. Control switches 125, 130 can be top-of-rack (ToR) switches disposed on rack unit 105. Worker node cluster 145 can be disposed in rack unit 105. As an illustrative example, control plane 115 formed by control switches 125, 130 can occupy 10%-20% of the total available space of computing system 100. The remaining 80%-90% of the space in rack unit 105 can be used to deploy worker node cluster 145. Even in a small rack unit configuration, control plane 115 takes up minimal space, and a large amount of space can be reserved for a cluster of worker nodes 145 (e.g., servers) that are the primary workload processing members. In some examples, a computing system can use more than one rack unit, and control switches 125, 130 can be disposed on different rack units in such a configuration.

[0019] In some examples, each control switch 125, 130 may include an Ethernet switch with networking and processing capabilities. For example, each control switch 125, 130 may include a network interface component, an Ethernet port, etc., for connecting to the worker node cluster 145. In addition, the first control switch 125 and the second control switch 130 are configured with a virtual Internet Protocol (IP) address. The control switches 125, 130 communicate with the worker node cluster 145 via the virtual IP address. Figure 2 In addition, a single instance of the storage system with a network mirroring system is deployed in the control plane 115 for storing data, the state of the workload and the state of the working node, which is described in detail in the example of Figure 3 and Figure 4 The examples are further explained in detail.

[0020] In some further examples, the computing system 100 can be deployed at an edge location. In this document, an "edge location" can refer to a physical location that can be close to an end user. End users can access services for running applications related to computing / storage / networking functions with low latency, which may be due to the reduced distance that data may have to travel. Example deployments may include telecommunications services, such as the fifth generation (5G) telecommunications standard. The computing system 100 can be deployed near a base station of a cellular service provider to efficiently process computing and network-related applications. In some examples, applications may include data-intensive fields, such as the Internet of Things (IoT). The computing system 100 of the present disclosure can be deployed at a deep edge location (i.e., a remote location) and is configured to provide high availability in a small form factor. In some other examples, the computing system 100 can be deployed in an organization or enterprise, including but not limited to enterprises, manufacturing, medical services, data-intensive fields, etc.

[0021] Figure 2 is a block diagram of an example container orchestration platform 200 according to some examples. Figure 2 Can be combined with the above Figure 1 Some of the features described in , including the control plane 115 (in Figure 2 215) and the worker node cluster 145 (in Figure 2 (Indicated by "245" in the figure) Platform 200 includes a first control switch 225 and a second control switch 230. Each control switch 225, 230 includes a processor 226, 231; storage media 227, 232; and network interfaces 228, 233. Some of these components will be described in detail below with reference to the first control switch 225, and similar features / functionality may also apply to the second control switch 230.

[0022] In some examples, the storage medium 227 may be of a "non-transitory computer-readable" type. The storage medium 227 may store data and / or instructions that cause the first control switch 225 to perform one or more specific actions as discussed herein. According to some examples, such non-transitory storage media may be of a non-volatile type. The storage medium 227 may be any electronic, magnetic, optical, or other physical storage device. For example, the storage media described herein may be any one of random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), volatile memory, non-volatile memory, flash memory, a storage drive (e.g., a hard disk drive (HDD), a solid-state drive (SSD)), any type of storage disk (e.g., a compact disk, a digital versatile disk (DVD), etc.), or a combination thereof. The processor 226 may retrieve, decode, and execute instructions stored in the storage medium 227 to manage workloads and the cluster of worker nodes 245-1, 245-2, ..., 245-N (collectively referred to as "245") as described herein.

[0023] The processor 226 can be a physical device, such as one or more central processing units (CPUs), one or more semiconductor-based microprocessors, one or more graphics processing units (GPUs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), other hardware devices capable of receiving and executing instructions stored in a machine-readable storage medium, or a combination thereof. In some examples, the network interface 228 can include a physical port, software, hardware, firmware, circuitry, or a combination thereof. An example of the network interface 228 can correspond to an Institute of Electrical and Electronics Engineers (IEEE) 802.3 Ethernet interface.

[0024] In some examples and without limitation, each network interface 228, 233 of the control switches 225, 230 may include multiple Ethernet ports with speeds ranging from 10 Gigabit Ethernet (GbE) to 200 GbE per port. Furthermore, the control switches 225, 230 may include 8 Gigabits of random access memory (RAM), processors 226, 231 (such as quad-core or octa-core processors), and storage media 227, 232 (such as 32 Gigabits of storage space, such as solid-state drives (SSDs)). Alternative control switch configurations may be used for appropriate management and networking operations based on workload requirements. In some examples, one of the control switches 225 or 230 operates in active mode, while the other control switch 230 or 225 operates in passive mode for failover. The control plane 215 formed by the control switches 225, 230 may make global decisions corresponding to the worker node cluster 245 and detect / respond to cluster events, such as the management of pods or the creation of pods under certain conditions associated with application requirements.

[0025] In addition, in some examples, a virtual Internet Protocol (IP) address 250 is provided between the worker node cluster 245 (i.e., the data plane) and the control switches 225, 230 (i.e., the control plane). The virtual IP address 250 can be based on the Virtual Router Redundancy Protocol (VRRP). Compared to a typical container orchestration platform, the worker node cluster 245 can communicate with the control switch operating in active mode via the virtual IP address 250 instead of a load balancer. Alternatively, the use of a load balancer can be avoided by using two server nodes, thereby freeing up additional space for the worker nodes. In some examples, the virtual IP address 250 is configured to be used as a default gateway. For example, 192.168.2.130 can be the virtual IP address 250 assigned to the control plane 215.

[0026] In addition, the first control switch 225 and the second control switch 230 can have static IP addresses 192.168.2.111 and 192.168.2.112, respectively. The virtual IP address 250 can be a floating Internet Protocol (IP) address that is configured to be associated with the IP address corresponding to the control switch operating in active mode. The virtual IP address 250 can be associated with the control switch operating in active mode. Any request / communication from (multiple) worker nodes is directed to the control switch in active mode. In addition, a first virtual local area network (VLAN) (such as VLAN 100) can be used to connect the control plane 215 communication to the worker node cluster 245. The traffic between the worker node cluster 245 and the control plane 215 can be transmitted via VLAN 100. In some examples, various VLAN configurations can be provided to achieve isolation of data and / or service-related communications.

[0027] In some examples, each control switch 225, 230 may include a storage system / block device, such as a key-value database for consistently and reliably storing data, storing the status of worker nodes, container and pod related information, etc. An example of a key-value database may include etcd distributed (etcd). The key-value database is not limited to etcd, and other key-value databases or key-value storage repositories may also be used. The key-value database may be software or a kernel for storing and retrieving data using key-value pairs. In various examples, a data structure such as a hash table may be used to map keys to values ​​based on a hash function. The storage system is provided in single-instance mode, whereby the storage system is active on one of the control switches. The storage systems of the control switches 225, 230 can be synchronized via a network mirroring system via a second VLAN configured such as "VLAN 451". For example, a distributed replicated block device (DRBD) 255 can be used for network mirroring of block devices. In some examples, the active control switch (e.g., the first control switch 225) can coordinate containers. The passive control switch may include data used for control during a failure of the active control switch (e.g., the state and configuration of the container orchestration platform, information corresponding to containers and / or pods running on worker nodes, the state of the worker nodes, etc.). In some examples, network mirroring is performed using a dedicated network interface and IP address via VLAN 451. For example, the first control switch 225 and the second control switch 230 may synchronize using IP addresses 10.1.1.111 and 10.1.1.112, respectively. VLAN 451 may operate independently of data traffic handled by VLAN 100.

[0028] In some examples, virtual IP address 250 can be configured for high availability and based on a "Keepalived" service. Keepalived can be a software component or service that can detect a loss of communication from an active control switch and can associate virtual IP address 250 with a standby control switch. Furthermore, Keepalived can be configured to perform one or more actions, such as unmounting a file system on the active control switch and activating a DRBD device for read and write operations. Furthermore, Keepalived mounts the DRBD device on a passive device and starts etcd on the switch promoted to active mode. A passive control switch (e.g., second control switch 230) can receive active status advertisement packets (e.g., VRRP advertisement packets) sent by an active control switch (e.g., first control switch 225). The advertisement packet(s) can be sent by the active control switch at predefined intervals. Upon failure to receive the advertisement packet within a predetermined time (e.g., three consecutive instances), second control switch 230 can be promoted to active mode to manage the cluster of worker nodes 245 via virtual IP address 250. Thus, a pair of control switches 225, 230 (such as top-of-rack (ToR) switches) provide high availability for container coordination. In some examples, the control switches 225, 230 can form a VRRP group with one control switch assigned a high priority to operate in active mode.

[0029] Figure 3 Illustrated is a diagram for a container orchestration platform (such as, Figure 2 2 is a block diagram of a control plane of a platform 200 shown in , formed by a pair of control switches. Figure 3 Some features of the architecture from the above examples can be combined. The first control switch 325 includes an application program interface (API) server 360, a configuration manager 361, a scheduler 362, etcd 363, and other components for management operations. Similar components 365 to 368 are provided on the second control switch 230, so the discussion of the components of the first control switch 325 can also be applied to the second control switch 330.

[0030] Regarding the first control switch 325, the API server 360 may be a communication component for communication between internal components of the first control switch 325. Furthermore, the first control switch 325 may communicate with external components (i.e., the data plane formed by the worker node cluster 345) via its API server 360 and via the virtual IP address 350. A configuration manager 361 may determine the current state of the worker node cluster 345 and any state changes. Based on the determination of any state changes, the configuration manager 361 may resolve any errors that caused the state changes. Examples of state changes may include, but are not limited to, failures of any worker nodes. A scheduler 362 may receive requests from the API server 360 and may dispatch the requests to one or more worker nodes 345-1, 345-2, ..., or 345-N selected from the worker node cluster 345. In some examples, one or more worker nodes 345 may be selected based on their operational state. In some instances, when a worker node 345 with a set of resources is unavailable, the pod may remain in a hold state until the worker node(s) from the data plane reach a suitable state. The set of resources may include processing power, storage capacity, and / or networking capabilities for placing the pods. Similarly, the second control switch 330 is configured with similar components 370 to 373 and may perform one or more actions when operating in active mode.

[0031] In addition, the first control switch 325 includes a key-value based storage system, such as etcd 363. The first control switch 325 can retrieve the above-mentioned state data from etcd 363. In some examples, etcd 363 operates in a single instance mode, which runs on a control switch operating in active mode. An example of a single instance mode can include installing a storage system on the active control switch for read and write operations. In some examples, a network mirroring system or a network block device, such as a distributed replicated block device (DRBD) 355, can be used for network mirroring of block devices (i.e., the storage systems of the control switches 325, 330).

[0032] Figure 4 is a block diagram of an example computing system illustrating the storage mechanism of the example computing system. The computing system may include Figures 1 to 3 In addition, the block diagram illustrates an example storage mechanism used in the control plane 415 of the computing system 400. The control plane 415 may include a pair of control switches 425, 430. To explain the Figure 4 In an associated embodiment, the first control switch 425 may be considered to operate in an active mode, while the second control switch 430 may be considered to operate in a passive mode.

[0033] In some examples, the control switches 425 and 430 can support the installation of any standard operating system distribution. The first control switch 425 includes a page cache 470, a file system 471, an input / output (I / O) scheduler 475, and a disk driver 476 for processing a storage disk 477. Similar components 480, 481, 485, and 486 can be available on the second control switch 430. In a conventional storage mechanism, data can be written to the storage disk 477, and the write operation can be performed by the components 470, 471, 475, and 476. Similar components can be available in the second control switch 430.

[0034] In some examples, a DRBD component (such as DRBD 472) can be set between an upper layer including a page cache 470 and a file system 471 and a lower layer including an I / O scheduler 475 and a disk driver 476. In other words, the DRBD component is set between the file system 471 and the storage disk 477. DRBD 472 can be configured to perform network mirroring of block devices corresponding to the first control switch 425 to the second control switch 430. DRBD 472 can synchronously mirror any block write operations to the block device (e.g., a storage disk). A single instance of etcd in the back end can be used for read and write operations. The storage system (such as etcd) in the back end of a control switch operating in passive mode may not be available for read and write operations. The container orchestration platform of the present disclosure uses a pair of control switches to provide high availability of services with failover and minimize / eliminate data loss, which is different from a three-node cluster for storage that relies on Raft / leader-based technology with a larger footprint.

[0035] In some examples, the control switches 425, 430 can be connected via network interface cards (NICs) 479, 489 and corresponding network drivers 478, 488. In some examples, such as Figure 2 In the example shown in FIG, the control switches 425 and 430 can use a dedicated VLAN configuration (e.g., VLAN 451) and a specific IP address for the network image of the block device. The first control switch 425 can use the virtual IP address of the control plane 415 associated with it to carry out service 491. In the example shown, the second control switch 430 is in passive mode, and the service 492 of the second control switch 430 is in a passive state for failover.

[0036] In some examples, in a production environment or in an edge deployment, dual paths are provided between the control switches 425, 430 to avoid split-brain. For example, two physical ports on one control switch can be connected to corresponding two physical ports on another control switch. During a failure of a physical connection between a pair of switches 425, 430, the switches can communicate through another redundant connection. Therefore, the two switches 425, 430 may not be able to switch to active mode due to a failure of one connection between them. In some other examples, a pair of control switches 425, 430 may not have a majority voting mechanism (quorum) (i.e., an odd number of devices to establish an election consensus), and the two switches may enter active mode. This may cause conflicts when processing services or service requests from a cluster of working nodes. This may also cause inconsistent state replication on block devices and may cause data corruption. In some other examples, multiple paths can be provided between the switches to obtain higher redundancy to eliminate split-brain.

[0037] The control switches 425, 430 can perform real-time synchronization of data. For example, synchronization can be based on network mirroring of the storage disk 477 to the storage disk 487. In some examples, the network mirroring can take a path from the DRBD 472, network stack 474, NIC driver 478 and NIC 479 of the first control switch 425 to the NIC 489, network stack 484, DRBD 482 and storage disk 487. A single instance of the key-value database can be installed on a control switch operating in active mode. Data synchronization can occur even if an application is modifying data on the active control switch. In some examples, the control switches 425, 430 can be configured with a synchronous replication protocol. Under the synchronous replication protocol, the control switch in active mode can write to the local storage system, and when the write operation on the two storage disks (i.e., corresponding to the active switch and the passive switch) is completed, it can be considered completed. During a failure of the control switch in active mode, the control switch in passive mode can take over. As Figure 2 As discussed in , VLAN 451 can be used for high-speed connection of network mirroring of storage disk. In some examples but not by way of limitation, storage disk can be network mirrored at a speed of 100 Gigabits per second (Gbps).

[0038] In some examples, the DRBD system is capable of creating and mounting a file system. The file system may have a mount point at / var / lib / etcd, and DRBD-related resources may be mounted at that mount point. For single-instance operation, the mount may be performed on a control switch operating in active mode. In some examples, etcd (e.g., etcd 363) may store its database at the mount point. DRBD 472 is coupled to a raw device 473 and may be used to store metadata. In various examples, raw devices 473, 483 may be disks or disk partitions, which may be synchronized between control switches 425, 430 based on DRBD 472, 482. Based on the passive control switch failing to receive a notification (e.g., a notification related to keepalive), the first control switch 325 may stop selected services to uninstall DRBD 472. In addition, the second control switch 430 may be promoted to active mode, and the first control switch 425 may be demoted to standby mode. In some examples, the Keepalived component can unmount the file system on the first control switch, activate DRBD block 482, and mount a file system (such as etcd) on the second control switch 430. The computing system 400 can alert the system administrator about state changes in the control plane 415 or a possible failure of one of the control switches 425, 430.

[0039] Figure 5 500 is a flow chart of a method for assigning control plane roles to a pair of control switches in a computing system according to examples discussed herein. In some examples, at 505, the method can include maintaining a control plane using a pair of control switches (e.g., a first control switch 125, 225, 325, or 425 and a second control switch 130, 230, 330, or 430, such as according to examples discussed herein). The control switches 325, 330 can be Ethernet switches provided in a rack unit configuration, such as a top-of-rack (ToR) switch. In some examples, maintaining the control plane can include operating one control switch in an active mode and operating the other control switch in a passive mode.

[0040] At 510, the method may include maintaining a cluster of worker nodes, including one or more compute, storage, and / or networking resources. The cluster of worker nodes may be deployed in a rack unit configuration. The cluster of worker nodes forms a data plane for the container orchestration platform. Workloads may run on the data plane. Maintaining the cluster of worker nodes may include maintaining virtual machines or physical machines. In some examples, each worker node is managed by a control switch operating in active mode. A worker node may have one or more pods that host application instances. In addition, based on the availability of resources on each worker node, a cluster of worker nodes is maintained to schedule pods thereon.

[0041] At 515, the method may include maintaining a virtual IP address for communication between the worker node cluster and the control plane (i.e., the first control switch and the second control switch). Maintaining the virtual IP address may include associating the virtual IP address with a control switch operating in active mode. In some examples, the worker node may communicate with an API server deployed on the control switch (e.g., Figure 3 The control plane can communicate with worker nodes, pods, or services via a maintained virtual IP address. A VRRP-based virtual IP address (such as a floating IP address) can be the gateway for the worker node cluster, used to communicate with the active control switch.

[0042] At 520, the method may include maintaining a single instance of a file system, such as etcd, on a control switch operating in active mode. Maintaining a single instance of a file system may include operating the file system on a backend, such as a distributed key-value store. Applications, pods, or worker nodes may read / write on the active control switch. The active control switch may communicate with a storage system to read and write information related to state and configuration. In some examples, the method may also include maintaining a network mirroring system for mirroring the storage system of the control switch in active mode with the storage system of the control switch in passive mode. An example of a network mirroring system may include DRBD. Maintaining the network mirroring system may include mirroring state and configuration data from the active control switch to the passive control switch. For example, data written from the storage disk of the active control switch may be simultaneously network mirrored to the storage disk of the passive control switch without interfering with the workload. The storage disk may be used for network mirroring, and read / write access may be limited to DRBD to replicate the data.

[0043] Although the examples above may refer to specific mechanisms for assigning roles to network components, any other suitable mechanism for assigning roles to network components may be used in accordance with the principles described herein.

[0044] In some examples described herein, the combination of hardware and programming can be implemented in a variety of different ways. For example, the programming for controlling a switch (e.g., controlling switches 325, 330) can be processor-executable instructions stored on at least one non-transitory computer-readable storage medium, and the hardware for controlling switches 325, 330 can include at least one processing resource for executing those instructions. In some examples, the hardware can also include other electronic circuits to at least partially implement at least one of the (multiple) operations of controlling switches 325, 330. In such an example, at least one computer-readable medium can store instructions that, when executed by at least one processing resource, at least partially implement some or all of the (multiple) operations. In such an example, a computing device can include at least one computer-readable storage medium storing instructions and at least one processing resource for executing the instructions.

[0045] In the foregoing description, numerous details are set forth to provide an understanding of the subject matter disclosed herein. However, the examples may be practiced without some or all of these details. Other examples may include modifications and variations of the details discussed above. It is intended that the appended claims cover such modifications and variations.

Claims

1. A system comprising: Worker node cluster; as well as A control plane, functionally connected to the worker node cluster, wherein the control plane comprises: a first control switch; and The second control switch, wherein The first control switch and the second control switch are configured with: a floating Internet Protocol IP address to be associated with one of the first and second control switches operating in an active mode, and wherein the control plane and the worker node cluster communicate between the control plane and the worker node cluster via the floating IP address, wherein the other of the one of the first and second control switches operates in a passive mode; and A single instance of a key-value database is deployed on the one of the first control switch and the second control switch operating in the active mode, and the first control switch and the second control switch are functionally coupled by a distributed block system for data synchronization. 2 . The system of claim 1 , wherein the first control switch and the second control switch are in a top-of-rack (ToR) switch configuration. 3 . The system of claim 1 , wherein the first control switch operates in the active mode and the second control switch operates in the passive mode, and the second control switch periodically receives an active status advertisement from the first control switch.

4. The system of claim 3, wherein in response to failing to receive the active state notification within a predetermined time, the second control switch is capable of determining that the first control switch has failed and promoting the second control switch to the active mode through a Keepalived component.

5. The system according to claim 4, wherein the Keepalived component is set between the first control switch and the second control switch, wherein the Keepalived component associates the floating IP address with the second control switch and uninstalls the key-value database on the first control switch.

6. The system of claim 1, wherein the single instance of the key-value database is an etcd distributed etcd system.

7. The system according to claim 1, wherein the distributed block system is a distributed replicated block device (DRBD). 8 . The system according to claim 1 , wherein the distributed block system synchronizes data between the first control switch and the second control switch through a first virtual local area network (VLAN) and through the floating IP address. 9 . The system of claim 1 , wherein the first control switch and the second control switch are communicatively coupled to the worker node cluster via the floating IP address through a second virtual local area network (VLAN).

10. The system of claim 1, wherein the floating IP address comprises a virtual Internet Protocol (IP) address, and the virtual IP address is based on a Virtual Router Redundancy Protocol (VRRP).

11. The system of claim 10, wherein the single instance of the key-value database comprises a database installed corresponding to one of the first control switch and the second control switch operating in the active mode. 12 . The system according to claim 1 , wherein the first control switch comprises a first storage disk, and the first storage disk is synchronized with a second storage device of the second control switch via a network mirroring mechanism. 13 . The system of claim 1 , wherein the key-value database is offloaded from the other control switch of the one of the first control switch and the second control switch that operates in a passive mode.

14. The system according to claim 1, wherein: Based on the one of the first control switch and the second control switch operating in the active mode being determined to have failed, the floating IP address is associated with the other of the one of the first control switch and the second control switch, and the key-value database is uninstalled from the one of the first control switch and the second control switch.

15. A pair of control switches forming a control plane for a container orchestration platform, the pair of control switches being connected to a cluster of worker nodes, the pair of control switches comprising: a first control switch; as well as The second control switch, wherein The first control switch and the second control switch are configured with a virtual Internet Protocol IP address, the virtual IP address being used to associate with one of the first control switch and the second control switch operating in an active mode, and the control plane and the worker node cluster communicate between the control plane and the worker node cluster via the virtual IP address, wherein the other of the one of the first control switch and the second control switch operates in a passive mode; as well as A single instance of a key-value database is deployed on the one of the first and second control switches operating in the active mode, and the first and second control switches are functionally coupled by a distributed block system for data synchronization. 16 . The pair of control switches forming a control plane according to claim 15 , wherein the first control switch and the second control switch are deployed on the same rack unit.

17. The pair of control switches forming a control plane according to claim 15, wherein the first control switch is deployed on a first rack unit, and the second control switch is deployed on a second rack unit different from the first rack unit.

18. The pair of control switches forming a control plane according to claim 15, wherein the control plane is provided on a rack unit configuration that occupies 10% to 20% of the space.

19. The pair of control switches forming a control plane according to claim 15, wherein the worker node cluster comprises one or more servers configured to run one or more of computing, storage, or networking applications.

20. The pair of control switches forming a control plane according to claim 15, wherein the first control switch operating in the active mode is configured to manage workloads of the container orchestration platform, wherein the workloads include at least one of containerized applications, containers, pods, or virtual machines.

21. A method for implementing a container orchestration platform, comprising: maintaining a control plane, wherein the control plane includes a first control switch and a second control switch, and the control plane is deployed in a rack unit configuration; maintaining a cluster of worker nodes, the cluster of worker nodes being deployed in the rack unit configuration; maintaining a virtual Internet Protocol (IP) address between the first control switch and the second control switch for communicating with the cluster of worker nodes, wherein maintaining the virtual IP address comprises associating the virtual IP address with one of the first control switch and the second control switch operating in an active mode, and wherein the other of the one of the first control switch and the second control switch operates in a passive mode; and A single instance of a storage system on the one of the first and second control switches operating in the active mode is maintained, and data is synchronized between the first and second control switches via a network mirroring system.

22. The method of claim 21, wherein the single instantiation of the storage system comprises installing the storage system on a control switch operating in active mode.

Citation Information

Patent Citations

  • Virtual bucket storage processing method and system based on distributed object storage

    CN112422611A

  • Cluster node telescoping system based on cloud platform, implementation method and operation method

    CN113220416A