Managing workload deployment
By automating the determination of user-defined resource labels and custom indices, workload orchestration systems can efficiently deploy workloads on appropriate hardware, optimizing performance and security in Kubernetes clusters.
Patent Information
- Application Number
- DE102021127323
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-11-23
- Filing Date
- 2021-10-21
- Publication Date
- 2026-02-12
- Estimated Expiration
- 2041-10-21
AI Technical Summary
Existing workload orchestration systems, such as Kubernetes, rely on manual labor-intensive processes for labeling worker nodes with resource labels, leading to inefficiencies in workload scheduling and deployment, especially when dealing with high-end hardware in modern Kubernetes clusters.
Implement a management node that automatically determines user-defined resource labels based on self-describing workloads and platform characteristics, using agents to monitor and publish hardware and software capabilities, and calculates custom resource tags like Turbo Index, Jitter Index, Memory Bandwidth Index, and Security Index to optimize workload placement.
This approach reduces manual intervention and enhances workload scheduling by ensuring optimal deployment on well-equipped nodes, improving performance and security while reducing labor costs and enhancing resource utilization.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUND
[0001] Data can be stored on compute nodes, such as a server, storage array, server cluster, computer application, workstation, storage system, converged system, hyperconverged system, or similar. These compute nodes can host workloads that can generate or consume data during their respective operations.
[0002] US 2012 / 0 198 073 A1 discloses a method for determining the hardware on which specific software is running, using a catalog that stores instances of cloud computing resources and their providers, and a knowledge base that stores types of computing resources, including rules for their discoverability. US 2018 / 0 260 566 A1 describes methods and systems for determining trust and security settings for different information processing resources and using them as a basis for the placement of virtual machines. US 2019 / 0 384 367 A1 relates to an electronic device with a plurality of chiplets, wherein a processor monitors the thermal development of the chiplets and reduces the power supply to a chiplet that overheats. BRIEF DESCRIPTION OF THE DRAWINGS
[0003] These and other features, aspects, and benefits of the present specification will be better understood if the following detailed description is read with reference to the accompanying drawings, in which identical symbols represent identical parts in the drawings, wherein: Fig. Figure 1 shows a networked system with a multitude of work nodes and an administration node for managing the deployment of a workload to the work nodes according to an example; Fig. 2A, Fig. 2B and Fig. 2C shows example workload configuration files according to an example; Fig. 3 is a flowchart that illustrates a procedure for providing a workload in accordance with an example; Fig. 4 is a flowchart that illustrates a procedure for providing a workload in accordance with another example; and Fig.Figure 5 is a block diagram representing a processing resource and a machine-readable medium encoded with example instructions for using a workload according to an example.
[0004] It is emphasized that the various features in the drawings are not drawn to scale. Rather, the dimensions of the various features in the drawings have been arbitrarily enlarged or reduced to clarify the discussion. DETAILED DESCRIPTION
[0005] The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and in the following description to refer to identical or similar parts. It is expressly stated that the drawings are for illustration and description purposes only. Although several examples are described in this document, modifications, adaptations, and other embodiments are possible. Accordingly, the following detailed description does not limit the disclosed examples. Instead, the proper scope of the disclosed examples can be defined by the accompanying claims.
[0006] The terminology used here serves to describe specific examples and is not intended to be restrictive. The singular forms "ein," "ein," and "die" used here also include the plural forms, unless the context clearly indicates otherwise. The term "ein anderer" as used here is defined as at least one second or more. The term "gekoppelt" as used here is defined as connected, either directly without any intervening elements or indirectly with at least one intervening element, unless otherwise specified. For example, two elements may be mechanically, electrically, or communicatively connected via a communication channel, path, network, or system. Furthermore, the term "and / or," as used here, refers to and includes all possible combinations of the elements listed. Although the terms "first," "second," "third," "fourth," etc.,While these terms are used here to describe various elements, these elements should not be restricted by them, as these terms are only used to distinguish one element from another unless otherwise stated or the context indicates otherwise. As used herein, the term "includes" means that it includes but is not limited to it; the term "including" means that it includes but is not limited to it; the term "based on" means at least partially based on.
[0007] Data can be stored and / or processed in compute nodes, such as a server, storage array, server cluster, computer application, workstation, storage system, converged system, hyperconverged system, or similar. Compute nodes can host and run workloads that can generate and / or consume data during their respective operations. Examples of such workloads include a virtual machine, container, pod, database, data store, logical disk, or containerized application.
[0008] In some examples, workloads can be managed through a workload orchestration system. For instance, workloads such as pods can be managed through a container orchestration system like Kubernetes. The workload orchestration system can run on a single compute node, referred to hereafter as the management node. The management node can receive a request to deploy a workload and schedule the deployment of the workload on one or more other compute nodes, referred to hereafter as work nodes. In some cases, the management node can deploy one or more replicas of the workloads on multiple work nodes to ensure high workload availability. The work nodes can provide resources, such as compute, storage, and / or network capacity, for the execution of the workloads.
[0009] Workload planning can be managed to meet the need for rapid service deployment at cloud scale, taking into account factors such as agility, easy application upgrades or rollbacks, and cloud-native workloads. Such workload planning often works well in networked systems (e.g., Kubernetes clusters) that include worker nodes with standard hardware (e.g., standard x86 processing resources). In certain implementations, the worker nodes in the networked systems may include high-end hardware. For example, due to the increasing adoption of containers across various organizations, worker nodes in modern Kubernetes clusters include high-end hardware to run business-critical workloads.To achieve maximum return on investment (ROI) and reduced or lowest total cost of ownership (TCO), running workloads on the right hardware is desirable. This is possible when workloads are optimally placed, meaning they are deployed to worker nodes with the appropriate type of hardware. Workload orchestration systems like Kubernetes support manually labeling worker nodes and scheduling workloads based on these manually defined resource labels. However, this manual process of labeling worker nodes requires administrative intervention and is labor-intensive.
[0010] Certain versions of container orchestrators or platforms, such as Kubernetes, can support a node attribute discovery feature (implemented as an add-in) that allows worker nodes to discover and report / publish their hardware and software capabilities. These published hardware and software capabilities can then be used by a scheduler running on the management node (alternatively called the master node) to facilitate intelligent workload scheduling. The node attribute discovery add-in on a given worker node allows that worker node to publish its hardware and software capabilities in the form of resource labels.Traditionally, the resource labels published by the work nodes are too detailed and provide too much information, making them difficult to analyze and potentially hindering planning decisions. Using individual resource labels, or even selecting the right type of resource label for planning purposes, has been a challenging task.
[0011] To this end, a management node is presented in accordance with the aspects of this disclosure, which enables improved workload scheduling by taking into account self-describing workloads and certain user-defined resource tags that are automatically determined based on the resource tags assigned to the work nodes. In some examples, the management node can receive values from resource tags that relate to platform characteristics of a variety of work nodes. The platform characteristics can include one or more of the following: thermal stability, memory and bandwidth, computing power, or security.Furthermore, the management node can determine values for one or more user-defined resource labels for each of the multiple work nodes, with the value of each user-defined resource label being determined based on the values of a respective set of resource labels. Additionally, the management node can receive a deployment request to deploy a workload (hereinafter referred to as a workload deployment request). The workload deployment request can include a workload description that defines the workload. Furthermore, the management node can deploy the workload from among the multiple work nodes based on the workload description and the values of the one or more user-defined resource labels.
[0012] The management node and the methods presented here facilitate improved workload planning / deployment by using meaningfully generated, user-defined resource labels whose values can be automatically calculated and / or updated based on multiple granular resource labels published by the work nodes. By building scheduling or deployment capabilities on workload orchestration systems (e.g., Kubernetes) based on published performance and security capabilities or limitations, users can run workloads such as business applications, taking into account the hardware and software capabilities and / or vulnerabilities of the work nodes.In particular, the improved workload provisioning achieved through various example aspects presented here ensures that workloads run on a well-equipped work node with sufficient resources to meet their requirements. Provisioning workloads based on the values of custom resource tags and workload descriptions can enable improved performance and security for workloads on networked systems (e.g., Kubernetes clusters) located either in a customer's private cloud data center, owned or leased by the customer, or used as a service offering from a provider (e.g., via a usage-based or consumption-based pricing model).Since the values of user-defined resources and the descriptions of the workload are determined automatically and dynamically during operation, manual intervention can be reduced or eliminated.
[0013] The drawings show in Fig.Figure 1 shows a networked system 100 as illustrated in an example. The networked system 100 can contain a variety of work nodes 102, 104, and 106, which are collectively referred to as work nodes 102 and 106. Furthermore, the networked system 100 can also include a management node 108, which is connected to the work nodes 102-106 via a network 110. In some examples, the networked system 100 can be a distributed system in which one or more of the work nodes 102-106 and the management node 108 are located in physically different locations (e.g., on different racks, in different enclosures, in different buildings, in different cities, in different countries, and the like) while being connected via the network 110. In certain other examples, the networked system 100 can be a turnkey solution or an integrated product.In some examples, the terms "turnkey solution" or "integrated product" may refer to a ready-to-use packaged solution or product where the work nodes 102-106, the management node 108, and the network 110 are all located in a common enclosure or rack. Furthermore, in some examples, the networked system 100, in any form—whether a distributed system, a turnkey solution, or an integrated product—can be reconfigured by adding or removing work nodes and / or by adding or removing internal resources (e.g., computing power, memory, network cards, etc.) to and from the work nodes 102-106 and the management node 108.
[0014] Examples of network 110 include, but are not limited to, an Internet Protocol (IP) or non-IP-based local area network (LAN), a wireless LAN (WLAN), a Metropolitan Area Network (MAN), a Wide Area Network (WAN), a Storage Area Network (SAN), a Personal Area Network (PAN), a cellular communications network, a Public Switched Telephone Network (PSTN), and the Internet. Communication over network 110 can be in accordance with various communication protocols, such as, but not limited to, Transmission Control Protocol and Internet Protocol (TCP / IP), User Datagram Protocol (UDP), IEEE 802.11, and / or cellular communication protocols. Communication over network 110 can be wired (e.g., copper cables, optical communication, etc.) or wireless (e.g., Wi-Fi). ®cellular communication, satellite communication, Bluetooth, etc.) communication technology. In some examples, the network 110 can be activated via private communication links, including but not limited to communication links established via Bluetooth, cellular communication, optical communication, radio frequency communication, wired (e.g., copper), and the like. In some examples, the private communication links can be direct communication links between the management node 108 and the working nodes 102-106.
[0015] Each of the work nodes 102106 can be a device containing a processor or microcontroller and / or other electronic component, or a device or system that enables various computing and / or data storage services. Examples of work nodes 102106 include, but are not limited to, a desktop computer, a laptop, a smartphone, a server, a computing device, a workstation, a storage system, a converged or hyperconverged system, and the like. Although the networked system 100 in Fig.Figure 1 shows three work nodes. Figure 102. The networked system 100 can include any number of work nodes without limiting the scope of this disclosure. The work nodes 102-106 can have similar or different hardware and / or software configurations in a particular implementation of the networked system 100. For example, some work nodes can have high-end computing capabilities, some work nodes can provide high data security, and certain work nodes can have improved thermal capabilities.
[0016] Work nodes 102-106 can provide resources, such as compute, storage, and / or network capacity, for one or more workloads to run on them. The term "workload" can refer to any computing resource, including but not limited to an application (such as a software program), a virtual machine (VM), a container, a pod, a database, a datastore, a logical disk, or a containerized application. Clearly, a workload such as a VM can be an instance of an operating system hosted on a particular work node by a VM host program, such as a hypervisor. Furthermore, a workload such as a container can be a packaged application with its dependencies (such as operating system resources, processing allocations, memory allocations, etc.) hosted on a particular work node by a container host program, such as a hypervisor.a container runtime environment (e.g., Docker Engine) is hosted. Furthermore, in some examples, one or more containers can be grouped into a pod. For instance, a group of containers associated with a common application can be grouped into a pod.
[0017] In the following description, workloads are referred to as pods for illustrative purposes. Pods can be managed using a container orchestration system such as Kubernetes. In the example of Fig. Work node 102 is shown as the host for workloads WL1 and WL2, work node 104 as the host for workloads WL3 and WL4, and work node 106 as the host for workloads WL5 and WL6. Although a certain number of workloads from each of the in Fig.Since the work nodes 102-106 shown are hosted in 1, the work nodes 102-106 can host any number of workloads depending on the respective hardware and / or software configurations.
[0018] Furthermore, in some examples, one or more of the work nodes 102-106 can host a Node Monitoring Agent (NMA) and a Feature Publication Agent (FPA). In the example of Fig.In Figure 1, work node 102 is represented as the host for NMA1 and FPA1, work node 104 as the host for NMA2 and FPA2, and work node 106 as the host for NMA3 and FPA3. The node monitor agents NMA1, NMA2, and NMA3, and the feature publisher agents FPA1, FPA2, and FPA3, can represent a type of workload (e.g., a pod) running on their respective work nodes 102–106. For brevity, only the operations of node monitor agent NMA1 and feature publisher agent FPA1, hosted on work node 102, are described below. Node monitor agents NMA2 and NMA3 can perform similar operations on their respective work nodes 104 and 106 as node monitor agent NMA1 performs on work node 102.Furthermore, the feature publisher agents FPA2 and FPA3 can perform similar operations on their respective work nodes 104 and 106 as are performed by the feature publisher agent FPA1 on work node 102.
[0019] During the commissioning and / or real-time operation of work node 102, the node monitoring agent NMA1 can monitor the hardware and / or software of work node 102 to gather information about various platform characteristics. The platform characteristics monitored by the node monitoring agent NMA1 may include one or more of the following: thermal stability, memory and bandwidth, computing power, or security for work node 102. To gather information about platform characteristics, NMA1 can monitor one or more platform attributes, operating system-based attributes, attributes related to the dynamic system state, or attributes related to the security posture.
[0020] For example, the node monitoring agent NMA1 can monitor various platform attributes, such as processor registers (e.g., model-specific registers on processors), system management BIOS (SMBIOS) records (e.g., dmidecode output), operating system instruction outputs (e.g., Iscpu, turbostat), or vendor-specific security vulnerability tools (e.g., tools for identifying Spectre- or Meltdown-vulnerable processors), but is not limited to these. Furthermore, in some examples, the node monitoring agent NMA1 can monitor multiple operating system-based attributes, such as NUMA (non-uniform memory access) capability (e.g., numastat output), hardware topology (e.g., output of an Ishw instruction), network interface card capability (e.g., output of an ethtool instruction), or memory properties (e.g., output of a diskinfo or hdinfo instruction).Furthermore, in some examples, the node monitoring agent NMA1 can monitor several attributes related to the dynamic system state, such as CPU and memory utilization (e.g., output of a `top` or `numastat` command), disk utilization (e.g., output of an `iostat` command), or network utilization (e.g., output of a `netstat` command), but not exclusively. Additionally, in some examples, the node monitoring agent NMA1 can monitor several attributes related to the security posture, such as hardware trustworthiness, secure boot capability, firmware image signing capability, certificate usage, and application environment security (e.g., capabilities such as firewalls and operating system hardening).
[0021] In some examples, based on the monitoring of work node 102 by NMA1 mentioned above, the feature publisher agent FPA1 can determine the values of resource labels that correspond to one or more of the platform features of work node 102. Furthermore, the feature publisher agent FPA1 can publish the resource labels and their values for work node 102. In some examples, publishing the resource labels and their values may involve FPA1 transmitting the resource labels and their values to management node 108. In certain other examples, publishing the resource labels (such as resource label names) and their values may involve storing the resource labels and their values in a storage medium accessible to management node 108.
[0022] Resource labels corresponding to platform properties such as thermal stability are referred to below as a first set of resource labels, whose associated values may contain static information, real-time information, or both static and real-time information about thermal stability. The term "static information" corresponding to a particular resource label may refer to a design value, a specification value, or a nominal value of the resource label. Furthermore, the term "real-time information" for a particular resource label may refer to a real-time value or a configured value of the resource label. For example, a resource label such as the number of cores in a particular work node may have a static value of 12, i.e., a specified number of cores (e.g., 12).The total number of cores), of which only a few can be active during the operation of a given work node. Accordingly, the number of active cores, e.g., 10 active cores, can represent real-time information regarding the resource label. Examples of the first set of resource labels include a processor's thermal design power (TDP), processor temperature, memory module temperature, fan speed, platform form factor, thermal configuration, turbo spread, or the number of active cores. The feature publisher agent FPA1 can determine the values of one or more of the first set of resource labels and publish the first set of resource labels and their respective values.
[0023] Furthermore, resource labels corresponding to platform characteristics such as memory and bandwidth are referred to below as the second set of resource labels, whose associated values can contain static information, real-time information, or both. Examples of the second set of resource labels include, but are not limited to, a data rate, a bus width, a number of memory modules, and a number of memory sockets. The feature publisher agent FPA1 can determine the values of one or more resource labels in the second set and publish the second set of resource labels and their respective values.
[0024] Furthermore, the resource labels corresponding to the platform feature, such as compute power, are referred to below as the third set of resource labels, whose associated values may contain static information, real-time information, or both static and real-time information about compute power. Examples of the third set of resource labels include one or more actively configured core C states, a jitter value flag, or an OS interrupt affinity setting. The feature publisher agent FPA1 can determine the values of one or more of the third set of resource labels and publish the third set of resource labels and their respective values.
[0025] Furthermore, resource labels corresponding to the platform feature, such as security, are referred to below as the fourth set of resource labels, whose associated values may contain static information, real-time information, or both static and real-time information about the security capability of work node 102. Examples of the fourth set of resource labels include, but are not limited to, one or more of the following: an application security capability, an operating system hardening capability, a secure boot capability, and a silicon root of trust capability. The feature publisher agent FPA1 can determine the values of one or more resource labels from the fourth set and publish the fourth set of resource labels and their respective values.
[0026] In some examples, the feature publisher agent FPA1 can retrieve the resource tagging and its values by sending resource tagging data (in Fig. 1 (designated as RLD_WN1 103), corresponding to work node 102, publish to management node 108 via network 110. For example, the resource label data 103 can contain key-value pairs, such as resource labels (e.g., resource label names) and their respective values for some or all of the first set of resource labels, the second set of resource labels, the third set of resource labels, or the fourth set of resource labels corresponding to work node 102. Similarly, feature publisher agents FPA2 and FPA3 can also publish resource label data 105 (in Fig. 1 (referred to as RLD_WN2) and 107 (in Fig.The resource tag data (designated as RLD_WN3) from work nodes 104 and 106 is sent to management node 108. Resource tag data 105 and 107 can contain key-value pairs, such as the resource tags and their respective values for work nodes 104 and 106.
[0027] Management node 108 can receive resource tags and their values (in the form of resource tag data 103, 105, 107) from the majority of work nodes 102-106. Furthermore, management node 108 can also receive a workload provisioning request, which includes a description of the workload to be provisioned. Management node 108 can manage the workload provisioning based on a workload description (described later) and one or more user-defined resource tags, which are determined based on the resource tags (described later) received from the majority of work nodes 102-106. As described in Fig.As shown in Figure 1, the management node 108 can, in some examples, be a device containing a processor or microcontroller and / or other electronic components, or a device or system capable of providing various computing and / or data storage services. Examples of the management node 108 include, but are not limited to, a desktop computer, laptop, smartphone, server, computer device, workstation, storage system, or a converged or hyperconverged system configured to manage workload delivery. Furthermore, in certain examples, the management node 108 can be a virtual machine or a containerized application running on the hardware of the networked system 100.
[0028] In some examples, the management node 108 may include a processing resource 112 and a machine-readable medium 114. The machine-readable medium 114 may be any electronic, magnetic, optical, or other physical storage device capable of storing data and / or executable instructions 116. For example, the machine-readable medium 114 may include one or more random access memory (RAM) modules, an electrically erasable programmable read-only memory (EEPROM), a storage drive, flash memory, a compact disc read-only memory (CD-ROM), and the like. The machine-readable medium 114 may be non-transferable. As detailed here, the machine-readable medium 114 may be encoded with the executable instructions 116 to perform one or more methods, such as those described in the Fig. 4 and Fig. 5 described methods.
[0029] Furthermore, the processing resource 112 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), a field-programmable gate array (FPGA), other hardware devices capable of retrieving and executing instructions 116 stored in the machine-readable medium 114, or combinations thereof. The processing resource 112 can retrieve, decode, and execute the instructions 116 stored in the machine-readable medium 114 to manage the delivery of a workload (described below).Alternatively or additionally to executing instructions 116, the processing resource 112 may contain at least one integrated circuit (IC), control logic, electronic circuits, or combinations thereof, comprising a set of electronic components for performing the functions to be executed by the management node 108 (as described below). Furthermore, in certain examples where the management node 108 may be a virtual machine or a containerized application, the processing resource 112 and the machine-readable medium 114 may represent a processing resource and a machine-readable medium of the hardware or computer system that hosts the management node 108 as a virtual machine or containerized application.
[0030] During operation, the processing resource 112 can receive the resource label data 103, 105, and 107 from the work nodes 102, 104, and 106, respectively, and store the received resource label data 103, 105, and 107 in the machine-readable medium 114 as a resource label store 118. In some examples, the processing resource 112 can receive the resource label data 103, 105, and 107 periodically or at random intervals from the work nodes 102, 104, and 106, respectively. Furthermore, the processing resource 112 can determine the values of one or more user-defined resource labels for each of the multiple work nodes 102-106. Examples of user-defined resource labels determined by the processing resource 112 might include, but are not limited to, a turbo index, a memory bandwidth index, a jitter index, or a security index.In some examples, the processing resource 112 can determine a value for each user-defined resource tag of one or more user-defined resource tags based on values of the respective sets of resource tags, such as the first set of resource tags, the second set of resource tags, the third set of resource tags, or the fourth set of resource tags.
[0031] The following description presents example calculations of these custom resource labels based on one or more resource labels from the respective sets of resource labels for illustrative purposes. It should be noted that other resource labels from the respective set of resource labels or other sets of resource labels may also be used to determine the value of the custom resource labels without limiting the scope of this disclosure. Furthermore, in some examples, relationships or equations other than those presented in this disclosure may be used to determine the values of the custom resource labels without limiting the scope of this disclosure.
[0032] The Turbo Index for a given work node is an example of a user-defined resource tag, and a Turbo Index value can indicate that particular work node's ability to operate without failure under demanding conditions, such as large frequency fluctuations. For a given work node, a higher Turbo Index value indicates a better ability for the work node to handle high frequency demands during its operation. In some examples, processing resource 112 can determine the Turbo Index based on one or more of the first set of resource tags.To determine the Turbo Index for a given work node, the processing resource 112 can retrieve one or more of the first group of resource labels and their respective values from the resource label memory 118 and calculate the Turbo Index based on certain predefined relationships between one or more of the first group of resource labels. For example, the Turbo Index for a given work node can be determined based on resource labels such as the Turbo Spread Index, the TDP of the processors, and the number of active cores on the given work node. In one example, the processing resource 112 can calculate the Turbo Index (TI). k ) for a worker node k using the following equation (1). TIk=TurboSpreadIndexk*NkTDPk whereupon, TurboSpreadindex k for a turbo spread index (see below) for the work node k, N kk represents the number of active cores on the work node, TDP k k represents a thermal design point of the work node, and k represents one of the worker nodes 102, 104, or 106. Equation (1) provides a calculation example for determining the turbo index for illustrative purposes. In some other examples, values of other resource identifiers from the first set of resource identifiers or other sets of resource identifiers may also be used to calculate the turbo index without limiting the scope of this disclosure.
[0033] In some examples, the Turbo Spread Index (TurboSpreadIndex) k ) can be based on values of a basic operating frequency (F base_k ), a minimum operating frequency (F min_k ) and a maximum operating frequency (F max_k) (e.g., turbo frequency) of a processor for the work node k. For example, the base operating frequency might be a frequency at which the processor is designed to operate when approximately half of its cores are active. The minimum operating frequency can be achieved when all of the processor's cores are active. The maximum operating frequency can be achieved when only a single core of the processor is active. In some examples, the turbo spread index (TurboSpreadIndex) might be used. k ) based on a frequency spread (F spread_k ) and a frequency increase (F boost_k ) for the given work node k. The processing resource 112 can handle the frequency spread (F spread_k ) and the frequency boost (F boost_k ) using the following equation (2) or equation (3). Fspread_k=(Fmax_k−Fmin_k)*10 Fboost_k=(Fmax_k−Fbase_k)*10
[0034] Accordingly, in some examples, the processing resource 112 can be the Turbo Spread Index (TurboSpreadIndex). k ) as equal to the frequency boost (F boost_k ), if the frequency spread is less than or equal to zero (i.e., F spread_k ≤ 0). However, if the frequency spread is greater than zero (i.e., F spread_k > 0), the processing resource 112 can use the Turbo Spread Index (TurboSpreadIndex). k ) using equation (4). TurboSpreadIndexk=Fboost_kFspread_k
[0035] Furthermore, the Jitter Index for a given work node is another example of a user-defined resource label, and a Jitter Index value can indicate the amount of computation cycles lost due to blocking when the processor changes its operating frequency. For the given work node, a higher Computational Jitter Index value indicates greater performance variability due to frequency fluctuations and thus a lower degree of deterministic or predictable performance. In some examples, processing resource 112 can determine the Computational Jitter Index based on one or more of the third group of resource labels.To determine the jitter index for the given work node, the processing resource 112 can retrieve the third set of resource labels and their respective values from the resource label repository 118 and calculate the jitter index based on certain predefined relationships between one or more resource labels from the third set. For example, the computational jitter index (CJI) can be calculated as follows: k ) for the given working node k based on the frequency increase (F boost_k ), a jitter value flag (JF k ) and the number of actively configured core C states (NC) k ) can be determined using the following equation (5). CJIk=JFk*(Fmax_k+NCk)*10 where the jitter value flag JF k can be set to zero (0) if jitter control is enabled. Alternatively, the jitter value flag JF can be used. kwill be set to one (1) if jitter control is disabled.
[0036] Furthermore, the memory bandwidth index for a specific worker node is another example of a user-defined resource label, and its value can indicate how quickly that worker node can process memory transactions. A higher memory bandwidth index value for a particular worker node indicates its ability to move larger amounts of data between the processor and storage devices, resulting in improved performance. In some examples, processing resource 112 can determine its memory bandwidth index based on one or more of the second set of resource labels.To determine the memory bandwidth index, the processing resource 112 for the given work node k can retrieve the second set of resource labels and their respective values from the resource label repository 118 and calculate the memory bandwidth index (MBI). k ) based on certain predefined relationships between one or more resource labels from the second set of resource labels. For example, processing resource 112 can calculate the memory bandwidth index (MBI). k ) for the work node k using the following equation (6). MBIk=(PBWkABWk)*10 where, PBW k the maximum (or theoretical) memory bandwidth of the work node k and ABW k for the available memory bandwidth of the work node k with configuration restrictions.
[0037] In some examples, the maximum memory bandwidth PBW is used. k for the work node k, based on the specification or the nominal data rate (DR) spec_k ) (e.g., maximum data rate) supported by a memory module (e.g., DIMM) installed in the work node, regardless of the memory module's bus width (BUS). width_k ), the maximum number of memory modules supported per channel (MM) max_k ) and the number of memory sockets (N sockets_k For example, the processing resource 112 can have a maximum memory bandwidth of PBW. k for the working node k using the following equation (7). PBWk=DRspec_k*(BUSwidth_k8)*MMmax_k*Nsockets_k
[0038] Furthermore, the available storage bandwidth ABW k for the work node k, based on an actual data rate (DR) actual_k) of the memory module installed in the work node (e.g. DIMM) of the bus width of the memory module (BUS) width_k ), the actual number of memory modules supported per channel (MM actual_k ) and the number of memory sockets (N sockets_k The processing resource 112 can, for example, determine the available memory bandwidth ABW. k for the working node k using the following equation (8). ABWk=DRactual_k*(BUSwidth_k8)*MMactual_k*Nsockets_k
[0039] In an example for the work node k with a specified data rate (DR) spec_k ) 2933 MT / s, the actual data rate (DR) spec_k ) 2933 MT / s is the bus width of the memory module (BUS width_k ) 64 is the maximum number of memory modules (MM) supported per channel. max_k ) is 2, and the number of memory sockets (N) sockets_k ) 2, the peak storage bandwidth PBW can kthan 282 Gbit / s and the available storage bandwidth ABW k can be determined as 282 Gbit / s. Consequently, the memory bandwidth index MBI can be determined for the working node k. k can be determined as 10. In another example, the work node k can be assigned a specified data rate (DR). spec_k ) 2933 MT / s, the actual data rate (DR) spec_k ) 2667 MT / s, the bus width of the memory module (BUS width_k ) 64 is, and the maximum number of memory modules (MM) supported per channel max_k ) is 2, the number of memory sockets (N sockets_k ) 2 is, the peak storage bandwidth PBW can k than 282 Gbit / s and the available storage bandwidth ABW k can be set to 256 Gbit / s. Consequently, the memory bandwidth index MBI is used for the work node. k be determined as 9.
[0040] In some examples, the security index for a particular work node is another example of a user-defined resource label, and the security index value can indicate how secure that work node is against security threats. A higher security index value for a particular work node indicates that the work node is better able to process secure transactions. In some examples, the processing resource 112 can determine the security index based on one or more of the fourth set of resource labels.To determine the security index for a given work node, the processing resource 112 can retrieve the fourth set of resource labels and their respective values from the resource label store 118 and calculate the security index based on certain predefined relationships between one or more resource labels from the fourth set. For example, predefined weights can be assigned to each of the fourth set of resource labels, such as application security capability, operating system hardenability, secure boot capability, and silicon root-of-trust capability. Table 1 below shows an example of the weighting of the fourth set of resource labels. Table 1: Example of the weighting of the fourth group of resource labels Label n Ability to ensure application safety Hardenability of the operating system Safe boating capability Silicon root of trust capability Weight 4 2 1 3
[0041] For illustration, Table 1 shows example weights. In some examples, any suitable weights can be assigned to one or more of the fourth set of resource labels. In the example in Table 1, a total weight of 10 is distributed among the four resource labels. Accordingly, in some examples, the processing resource 112 can determine the safety index for the given work node based on the weights assigned to the one or more resource labels of the fourth set. In particular, in one example, the safety index for the given work node can be determined as the sum of the weights of one or more resource labels of the fourth set that are applicable to the given work node.For example, if the given work node does not have the Safe Startup capability but possesses the other capabilities shown in Table 1, the work node has a safety index of nine (9). Another example: If the given work node does not have the Silicon Root of Trust capability but possesses the other capabilities shown in Table 1, the work node is said to have a safety index of seven (7).
[0042] In some examples, once the values of the custom resource labels are determined, the processing resource 112 can store these determined values in the machine-readable medium as a custom resource label repository 120. In the custom resource label repository 120, the processing resource 112 can, for example, store custom resource labels and their respective values for each other work node 102-106. Table 2 shows an example of data stored in the custom resource label repository 120. Table 2: Sample data stored in the custom resource label repository 120 worker node Turbo Index Memory bandwidth index Computational Jitter Index Security index 102 6 7 1 4 104 10 9 3 9 106 8 10 5 10
[0043] Please note that the values for user-defined resource labels shown in Table 2 are for illustrative purposes only. Example values for user-defined resource labels can be determined using the corresponding resource labels and sample calculations presented in the description above.
[0044] Furthermore, during its operation, management node 108 can receive a request to deploy a workload (hereinafter referred to as a workload deployment request) to the cluster (the networked system of nodes). In accordance with aspects of this disclosure, management node 108 can facilitate the deployment of the workload to a work node among work nodes 102-106 that best meets the workload requirements. In some examples, management node 108 can identify the correct type of work node based on the values of the user-defined resource tags of work nodes 102-106 and the information contained in the received workload deployment request.
[0045] In some examples, the management node 108 can receive the workload deployment request in the form of a workload configuration file (e.g., a pod manifest file, such as a YAML file if the workload is a pod). Upon receiving the workload deployment request, the processing resource 112 can store the workload configuration file, e.g., a workload configuration file 122, on the machine-readable medium 114. The workload configuration file 122 can be defined by one or more parameters, including a workload description. In particular, the workload description can specify certain requirements for the workload.In some examples, the workload description may include information about one or more business Service Level Agreements (SLAs), standard application workload names, component affinity attributes, generic descriptions, or architectural attributes that correspond to the workload.
[0046] Examples of business SLAs include response time, availability, throughput, cost optimization, energy optimization, scalability, and flexible capacity. Other examples of standard application workload names include Java, MSSQL, Oracle, MongoDB, and Cassandra. Further examples of general descriptions include one or more NoSQL databases (DBs), RDBMS, in-memory DBs, and time-series DBs. Additionally, examples of component affinity attributes include, but are not limited to, compute-intensive, memory-intensive, or network-dependent. Furthermore, examples of architectural attributes include, but are not limited to, fine-grained details such as the presence of software parallelism (multi-threading), whether the workload is hardware-accelerated (GPUs or FPGAs), the use of vector instructions, or memory access patterns (load-intensive or memory-intensive).
[0047] In the Fig. 2A, Fig. 2A and Fig. Examples 200A, 200B, and 200C from workload configuration file 122 are shown below. As shown in Fig. Figure 2A depicts the workload configuration file 200A, which can define an initial workload. In workload configuration file 200A, the workload descriptions can include the application type "Java" and the business SLA metric "Throughput." Accordingly, the initial workload from processing resource 112 can be identified as a Java application requiring high throughput. Similarly, in Fig.2B shows the workload configuration file 200B, which can define a second workload. In the workload configuration file 200B, the workload description can include the application type "Credit Card Management" and the SLA metric "Security." Accordingly, the second workload can be identified by the processing resource 112 as a credit card management application that requires high data security. Furthermore, in Fig. 2C shows the workload configuration file 200C, which can define a third workload. In the workload configuration file 200C, the workload descriptions can include an application type "Business Accounting Application" and a business SLA metric "Security." Accordingly, the third workload can be identified by the processing resource 112 as a business accounting application that requires a high level of data security.
[0048] Back to Fig.1: In some examples, for a received workload deployment request, processing resource 112 can create a prioritized list of custom resource labels based on the workload description that corresponds to the workload to be deployed. The prioritized list of custom resource labels can be an ordered list of custom resource labels according to their relevance to the workload description. In one example, processing resource 112 can order the custom resource labels in descending order of their relevance to the workload.Processing resource 112 can create the prioritized list of user-defined resource tags for the workload based on an initial knowledge base that contains a mapping between multiple workload descriptions and prioritized lists of user-defined resource tags. In some examples, processing resource 112 can store the initial knowledge base on machine-readable medium 114. Table 3 below shows an example of an initial knowledge base. Table 3: Example of a first knowledge base Workload descriptions Prioritized list with user-defined resource labels First priority (highest priority) Second priority Third priority Fourth priority (lowest) Java, throughput Turbo Index Memory bandwidth index Security index Computational Jitter Index Credit card management, security Turbo Index Security index Memory bandwidth index Computational Jitter Index Business accounting, security Turbo Index Security index Memory bandwidth index Computational Jitter Index Java, Security Turbo Index Security index Memory bandwidth index Computational Jitter Index Mathematical application, accuracy Turbo Index Calculated Jitter Index Memory bandwidth index Security index
[0049] In some examples, upon receiving a workload deployment request, processing resource 112 can parse its workload configuration file to identify the workload descriptions contained within. Parsing the workload configuration file might involve analyzing the text to find predefined attributes that represent the workload description. Once the workload descriptions are identified, processing resource 112 can create a prioritized list of custom resource tags for the workload to be deployed, referencing the initial knowledge base. For example, if a workload deployment request is for a workload such as the first workload defined by workload configuration file 200A (see Fig.2A) is defined, and is received from the management node 108, the processing resource 112 can generate the prioritized list of user-defined resource tags as "Turbo Index, Memory Bandwidth Index, Security Index and Computation Jitter Index", where the first entry in the prioritized list represents a user-defined resource tag with the highest relevance and the last entry in the prioritized list represents a user-defined resource tag with the lowest relevance for the first workload.
[0050] Similarly, the processing resource 112 can generate the prioritized list of user-defined resource tags as "Turbo Index, Security Index, Memory Bandwidth Index, and Computation Jitter Index" when the management node 108 receives a workload deployment request for the deployment of the second workload specified by the workload configuration file 200B (see Fig.2B). Similarly, the processing resource 112 can generate the prioritized list of user-defined resource tags as "Turbo Index, Security Index, Memory Bandwidth Index, and Computation Jitter Index" when the management node 108 receives a workload deployment request to deploy the third workload defined by the workload configuration file 200C (see Fig. 2C) is defined.
[0051] Once the prioritized list of custom resource tags for the workload is created, processing resource 112 can identify a work node from work nodes 102-106 based on the values of the custom resource tags of work nodes 102-106 and the prioritized list of custom resource tags created according to the workload. Specifically, in some examples, processing resource 112 can select a work node that has the highest value of a custom resource tag at the entry with the highest relevance (e.g., the first entry) in the prioritized list among work nodes 102-106.In some examples, if processing resource 112 detects a tie in the values of the first entry in the prioritized list of user-defined resource labels, it can begin performing a similar check for the remaining entries in the prioritized list of user-defined resource labels, in descending order of relevance. For example, for a workload like the first workload, which has the turbo index as the first entry in the prioritized list of user-defined resource labels, processing resource 112 can select a work node with the highest turbo index value among work nodes 102-106. As shown in Table 2, the turbo index value (e.g., 10) for work node 104 is the highest among work nodes 102-106.Accordingly, processing resource 112, like the first workload, can select work node 104 as the host work node for the workload. It should be noted that in some examples, processing resource 112 can also generate the prioritized list of user-defined resource tags by ordering the user-defined resource tags in ascending order of relevance to the workload, in which case the operations for identifying a suitable host work node can be adapted accordingly without limiting the scope of this disclosure.
[0052] In another example, processing resource 112 for the workload, such as the second workload whose security index is the first entry in the prioritized list of user-defined resource tags, can select a work node with the highest security index value among work nodes 102-106. As shown in Table 2, the security index value (e.g., 10) for work node 106 is the highest among work nodes 102-106. Accordingly, processing resource 112 for the workload, such as the third workload, can select work node 106 as the host work node. Similarly, processing resource 112 for the workload, such as the workload defined by workload configuration file 200C, can select work node 104 as the host work node.
[0053] Once the host work node for the requested workload is identified, management node 108 can deploy the workload to the work node identified as the host work node. In some examples, processing resource 112 can deploy the first and third workloads to work node 104 and the second workload to work node 106 when workloads such as the first, second, and third workloads are requested for deployment.
[0054] Furthermore, in some examples, processing resource 112 can continuously update resource label repository 118 based on incoming resource label data from 103, 105, and 105, and update the values of the custom resource labels. In certain examples, processing resource 112 can also redistribute workloads based on the updated values of the custom resource labels and the prioritized list of custom resource labels, if necessary. For example, if the memory bandwidth index of work node 106 decreases from 10 to 8 over time, and the memory bandwidth index of work node 106 does not decrease (e.g., remains the same or increases), processing resource 112 can redistribute the second workload from the third work node 106 to the second work node 104.
[0055] The management node 108 presented here facilitates improved workload planning and deployment by using intelligently generated, custom resource tags. The values of these tags can be automatically calculated and / or updated based on multiple granular resource tags published by the work nodes. By building planning or deployment capabilities on workload orchestration systems (such as Kubernetes) based on published performance and security capabilities or limitations, users can run workloads, such as business applications, taking into account the hardware and software capabilities and / or vulnerabilities of work nodes like work nodes 102-106.Particularly due to the improved workload provisioning achieved through various example aspects presented here, workloads can be executed on a well-equipped work node with sufficient resources to meet their requirements. Provisioning workloads based on the values of custom resource labels and workload descriptions can enable improved performance and security for workloads on networked systems (e.g., Kubernetes clusters) on the customer's premises or in as-a-service offerings. Because the values of custom resources and workload descriptions are determined automatically and dynamically during operation, manual intervention can be reduced or eliminated.
[0056] In Fig.Section 3 now presents a flowchart illustrating a procedure for providing a workload according to an example. For illustration, the procedure is shown in conjunction with the networked system. Fig. 1 described. The procedure can comprise the procedure blocks 302, 304, 306 and (hereinafter collectively referred to as blocks 302-308) that can be executed by a processor-based system such as the management node 108. In particular, the operations in each of the procedure blocks 302-308 can be performed by the processing resource 112 by executing the instructions 116 stored on the machine-readable medium 114 (see Fig. 1) Furthermore, it should be noted that in some examples the execution order of blocks 302-308 may differ from that shown in the example. Fig.4 is shown. For example, blocks 302-308 can be implemented in series, in parallel, or in a series-parallel combination.
[0057] In block 302, processing resource 112 can receive values from resource labels that relate, for example, to platform characteristics of the multiple work nodes 102-106. Furthermore, in block 304, processing resource 112 can determine the values of one or more user-defined resource labels for each of the multiple work nodes 102-106. Specifically, a value for each of the one or more user-defined resource labels can be determined based on the values of a particular set of resource labels. Additional details regarding the determination of the values of the user-defined resource labels were provided in conjunction with Fig.1 described. In addition, the processing resource 112 in block 306 can receive a workload deployment request containing a workload description for a workload to be deployed. Upon receipt, the processing resource 112 can store a workload configuration file (e.g., the workload configuration file 122) containing the workload description corresponding to the workload on the machine-readable medium 114. Furthermore, in some examples in block 308, the processing resource 112 can deploy the workload to a work node of the plurality of work nodes 102-106 based on the workload description and the values of the user-defined resource tags, similarly to the procedure described in the following examples. Fig. 1. Provide as described.
[0058] Fig.Figure 4 shows a flowchart illustrating a procedure 400 for providing a workload according to another example. For illustration, procedure 400 is shown in conjunction with the networked system 100. Fig. 1 described. Procedure 400 can comprise procedure blocks 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, and 422 (hereinafter collectively referred to as blocks 402-422), which can be executed by a processor-based system, e.g., the management node 108. In particular, the operations in procedure blocks 402-422 can be performed by the processing resource 112 by executing the instructions 116 stored on the machine-readable medium 114. For the sake of brevity, certain details of various aspects presented in blocks 402-422 are not repeated, as such details are already described in one or more of the Fig.1-3 were described. Furthermore, it should be noted that in some examples the execution order of blocks 406-422 differs from that described in Fig. The order shown in section 4 may differ. For example, blocks 402-422 can be arranged in a row, in parallel, or in a row-parallel combination.
[0059] In block 402, processing resource 112 can obtain values from resource labels that relate, for example, to platform characteristics of the multiple work nodes 102-106. Furthermore, in block 404, processing resource 112 can determine the values of one or more user-defined resource labels for each of the multiple work nodes 102-106. In some examples, determining the values of one or more user-defined resource labels in block 404 might include determining one or more user-defined resource labels such as the turbo index, memory and bandwidth index, computational jitter index, or security index. For example, in block 406, processing resource 112 might determine a turbo index value based on one or more resource labels from the first set of resource labels.Furthermore, in some examples in block 408, processing resource 112 can determine a value for the memory and bandwidth index based on one or more resource labels from the second set. Additionally, in certain examples in block 410, processing resource 112 can determine a value for the computational jitter index based on one or more resource labels from the third set. Furthermore, in some examples in block 412, processing resource 112 can determine a value for the security index based on one or more resource labels from the fourth set. It should be noted that executing the operation in block 404 may involve executing some or all of blocks 406-412. Furthermore, the operations in blocks 406 and 406 can be executed sequentially, in parallel, or in a combination of both.
[0060] Furthermore, in Block 414, the processing resource 112 can receive a workload deployment request containing a workload description. As mentioned earlier, the workload can be described via a workload configuration file (e.g., workload configuration file 122). In Block 416, the processing resource 112 can identify the workload description from workload configuration file 122 by parsing workload configuration file 122. Additionally, in some examples in Block 418, the processing resource 112 can create a prioritized list of user-defined resource labels for the workload based on the workload description.Furthermore, processing resource 112 in block 420 can identify the work node based on the prioritized list of user-defined resource tags and the values of the user-defined resource tags of the multitude of work nodes 102-106. Additionally, processing resource 112 in block 422 can deploy the workload to the identified work node.
[0061] Fig.Figure 5 shows a block diagram representing a processing resource and a machine-readable medium encoded with example instructions to facilitate improved workload delivery according to an example. The machine-readable medium can be non-transitory and is alternatively referred to as non-transitory machine-readable medium. In some examples, the processing resource can access the machine-readable medium. In some examples, the processing resource can represent an example of processing resource 112 of management node 108. Furthermore, the machine-readable medium can represent an example of machine-readable medium 114 of management node 108.
[0062] The machine-readable medium can be any electronic, magnetic, optical, or other physical storage device capable of storing data and / or executable instructions. Therefore, the machine-readable medium can be, for example, RAM, EEPROM, a storage drive, flash memory, a CD-ROM, or the like. As detailed herein, the machine-readable medium can contain executable instructions (hereinafter referred to collectively as instructions) for performing the action described in Fig. 3 described in the 300 procedure may be encoded. Although not shown, 504 the machine-readable medium may in some examples be encoded with certain additional executable instructions to enable the procedure described in 400. Fig. 4 and / or other operations carried out by Management Node 108, without limiting the scope of this disclosure.
[0063] The processing resource can be a physical device, such as one or more CPUs, one or more semiconductor-based microprocessors, one or more GPUs, ASICs, FPGAs, other hardware devices capable of retrieving and executing the instructions stored in the machine-readable medium, or combinations thereof. In some examples, the processing resource can retrieve, decode, and execute the instructions stored in the machine-readable medium to distribute workloads to one or more of the work nodes. In certain examples, the processing resource can, alternatively or in addition to retrieving and executing the instructions, include at least one IC, other control logic, other electronic circuitry, or combinations thereof, containing a set of electronic components for performing the functions assigned by the management node. Fig.1 are to be executed.
[0064] The instructions, when executed by the processing resource 506, can cause the processing resource 502 to obtain values of resource labels related to platform properties of the multiple work nodes 102-106. Furthermore, the instructions, when executed by the processing resource 508, can cause the processing resource 502 to determine values of one or more user-defined resource labels for each of the multiple work nodes 102-106. In some examples, a value for each user-defined resource label is determined based on the values of a specific set of resource labels.Furthermore, when executed by the processing resource, the instructions can cause the processing resource to receive a workload deployment request containing a workload description. Additionally, when executed by the processing resource, the instructions can cause the processing resource to deploy the workload based on the workload description and the values of one or more user-defined resource identifiers on a work node of the plurality of work nodes 102-106.
[0065] Although specific implementations have been shown and described above, various changes in form and details are possible. For example, some features and / or functions described in relation to one implementation and / or process may also apply to other implementations. In other words, processes, features, components, and / or properties described in relation to one implementation may also be useful in other implementations. Furthermore, it should be noted that the systems and procedures described here may include various combinations and / or sub-combinations of the components and / or features of the different implementations described.
[0066] The foregoing description includes numerous details to facilitate understanding of the subject matter disclosed herein. However, the implementation can also be carried out without some or all of these details. Other implementations may involve modifications, combinations, and variations of the details described above. The following claims are intended to cover such modifications and variations.
Claims
[1] A management node (108) comprising the following: a processing resource (112); and a machine-readable medium (114) that stores one or more instructions (116) which, when executed by the processing resource (112), cause the processing resource (112) to: to obtain values of resource labels relating to platform properties of a variety of work nodes (102-106), the platform properties including one or more of the following features: thermal stability, storage and bandwidth, computing power or security; Determining values of one or more user-defined resource label(s) for each of the plurality of work nodes (102-106), wherein a value of each user-defined resource label of the one or more user-defined resource labels is determined based on values of a respective set of resource labels of the resource labels; received a workload deployment request that includes a workload description of a workload; Determine, based on the workload description and at least some of the values of the one or more user-defined resource labels, a selected work node (102-106) from the plurality of work nodes (102-106) for use in provisioning; and provide the workload on the selected work node (102-106) of the plurality of work nodes (102-106), thereby causing the execution of the workload by the selected work node (102-106). [2] Management node (108) according to claim 1, wherein the set of resource labels comprises one or more of the following elements: a first set of resource labels with static information, real-time information, or both static and real-time information about thermal stability; a second set of resource labels containing static information, real-time information, or both static and real-time information about memory and bandwidth; a third set of resource labels that include static information, real-time information, or both static and real-time information about computing power; or a fourth group of resource labels that contain static information, real-time information, or both static and real-time information about the security. [3] Management node (108) according to claim 1, wherein one user-defined resource label of the one or more user-defined resource labels is a Turbo Index, and wherein the instructions (116), when executed, cause the processing resource (112) to determine a value of the Turbo Index based on one or more from a first set of resource labels, which include one or more from a thermal design point of a processor, a temperature of the processor, a temperature of a memory module, a fan speed, a platform form factor, a thermal configuration, or a number of active cores. [4] Management node (108) according to claim 1, wherein one user-defined resource label of the one or more user-defined resource labels is a memory bandwidth index, wherein the instructions (116), when executed, cause the processing resource (112) to determine a value of the memory bandwidth index based on one or more of a second set of resource labels, which include one or more of a data rate, a bus width, a number of memory modules, or a number of memory sockets. [5] Management node (108) according to claim 1, wherein one user-defined resource label of the one or more user-defined resource labels is a computational jitter index, wherein the instructions (116), when executed, cause the processing resource (112) to determine a value of the computational jitter index based on one or more of a third set of resource labels, which include one or more of a number of actively configured core C states, a jitter value flag, or an OS interrupt affinity setting. [6] Management node (108) according to claim 1, wherein a user-defined resource label of one or more user-defined resource labels is a security index, wherein the instructions (116), when executed, cause the processing resource (112) to determine a value of the security index based on one or more of a fourth set of resource labels, comprising one or more of an application security capability, an operating system hardening capability, a secure boot capability, and a silicon root of trust capability. [7] Management node (108) according to claim 1, wherein the workload comprises one or more containers, a pod, a virtual machine or a containerized application. [8] Management node (108) according to claim 1, wherein the instructions (116), when executed, cause the processing resource (112) to generate a prioritized list of user-defined resource labels for the workload based on the workload description. [9] Management node (108) according to claim 8, wherein the instructions (116), when executed, cause the processing resource (112) to identify the selected work node (102-106) based on the prioritized list of user-defined resource labels and the values of one or more user-defined resource labels of the plurality of work nodes (102-106). [10] A method (300; 400) comprising the following: Obtained (302; 402), by a processor-based system (108), from values of resource labels that define platform properties of a variety of work nodes (102-106), the platform properties comprising one or more of the following features: thermal stability, memory and bandwidth, computing power or security; Determine (304; 404), by the processor-based system (108), values of one or more user-defined resource label(s) for each of the plurality of work nodes (102-106), wherein a value of each user-defined resource label of the one or more user-defined resource labels is determined based on values of a respective set of resource labels of the resource labels; Receiving (306; 414) a workload deployment request, which includes a workload description, by the processor-based system (108); Determine (420), by the processor-based system (108), based on the workload description and at least some of the values of the one or more user-defined resource labels, a selected work node (102-106) of the plurality of work nodes (102-106) for use in provisioning; and Provisioning (308; 422) of the workload by the processor-based system (108) to the selected work node (102-106) of the plurality of work nodes (102-106), thereby causing the execution of the workload by the selected work node (102-106). [11] Method (300; 400) according to claim 10, wherein determining (304; 404) the values of one or more user-defined resource labels comprises determining one or more of the following elements: a value of a Turbo Index (406) based on one or more of a first set of resource labels that include a thermal design point of a processor, a processor temperature, a memory module temperature, a fan speed, or a number of active cores; a value of a memory bandwidth index (408) based on one or more of a second set of resource labels that include one or more data rates, a bus width, a number of memory modules, and a number of memory sockets; a value of a computational jitter index (410) based on one or more of a third set of resource labels, comprising a number of actively configured core C states, a jitter value flag, and an operating system interrupt affinity setting; or a security index value (412) based on one or more of a fourth set of resource labels, which include one or more of the following capabilities: an application security capability, an operating system hardening capability, a secure boot capability, and a silicon root of trust capability. [12] Method (300; 400) according to claim 10, further comprising identifying the workload description from a workload configuration file of the workload. [13] Method (300; 400) according to claim 10, further comprising generating a prioritized list of user-defined resource labels for the workload based on the workload description. [14] Method (300; 400) according to claim 13, further comprising identifying (420) the work node (102-106) on the basis of the prioritized list of user-defined resource labels and the values of one or more user-defined resource label(s) of the plurality of work nodes (102-106). [15] Method (300; 400) according to claim 10, wherein the workload consists of one or more containers, a pod, a virtual machine or a containerized application. [16] A non-transitory machine-readable medium (500) that stores instructions (504) that can be executed by a processing resource (502), wherein the instructions (504) comprise: Instructions (506) to obtain values from resource labels relating to platform properties of a plurality of work nodes (102-106), the platform properties including one or more of the following: thermal stability, memory and bandwidth, computing power or security; Instructions (508) for determining values of one or more user-defined resource label(s) for each of the multiple work nodes (102-106), wherein a value of each user-defined resource label of the one or more user-defined resource labels is determined based on values of a respective set of resource labels of the resource labels; Instructions (510) for receiving a workload deployment request with a workload description; Instructions for determining, based on the workload description and at least some of the values of one or more user-defined resource labels, a selected work node (102-106) of the plurality of work nodes (102-106) for use in deployment; and Instructions (512) to deploy the workload to the selected work node (102-106) of the plurality of work nodes (102-106), thereby causing the execution of the workload by the selected work node (102-106). [17] Non-transitory machine-readable medium (500) according to claim 16, wherein the instructions (504) further comprise one or more of the following elements: Instructions for determining a value of a turbo index based on one or more of a first set of resource labels, including a thermal design point of a processor, a processor temperature, a memory module temperature, a fan speed, or a number of active cores; Instructions for determining a value of a memory bandwidth index based on one or more of a second set of resource labels, including a data rate, a bus width, a number of memory modules, and a number of memory sockets; Instructions for determining a value of a computational jitter index based on one or more of a third set of resource labels, comprising a number of actively configured core C states, a jitter value flag, and an operating system interrupt affinity setting; or Instructions to determine a value of a security index based on one or more of a fourth set of resource labels, including one or more of an application security capability, an operating system hardening capability, a secure boot capability, and a silicon trust root capability. [18] Non-transitory machine-readable medium (500) according to claim 16, further comprising instructions for identifying the workload description from a workload configuration file of the workload. [19] Non-transitory machine-readable medium (500) according to claim 16, further comprising instructions for generating a prioritized list of user-defined resource labels for the workload based on the workload description. [20] Non-transitory machine-readable medium (500) according to claim 19, further comprising instructions for identifying the selected work node (102-106) based on the prioritized list of user-defined resource labels and the values of one or more user-defined resource labels of the multiple work nodes (102-106).
Citation Information
Patent Citations
Dynamically organizing cloud computing resources to facilitate discovery
US20120198073A1
Security domains for aware placement of workloads within converged infrastructure information handling systems
US20180260566A1
Per chiplet thermal control in a disaggregated multi-chiplet system
US20190384367A1