US20180219877A1 - Security-based container scheduling - Google Patents
Security-based container scheduling Download PDFInfo
- Publication number
- US20180219877A1 US20180219877A1 US15/420,996 US201715420996A US2018219877A1 US 20180219877 A1 US20180219877 A1 US 20180219877A1 US 201715420996 A US201715420996 A US 201715420996A US 2018219877 A1 US2018219877 A1 US 2018219877A1
- Authority
- US
- United States
- Prior art keywords
- container
- node
- security
- nodes
- security attribute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5015—Service provider selection
Definitions
- a container bundles an application and all its dependencies and libraries into an isolated, resource controlled and easy-to-deploy building block that can run on any operating system in any computing environment.
- Containers can be deployed on either physical or virtual machines in private, public or hybrid clouds, thereby facilitating workload management of large scale applications.
- Multiple containers can run on a single machine and share the operating system kernel, while keeping processes and resources such as memory, CPU and disks isolated from each other. This makes container deployment efficient, fast and lightweight.
- Container development and management systems there are several popular container development and management systems available, such as for example. Docker, Rocket and Kubemetes. These systems include tools for creating and running container images, which are the files that make up the applications that run inside a container. Image files contain all the requirements for running a single container, as well as metadata delineating information and attributes associated with the container.
- Container orchestration engines can manage and schedule the allocation and deployment of containers to a server or cluster of servers.
- Container orchestration engines such as Kubemetes and Docker Swarm provide basic scheduling capabilities, focusing mainly on CPU, memory and storage requirements. Poor management and scheduling of containers can lead to an inefficient utilization of underlying resources and a mismatch between workloads and resources.
- FIG. 1 illustrates a schematic diagram of an environment where a security-based container scheduling system is used in accordance with various examples
- FIG. 2 is a block diagram of an example security-based container scheduling system which may be incorporated into the environment of FIG. 1 ;
- FIG. 3 is a block diagram of another example security-based container scheduling system which may be incorporated into the environment of FIG. 1 ;
- FIG. 4 is a flowchart of example operations of the security-based container scheduling system of FIG. 3 ;
- FIG. 5 is a flowchart of example operations of a discovery engine which may be implemented in the security-based container scheduling system of FIG. 3 ;
- FIG. 6 is a flowchart of example operations of a translation engine, a container scheduler and a resource tracker which may be implemented in the security-based container scheduling system of FIG. 3 ;
- FIG. 7 is another block diagram of an example security-based container scheduling system which may be incorporated into the environment of FIG. 1 .
- a security-based container scheduling system for scheduling a software container to a node is disclosed.
- the security-based container scheduling system automates container scheduling while taking into account security requirements of the container's workload.
- Each container is allocated to a node with security attributes that match the security requirements of the container's workload, thereby ensuring that security is automatically integrated upfront and maintained throughout container development and deployment. Maintaining security is critical for many container workloads, such as those that deal with sensitive data or those that are deployed in a multi-tenant cloud environment.
- a node refers to a computing device on a network, either a virtual or physical machine, such as a personal computer, a cell phone, a printer, or a server, among others.
- Security attributes associated with a node may include, for example, whether secure boot or a Federal Information Processing Standard (“FIPS”) mode is enabled, whether the node has Trusted Platform Module (“TPM”) hardware, whether the node has a specific firmware version that contains hot security fixes, or any other security attribute that may be associated with a node.
- FIPS Federal Information Processing Standard
- TPM Trusted Platform Module
- Each node may have metadata associated with it, which may be in the form of labels or annotations specifying different attributes (e.g., security attributes) related to the node.
- a container image may have metadata specifying different requirements and attributes associated with the container image.
- An example security attribute associated with a container image may be that the container image is required to run on a node with a specific version x of Secure Sockets Layer (“SSL”).
- SSL Secure Sockets Layer
- the security-based container scheduling system is implemented with a discovery engine and a translation engine.
- the discovery engine discovers a node and its node security attributes automatically.
- the translation engine enables container security attributes identified in container image's metadata to be converted into node selectors for templates or passed as parameters in Command Line Interfaces (“CLIs”) or Application Program interfaces (“APIs”) used in container creation.
- CLIs Command Line Interfaces
- APIs Application Program interfaces
- a container scheduler scans metadata associated with nodes, such as for example, nodes that are part of a cluster of nodes, to select a node that has node security attributes listed in its metadata that match the node selectors in the container's creation template or CLI/API. The container is then allocated to the selected node to ensure that its security requirements are maintained throughout its deployment.
- Security-based container scheduling system 100 enables a container 105 to run on a selected node in a cluster of nodes 110 while maintaining its security requirements throughout its deployment.
- a container refers to a running instance of an image, which may include an application, its dependencies, libraries, a file system, parameters and all the files required to run it.
- a container image may have associated metadata specifying different attributes and requirements for running the container.
- container 105 has container image 115 with associated container image metadata 120 that includes container image security attribute 125 .
- Container image security attribute 125 may be in the form of a label or annotation specifying a security requirement for running the container 105 .
- Multiple security attributes and other attributes may be included in container image's metadata 120 .
- Cluster of nodes 110 may include multiple nodes 110 a - f, which may be either virtual or physical machines connected via a network. Each node 110 a - f in cluster 110 may also have associated metadata, such as metadata 130 associated with node 110 c. Metadata 130 may include labels or annotations specifying attributes associated with node 110 c, such as for example, a node security attribute 135 .
- the security-based container scheduling system 100 ensures that container 105 is allocated to a node in cluster 110 that has a node security attribute 135 that matches the container image security attribute 125 (e.g., node 110 c ). Administrator 140 may specify container image security attribute 125 in container image metadata 120 .
- the security-based container scheduling system 100 then automates all the operations required to have container 105 running smoothly and securely in a node in cluster 110 . These operations may include discovery of a node in cluster 110 , discovery of its security attributes, labeling of the node with its discovered security attributes in its metadata, generating a node selector from the container image security attribute 125 , and scheduling the container 105 with the node selector matching a discovered security attribute.
- FIG. 2 shows a block diagram of an example security-based container scheduling system which may be incorporated into the environment of FIG. 1 .
- Security-based container scheduling system 200 has a processor 205 and a set of memory resources 210 .
- a memory resource can include any number of volatile or non-volatile memory components capable of storing instructions that can be executed by a processor. It is appreciated that memory resources 210 may be integrated in a single device or distributed across multiple devices. Further, memory resources 210 may be fully or partially integrated in the same device (e.g., a server) as their corresponding processor 205 or it may be separate from but accessible to their corresponding processor 205 .
- Memory resources 210 store a discovery engine 215 and a translation engine 220 for security-based container scheduling system 200 . It is appreciated that other engines can be added to memory resources 210 for additional or alternative functionality. Each of engines 210 and 215 , and any other engines added to memory resources 210 , may be any combination of hardware (e.g., a processor or other circuitry) and software (e.g., machine or processor-executable instructions, commands, or code such as firmware, programming or object code) to implement the functionalities of the respective engine. Such combinations of hardware and software may be implemented in a number of different ways.
- Discovery engine 215 has instructions to discover a node that is associated with a specific scope.
- the scope can include all nodes connected to a given network switch, all nodes connected to a vLAN, all nodes connected to a rack, all nodes within a specified IP range, all nodes in a cluster of nodes, or all nodes in a logical group that have the same properties (e.g., all nodes of a specific hardware or server model).
- the discovery engine 215 may employ different instructions to discover a node, depending on the node's scope.
- the discovery engine 215 may employ the Link Layer Discovery Protocol (“LLDP”) to discover a node connected to a switch, the Simple Service Discovery Protocol (“SSDP”) or iLO Federation with an IP address filter to discover a node within a specified IP range, or SSDP or iLO Federation with hardware attribute filters to discover a node in a logical group of nodes with specific hardware properties.
- LLDP Link Layer Discovery Protocol
- SSDP Simple Service Discovery Protocol
- iLO Federation with an IP address filter to discover a node within a specified IP range
- SSDP or iLO Federation with hardware attribute filters to discover a node in a logical group of nodes with specific hardware properties.
- the discovery engine 215 proceeds to discover a node security attribute associated with the node and create the corresponding security attribute labels for the node.
- Discovery of a security attribute may be performed with, for example, a Baseboard Management Controller (“BMC”) out-of-band interface resident in a server wherein processor 205 and memory resources 210 are located.
- BMC Baseboard Management Controller
- RedFish API or in-band OS commands may be used for this security attribute discovery. For instance, RedFish can be used to discover whether secure boot or FIPS mode is enabled for a node, whether the node has TPM hardware, whether the node has a specific firmware version that contains hot security fixes, and so on.
- An OS command can be used to discover the OS and SSL/TLS versions of the node. It is appreciated that any number of security attributes may be discovered for a node, using these or other discovery commands or protocols.
- the discovery engine 215 Upon discovery of security attribute(s) for a node, the discovery engine 215 creates the corresponding security attribute labels for the node and adds them to metadata associated with the node (e.g., metadata 130 associated with node 110 c in FIG. 1 ). For example, if the discovery engine 215 discovers that a node has TPM and secure boot is enabled, the discovery engine 215 inserts labels or annotations in the node's metadata to reflect the presence of TPM and secure boot for that node. The discovery engine 215 may do this for every node in a cluster of nodes, e.g., nodes 110 a - f in cluster 110 of FIG. 1 , so that each node in the cluster is labeled with its security attributes) in its metadata.
- metadata associated with the node e.g., metadata 130 associated with node 110 c in FIG. 1 .
- ensuring that a container will execute securely throughout its deployment becomes a matter of allocating the container to the right node with the security-based container scheduling system 200 .
- administrators e.g., administrator 140 shown in FIG. 1
- desired security requirements for a container in its container's image metadata e.g., metadata 120 associated with container image 115 shown in FIG. 1 .
- the administrator 140 can do so when creating the container image or when creating a container creation template.
- the security-based container scheduling system 200 triggers its translation engine 220 to generate one or more node selectors from the container security attribute(s) specified in the container's image metadata.
- the translation engine 220 then associates the node selector(s) with the container, such as, for example, by inserting the node selector(s) in the container creation template or passing it as a parameter in the container creation CLI/API.
- a security-based container scheduling system such as system 300 may work in conjunction with a container orchestration engine 335 , such as, for example, Docker Swarm, Kubermetes, Amazon EC2 Container Service, Azure Container Service, or any other system for deploying containers to a node or cluster of nodes.
- a container orchestration engine 335 such as, for example, Docker Swarm, Kubermetes, Amazon EC2 Container Service, Azure Container Service, or any other system for deploying containers to a node or cluster of nodes.
- container orchestration engines enable administrators to schedule containers in a cluster and manage them based on specific requirements.
- the security-based container scheduling system 300 enables a container scheduler 340 in a container orchestration engine 335 to schedule a container with security attributes defined in its associated metadata to a node that matches those attributes.
- the security-based container scheduling system 300 guarantees that nodes are labeled with their discovered node security attributes and that when containers are created, the container security attributes specified in the container's image metadata are captured by node selectors injected into the container creation templates.
- the discovery engine 315 may also automatically register the discovered node security attributes into a container resource database associated with container scheduler 340 .
- a container scheduler plug-in 325 may be implemented to work with a container scheduler 340 in a container orchestration engine 335 to ensure that multiple security attributes are supported.
- a resource tracker engine 330 may also be used to track the availability of security resources for the nodes. The resource tracker engine 330 may keep a list of available security resources throughout container deployment.
- the scheduler plug-in 325 checks whether a node has the available security resource before placing the container on the node. After the container has been created, the scheduler plug-in 325 then allocates the security resource to the container and removes the allocated security resource from the list of available security resources.
- security-based container scheduling system 300 may be integrated with container orchestration engine 335 or it may be a separate system in a management server used for provisioning and managing a cluster of nodes.
- the security-based container scheduling system 300 may also be implemented in a virtual machine, as a container itself, or in any other mechanism to ensure that containers are allocated to nodes with matching security attributes.
- security-based container scheduling system 200 of FIG. 2 can include one of more structural or functional aspects of security-based container scheduling system of FIG. 3 .
- a node is discovered by the discovery engine 315 ( 400 ).
- the node may be a part of a cluster of nodes provisioned to host containers for an administrator.
- the discovery engine 315 For each discovered node in the cluster, the discovery engine 315 generates a command to discover a node security attribute that is associated with the discovered node ( 405 ).
- the translation engine 320 generates a node selector from a container security attribute specified in metadata associated with a container image ( 410 ).
- the node selector is used by the administrator when deploying a container to run in the cluster such that the node selector is inserted in a container creation template or passed as a parameter in the container creation CLI/API.
- the container is then scheduled for deployment in a selected node in the cluster of nodes ( 415 ).
- the selected node is one that has a node security attribute that matches the node selector associated with the container.
- the scheduling may be performed by scheduler plug-in 325 and container scheduler 340 in container orchestration engine 335 as described above with reference to FIG. 3 .
- the discovery engine 315 first discovers a node in a cluster of nodes ( 500 ). The discovery may be done in a number of ways, including using LLDP, SSDP, or ILO Federation, among others. Next, the discovery engine 315 generates a command to discover a node security attribute associated with the node ( 505 ).
- the node security attribute specifies a security feature included in the node, such as whether secure boot is enabled, whether the node has TPM hardware, whether the node has a specific firmware version that includes hot security fixes and so on.
- the discovery engine 315 then creates labels corresponding to the security attributes ( 510 ) and inserts them in metadata associated with the nodes ( 515 ).
- the discovery engine 315 may also register the node security attributes in a container resource database associated with container scheduler 340 .
- FIG. 6 shows a flowchart of example operations of a translation engine, a container scheduler and a resource tracker which may be implemented in the security-based container scheduling system of FIG. 3 .
- Translation engine 320 automatically generates a node selector from a container security attribute specified in container's image metadata when a container creation request arrives at the security-based container scheduling system 300 ( 600 ).
- the translation engine 320 then associates the node selector with the container ( 605 ) by either adding the node selector to the container creation template or passing it as a parameter in the container creation CLI/API.
- container scheduler plug-in 325 and container scheduler 340 are ready to allocate the container to a node.
- Container scheduling is performed by first scanning node metadata for a security attribute that matches the node selector ( 610 ). A node that has a matching security attribute to the node selector is then selected to host the container ( 615 ). If a specific security resource needs to be allocated to a container, the security-based container scheduling system 300 keeps track of security resources by monitoring their availability throughout container deployment ( 620 ). This monitoring is performed by resource tracker engine 330 , which may keep a list of all available security resources.
- Scheduler plug-in 325 checks whether the selected node still has the available security resource before placing the container on the node. After the container has been created on the node, the scheduler plug-in 325 then allocates the security resource to the container and removes the allocated security resource from the list of available security resources.
- Security-based container scheduling system 700 includes a processor 705 and a tangible, non-transitory computer-readable medium 710 storing instructions 715 - 730 that are executed by the processor 705 .
- Computer-readable medium 710 can include volatile and/or non-volatile memory such as Random Access Memory (“RAM”), magnetic memory such as a hard disk and/or tape memory, a Solid State Drive (“SSD”), flash memory, phase change memory, memristive memory, and so on.
- RAM Random Access Memory
- SSD Solid State Drive
- Instructions 715 include instructions to discover container nodes within a specified scope.
- the container nodes may be virtual or physical nodes in a cluster for hosting multiple containers. Once all nodes in the cluster are discovered, instructions 720 discover a node security attribute for each of the discovered nodes.
- the node security attributes may include any security-related attribute for a node, such as, for example, TPM, secure boot, SSL/TLS versions, FIPS enables, and OS and firmware versions with hot security fixes, among others.
- the discovered node security attributes are inserted as labels in node metadata by instructions 725 .
- instructions 730 generate a node selector from a container security attribute associated with a container.
- the node selector is embedded in a container creation template or passed as a parameter in the container's CLI/API so that the container can be allocated to a node that has a matching security attribute. Doing so enables security to be automatically integrated upfront and maintained throughout container development and deployment.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
Description
- Software containers have emerged to address the increasing portability needs of software applications. A container bundles an application and all its dependencies and libraries into an isolated, resource controlled and easy-to-deploy building block that can run on any operating system in any computing environment. Containers can be deployed on either physical or virtual machines in private, public or hybrid clouds, thereby facilitating workload management of large scale applications. Multiple containers can run on a single machine and share the operating system kernel, while keeping processes and resources such as memory, CPU and disks isolated from each other. This makes container deployment efficient, fast and lightweight.
- There are several popular container development and management systems available, such as for example. Docker, Rocket and Kubemetes. These systems include tools for creating and running container images, which are the files that make up the applications that run inside a container. Image files contain all the requirements for running a single container, as well as metadata delineating information and attributes associated with the container.
- System administrators can use container orchestration engines to manage and schedule the allocation and deployment of containers to a server or cluster of servers. Container orchestration engines such as Kubemetes and Docker Swarm provide basic scheduling capabilities, focusing mainly on CPU, memory and storage requirements. Poor management and scheduling of containers can lead to an inefficient utilization of underlying resources and a mismatch between workloads and resources.
- The present application may be more fully appreciated in connection with the following detailed description taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
-
FIG. 1 illustrates a schematic diagram of an environment where a security-based container scheduling system is used in accordance with various examples; -
FIG. 2 is a block diagram of an example security-based container scheduling system which may be incorporated into the environment ofFIG. 1 ; -
FIG. 3 is a block diagram of another example security-based container scheduling system which may be incorporated into the environment ofFIG. 1 ; -
FIG. 4 is a flowchart of example operations of the security-based container scheduling system ofFIG. 3 ; -
FIG. 5 is a flowchart of example operations of a discovery engine which may be implemented in the security-based container scheduling system ofFIG. 3 ; -
FIG. 6 is a flowchart of example operations of a translation engine, a container scheduler and a resource tracker which may be implemented in the security-based container scheduling system ofFIG. 3 ; and -
FIG. 7 is another block diagram of an example security-based container scheduling system which may be incorporated into the environment ofFIG. 1 . - A security-based container scheduling system for scheduling a software container to a node is disclosed. The security-based container scheduling system automates container scheduling while taking into account security requirements of the container's workload. Each container is allocated to a node with security attributes that match the security requirements of the container's workload, thereby ensuring that security is automatically integrated upfront and maintained throughout container development and deployment. Maintaining security is critical for many container workloads, such as those that deal with sensitive data or those that are deployed in a multi-tenant cloud environment.
- As generally described herein, a node refers to a computing device on a network, either a virtual or physical machine, such as a personal computer, a cell phone, a printer, or a server, among others. Security attributes associated with a node may include, for example, whether secure boot or a Federal Information Processing Standard (“FIPS”) mode is enabled, whether the node has Trusted Platform Module (“TPM”) hardware, whether the node has a specific firmware version that contains hot security fixes, or any other security attribute that may be associated with a node. Each node may have metadata associated with it, which may be in the form of labels or annotations specifying different attributes (e.g., security attributes) related to the node. Likewise, a container image may have metadata specifying different requirements and attributes associated with the container image. An example security attribute associated with a container image may be that the container image is required to run on a node with a specific version x of Secure Sockets Layer (“SSL”).
- In various examples, the security-based container scheduling system is implemented with a discovery engine and a translation engine. The discovery engine discovers a node and its node security attributes automatically. The translation engine enables container security attributes identified in container image's metadata to be converted into node selectors for templates or passed as parameters in Command Line Interfaces (“CLIs”) or Application Program interfaces (“APIs”) used in container creation. In the SSL example above, a node selector specifying “SSL_version=x” may be added to a container creation template or passed as a parameter in a container creation CLI/API. A container scheduler scans metadata associated with nodes, such as for example, nodes that are part of a cluster of nodes, to select a node that has node security attributes listed in its metadata that match the node selectors in the container's creation template or CLI/API. The container is then allocated to the selected node to ensure that its security requirements are maintained throughout its deployment.
- It is appreciated that, in the following description, numerous specific details are set forth to provide a thorough understanding of the examples. However, it is appreciated that the examples may be practiced without limitation to these specific details. In other instances, well-known methods and structures may not be described in detail to avoid unnecessarily obscuring the description of the examples. Also, the examples may be used in combination with each other.
- Referring now to
FIG. 1 , a schematic diagram of an environment where a security-based container scheduling system is used in accordance with various examples is described. Security-basedcontainer scheduling system 100 enables acontainer 105 to run on a selected node in a cluster ofnodes 110 while maintaining its security requirements throughout its deployment. A container, as generally described herein, refers to a running instance of an image, which may include an application, its dependencies, libraries, a file system, parameters and all the files required to run it. A container image may have associated metadata specifying different attributes and requirements for running the container. For example,container 105 hascontainer image 115 with associatedcontainer image metadata 120 that includes containerimage security attribute 125. Containerimage security attribute 125 may be in the form of a label or annotation specifying a security requirement for running thecontainer 105. Multiple security attributes and other attributes may be included in container image'smetadata 120. - Cluster of
nodes 110 may includemultiple nodes 110 a-f, which may be either virtual or physical machines connected via a network. Eachnode 110 a-f incluster 110 may also have associated metadata, such asmetadata 130 associated withnode 110 c.Metadata 130 may include labels or annotations specifying attributes associated withnode 110 c, such as for example, anode security attribute 135. - The security-based
container scheduling system 100 ensures thatcontainer 105 is allocated to a node incluster 110 that has anode security attribute 135 that matches the container image security attribute 125 (e.g.,node 110 c).Administrator 140 may specify containerimage security attribute 125 incontainer image metadata 120. The security-basedcontainer scheduling system 100 then automates all the operations required to havecontainer 105 running smoothly and securely in a node incluster 110. These operations may include discovery of a node incluster 110, discovery of its security attributes, labeling of the node with its discovered security attributes in its metadata, generating a node selector from the containerimage security attribute 125, and scheduling thecontainer 105 with the node selector matching a discovered security attribute. - Attention is now directed to
FIG. 2 , which shows a block diagram of an example security-based container scheduling system which may be incorporated into the environment ofFIG. 1 . Security-basedcontainer scheduling system 200 has aprocessor 205 and a set ofmemory resources 210. A memory resource, as generally described herein, can include any number of volatile or non-volatile memory components capable of storing instructions that can be executed by a processor. It is appreciated thatmemory resources 210 may be integrated in a single device or distributed across multiple devices. Further,memory resources 210 may be fully or partially integrated in the same device (e.g., a server) as theircorresponding processor 205 or it may be separate from but accessible to theircorresponding processor 205. -
Memory resources 210 store adiscovery engine 215 and atranslation engine 220 for security-basedcontainer scheduling system 200. It is appreciated that other engines can be added tomemory resources 210 for additional or alternative functionality. Each ofengines memory resources 210, may be any combination of hardware (e.g., a processor or other circuitry) and software (e.g., machine or processor-executable instructions, commands, or code such as firmware, programming or object code) to implement the functionalities of the respective engine. Such combinations of hardware and software may be implemented in a number of different ways. -
Discovery engine 215 has instructions to discover a node that is associated with a specific scope. For example, the scope can include all nodes connected to a given network switch, all nodes connected to a vLAN, all nodes connected to a rack, all nodes within a specified IP range, all nodes in a cluster of nodes, or all nodes in a logical group that have the same properties (e.g., all nodes of a specific hardware or server model). Thediscovery engine 215 may employ different instructions to discover a node, depending on the node's scope. For example, thediscovery engine 215 may employ the Link Layer Discovery Protocol (“LLDP”) to discover a node connected to a switch, the Simple Service Discovery Protocol (“SSDP”) or iLO Federation with an IP address filter to discover a node within a specified IP range, or SSDP or iLO Federation with hardware attribute filters to discover a node in a logical group of nodes with specific hardware properties. - Once a node associated with a specific scope has been discovered, the
discovery engine 215 proceeds to discover a node security attribute associated with the node and create the corresponding security attribute labels for the node. Discovery of a security attribute may be performed with, for example, a Baseboard Management Controller (“BMC”) out-of-band interface resident in a server whereinprocessor 205 andmemory resources 210 are located. In various examples, RedFish API or in-band OS commands may be used for this security attribute discovery. For instance, RedFish can be used to discover whether secure boot or FIPS mode is enabled for a node, whether the node has TPM hardware, whether the node has a specific firmware version that contains hot security fixes, and so on. An OS command can be used to discover the OS and SSL/TLS versions of the node. It is appreciated that any number of security attributes may be discovered for a node, using these or other discovery commands or protocols. - Upon discovery of security attribute(s) for a node, the
discovery engine 215 creates the corresponding security attribute labels for the node and adds them to metadata associated with the node (e.g.,metadata 130 associated withnode 110 c inFIG. 1 ). For example, if thediscovery engine 215 discovers that a node has TPM and secure boot is enabled, thediscovery engine 215 inserts labels or annotations in the node's metadata to reflect the presence of TPM and secure boot for that node. Thediscovery engine 215 may do this for every node in a cluster of nodes, e.g.,nodes 110 a-f incluster 110 ofFIG. 1 , so that each node in the cluster is labeled with its security attributes) in its metadata. - With all nodes labeled with their security attribute(s), ensuring that a container will execute securely throughout its deployment becomes a matter of allocating the container to the right node with the security-based
container scheduling system 200. This is achieved by first having administrators (e.g.,administrator 140 shown inFIG. 1 ) specify desired security requirements for a container in its container's image metadata, e.g.,metadata 120 associated withcontainer image 115 shown inFIG. 1 . Theadministrator 140 can do so when creating the container image or when creating a container creation template. When theadministrator 140 sends a request to deploycontainer 105 incluster 110, the security-basedcontainer scheduling system 200 triggers itstranslation engine 220 to generate one or more node selectors from the container security attribute(s) specified in the container's image metadata. Thetranslation engine 220 then associates the node selector(s) with the container, such as, for example, by inserting the node selector(s) in the container creation template or passing it as a parameter in the container creation CLI/API. A node selector, as generally described herein, is a label that indicates specific requirements or attributes (e.g., security attributes) that a node needs to have to host a container. For example, a node selector can specify that secure boot is required for the container to run. The node selector can be a label of the form “secure_boot=yes” added to the container's creation template. - Referring now to
FIG. 3 , it is appreciated that a security-based container scheduling system such assystem 300 may work in conjunction with acontainer orchestration engine 335, such as, for example, Docker Swarm, Kubermetes, Amazon EC2 Container Service, Azure Container Service, or any other system for deploying containers to a node or cluster of nodes. Such container orchestration engines enable administrators to schedule containers in a cluster and manage them based on specific requirements. In various examples, the security-basedcontainer scheduling system 300 enables acontainer scheduler 340 in acontainer orchestration engine 335 to schedule a container with security attributes defined in its associated metadata to a node that matches those attributes. - The security-based
container scheduling system 300 guarantees that nodes are labeled with their discovered node security attributes and that when containers are created, the container security attributes specified in the container's image metadata are captured by node selectors injected into the container creation templates. Thediscovery engine 315 may also automatically register the discovered node security attributes into a container resource database associated withcontainer scheduler 340. In various examples, a container scheduler plug-in 325 may be implemented to work with acontainer scheduler 340 in acontainer orchestration engine 335 to ensure that multiple security attributes are supported. Aresource tracker engine 330 may also be used to track the availability of security resources for the nodes. Theresource tracker engine 330 may keep a list of available security resources throughout container deployment. The scheduler plug-in 325 checks whether a node has the available security resource before placing the container on the node. After the container has been created, the scheduler plug-in 325 then allocates the security resource to the container and removes the allocated security resource from the list of available security resources. - It is appreciated that the security-based
container scheduling system 300 may be integrated withcontainer orchestration engine 335 or it may be a separate system in a management server used for provisioning and managing a cluster of nodes. In various examples, the security-basedcontainer scheduling system 300 may also be implemented in a virtual machine, as a container itself, or in any other mechanism to ensure that containers are allocated to nodes with matching security attributes. It is also appreciated that security-basedcontainer scheduling system 200 ofFIG. 2 can include one of more structural or functional aspects of security-based container scheduling system ofFIG. 3 . - The operation of security-based
container scheduling system 300 is now described in detail with reference toFIG. 4 . First, a node is discovered by the discovery engine 315 (400). The node may be a part of a cluster of nodes provisioned to host containers for an administrator. For each discovered node in the cluster, thediscovery engine 315 generates a command to discover a node security attribute that is associated with the discovered node (405). Next, thetranslation engine 320 generates a node selector from a container security attribute specified in metadata associated with a container image (410). The node selector is used by the administrator when deploying a container to run in the cluster such that the node selector is inserted in a container creation template or passed as a parameter in the container creation CLI/API. The container is then scheduled for deployment in a selected node in the cluster of nodes (415). The selected node is one that has a node security attribute that matches the node selector associated with the container. The scheduling may be performed by scheduler plug-in 325 andcontainer scheduler 340 incontainer orchestration engine 335 as described above with reference toFIG. 3 . - Referring now to
FIG. 5 , a flowchart of example operations of a discovery engine which may be implemented in the security-based container scheduling system ofFIG. 3 is described. Thediscovery engine 315 first discovers a node in a cluster of nodes (500). The discovery may be done in a number of ways, including using LLDP, SSDP, or ILO Federation, among others. Next, thediscovery engine 315 generates a command to discover a node security attribute associated with the node (505). The node security attribute specifies a security feature included in the node, such as whether secure boot is enabled, whether the node has TPM hardware, whether the node has a specific firmware version that includes hot security fixes and so on. Once all security attributes of nodes in a cluster are discovered, thediscovery engine 315 then creates labels corresponding to the security attributes (510) and inserts them in metadata associated with the nodes (515). Thediscovery engine 315 may also register the node security attributes in a container resource database associated withcontainer scheduler 340. - Attention is now directed to
FIG. 6 , which shows a flowchart of example operations of a translation engine, a container scheduler and a resource tracker which may be implemented in the security-based container scheduling system ofFIG. 3 .Translation engine 320, as described above, automatically generates a node selector from a container security attribute specified in container's image metadata when a container creation request arrives at the security-based container scheduling system 300 (600). Thetranslation engine 320 then associates the node selector with the container (605) by either adding the node selector to the container creation template or passing it as a parameter in the container creation CLI/API. - Once the node selector is embedded in the container creation template or CLI/API, container scheduler plug-in 325 and
container scheduler 340 are ready to allocate the container to a node. Container scheduling is performed by first scanning node metadata for a security attribute that matches the node selector (610). A node that has a matching security attribute to the node selector is then selected to host the container (615). If a specific security resource needs to be allocated to a container, the security-basedcontainer scheduling system 300 keeps track of security resources by monitoring their availability throughout container deployment (620). This monitoring is performed byresource tracker engine 330, which may keep a list of all available security resources. Scheduler plug-in 325 checks whether the selected node still has the available security resource before placing the container on the node. After the container has been created on the node, the scheduler plug-in 325 then allocates the security resource to the container and removes the allocated security resource from the list of available security resources. - Attention is now directed to
FIG. 7 , which shows another block diagram of an example security-based container scheduling system which may be incorporated into the environment ofFIG. 1 . Security-basedcontainer scheduling system 700 includes aprocessor 705 and a tangible, non-transitory computer-readable medium 710 storing instructions 715-730 that are executed by theprocessor 705. Computer-readable medium 710 can include volatile and/or non-volatile memory such as Random Access Memory (“RAM”), magnetic memory such as a hard disk and/or tape memory, a Solid State Drive (“SSD”), flash memory, phase change memory, memristive memory, and so on. -
Instructions 715 include instructions to discover container nodes within a specified scope. The container nodes may be virtual or physical nodes in a cluster for hosting multiple containers. Once all nodes in the cluster are discovered,instructions 720 discover a node security attribute for each of the discovered nodes. The node security attributes may include any security-related attribute for a node, such as, for example, TPM, secure boot, SSL/TLS versions, FIPS enables, and OS and firmware versions with hot security fixes, among others. The discovered node security attributes are inserted as labels in node metadata byinstructions 725. Lastly,instructions 730 generate a node selector from a container security attribute associated with a container. The node selector is embedded in a container creation template or passed as a parameter in the container's CLI/API so that the container can be allocated to a node that has a matching security attribute. Doing so enables security to be automatically integrated upfront and maintained throughout container development and deployment. - It is appreciated that the previous description of the disclosed examples is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these examples will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other examples without departing from the spirit or scope of the disclosure. Thus, the present disclosure is not intended to be limited to the examples shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Claims (20)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/420,996 US10567397B2 (en) | 2017-01-31 | 2017-01-31 | Security-based container scheduling |
EP18152699.7A EP3355193B1 (en) | 2017-01-31 | 2018-01-22 | Security-based container scheduling |
CN201810059638.0A CN108376100B (en) | 2017-01-31 | 2018-01-22 | Security-based container scheduling |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/420,996 US10567397B2 (en) | 2017-01-31 | 2017-01-31 | Security-based container scheduling |
Publications (2)
Publication Number | Publication Date |
---|---|
US20180219877A1 true US20180219877A1 (en) | 2018-08-02 |
US10567397B2 US10567397B2 (en) | 2020-02-18 |
Family
ID=61022179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/420,996 Active 2037-06-20 US10567397B2 (en) | 2017-01-31 | 2017-01-31 | Security-based container scheduling |
Country Status (3)
Country | Link |
---|---|
US (1) | US10567397B2 (en) |
EP (1) | EP3355193B1 (en) |
CN (1) | CN108376100B (en) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180324203A1 (en) * | 2017-05-04 | 2018-11-08 | International Business Machines Corporation | Intelligent container resource placement based on container image vulnerability assessment |
US10409584B1 (en) | 2018-02-09 | 2019-09-10 | American Megatrends International, Llc | Peripheral device firmware update using rest over IPMI interface firmware update module |
US10416988B1 (en) | 2018-02-09 | 2019-09-17 | American Megatrends International, Llc | Peripheral device firmware update using rest over IPMI interface firmware shell utility |
US10467046B2 (en) * | 2017-05-30 | 2019-11-05 | Red Hat, Inc. | Fast and greedy scheduling machine based on a distance matrix |
US10489142B1 (en) | 2018-02-09 | 2019-11-26 | American Megatrends International, Llc | Secure firmware integrity monitoring using rest over IPMI interface |
US10572242B1 (en) * | 2018-02-09 | 2020-02-25 | American Megatrends International, Llc | Firmware update using rest over IPMI interface |
US10628176B1 (en) | 2018-02-09 | 2020-04-21 | American Megatrends International, Llc | Firmware configuration using REST over IPMI interface |
US10649792B1 (en) | 2018-02-09 | 2020-05-12 | American Megatrends International, Llc | Cloning of firmware configuration settings using rest over IPMI interface |
US10776286B1 (en) | 2018-02-09 | 2020-09-15 | American Megatrends International, Llc | Rest over IPMI interface for firmware to BMC communication |
WO2021037378A1 (en) * | 2019-08-30 | 2021-03-04 | Siemens Aktiengesellschaft | Method for automatic marking, cluster work node, cluster, network, computer program and computer-readable medium |
CN113886058A (en) * | 2020-07-01 | 2022-01-04 | 中国联合网络通信集团有限公司 | A cross-cluster resource scheduling method and device |
US11252192B1 (en) * | 2018-09-28 | 2022-02-15 | Palo Alto Networks, Inc. | Dynamic security scaling |
US20220121470A1 (en) * | 2021-12-23 | 2022-04-21 | Intel Corporation | Optimizing deployment and security of microservices |
US11501881B2 (en) | 2019-07-03 | 2022-11-15 | Nutanix, Inc. | Apparatus and method for deploying a mobile device as a data source in an IoT system |
US20220391223A1 (en) * | 2021-06-08 | 2022-12-08 | Red Hat, Inc. | Adding expressiveness to plugin extensions using integration with operators |
US11635990B2 (en) | 2019-07-01 | 2023-04-25 | Nutanix, Inc. | Scalable centralized manager including examples of data pipeline deployment to an edge system |
US11665221B2 (en) | 2020-11-13 | 2023-05-30 | Nutanix, Inc. | Common services model for multi-cloud platform |
US11726764B2 (en) | 2020-11-11 | 2023-08-15 | Nutanix, Inc. | Upgrade systems for service domains |
US11736585B2 (en) | 2021-02-26 | 2023-08-22 | Nutanix, Inc. | Generic proxy endpoints using protocol tunnels including life cycle management and examples for distributed cloud native services and applications |
US11748161B1 (en) * | 2020-06-30 | 2023-09-05 | Stripe, Inc. | Cluster job submission |
US20230315888A1 (en) * | 2022-03-29 | 2023-10-05 | Fujitsu Limited | Storage medium, generation method, and information processing device |
US11886605B2 (en) * | 2019-09-30 | 2024-01-30 | Red Hat, Inc. | Differentiated file permissions for container users |
US12155731B2 (en) | 2019-10-09 | 2024-11-26 | Nutanix, Inc. | Platform-as-a-service deployment including service domains |
US12160426B2 (en) * | 2022-12-04 | 2024-12-03 | Asad Hasan | Human system operator identity associated audit trail of containerized network application with prevention of privilege escalation, online black-box testing, and related systems and methods |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021037379A1 (en) * | 2019-08-30 | 2021-03-04 | Siemens Aktiengesellschaft | Method for operating a cluster, cluster work node, cluster, network, computer program and computer-readable medium |
CN111666128B (en) * | 2020-05-25 | 2023-07-04 | 北京思特奇信息技术股份有限公司 | Container cluster building system and method |
CN114253654B (en) * | 2020-09-22 | 2023-12-22 | 中国电信股份有限公司 | Container cloud policy scheduling method and device |
US12216766B2 (en) * | 2022-02-04 | 2025-02-04 | Oracle International Corporation | Techniques for assessing container images for vulnerabilities |
CN115514726B (en) * | 2022-09-21 | 2024-02-20 | 浪潮云信息技术股份公司 | NATS-based cloud edge scene file synchronization system |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030154401A1 (en) * | 2002-02-13 | 2003-08-14 | Hartman Bret A. | Methods and apparatus for facilitating security in a network |
US20090049236A1 (en) * | 2007-08-15 | 2009-02-19 | Hitachi, Ltd. | System and method for data protection management for network storage |
US7587570B2 (en) * | 2006-05-31 | 2009-09-08 | International Business Machines Corporation | System and method for providing automated storage provisioning |
US20140189777A1 (en) * | 2012-12-28 | 2014-07-03 | Tarun Viswanathan | Policy-based secure containers for multiple enterprise applications |
US9521115B1 (en) * | 2016-03-24 | 2016-12-13 | Varmour Networks, Inc. | Security policy generation using container metadata |
US20160378846A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | Object based storage cluster with multiple selectable data handling policies |
US20170093923A1 (en) * | 2015-09-29 | 2017-03-30 | NeuVector, Inc. | Creating Additional Security Containers For Transparent Network Security For Application Containers Based On Conditions |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2467580B (en) | 2009-02-06 | 2013-06-12 | Thales Holdings Uk Plc | System and method for multilevel secure object management |
US9286448B2 (en) * | 2010-06-09 | 2016-03-15 | Grant Philip Cushion | Enhanced software license management |
US9336060B2 (en) | 2011-06-17 | 2016-05-10 | Microsoft Technology Licensing, Llc | Middleware services framework for on-premises and cloud deployment |
US9639402B2 (en) * | 2011-08-05 | 2017-05-02 | Oracle International Corporation | Systems and methods for automatic hardware provisioning based on application characteristics |
US9170797B2 (en) | 2012-01-31 | 2015-10-27 | Red Hat, Inc. | Automated deployment of an application in a computing platform |
US9253053B2 (en) * | 2012-10-11 | 2016-02-02 | International Business Machines Corporation | Transparently enforcing policies in hadoop-style processing infrastructures |
US9940111B2 (en) | 2013-12-18 | 2018-04-10 | Red Hat, Inc. | Policy-based application deployment to a target application platform system |
EP3135021B1 (en) | 2014-04-23 | 2020-11-18 | Telefonaktiebolaget LM Ericsson (publ) | Method and system for identifying network resources |
US10452372B2 (en) | 2014-12-15 | 2019-10-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and deployment module for managing a container to be deployed on a software platform |
US9635055B2 (en) * | 2015-01-28 | 2017-04-25 | defend7, Inc. | Encryption levels for secure application containers |
US9652612B2 (en) | 2015-03-25 | 2017-05-16 | International Business Machines Corporation | Security within a software-defined infrastructure |
US10586042B2 (en) * | 2015-10-01 | 2020-03-10 | Twistlock, Ltd. | Profiling of container images and enforcing security policies respective thereof |
CN105630607B (en) * | 2015-12-23 | 2019-03-29 | 联想(北京)有限公司 | A kind of resource pool management method, container creation method and electronic equipment |
US10127030B1 (en) * | 2016-03-04 | 2018-11-13 | Quest Software Inc. | Systems and methods for controlled container execution |
US10255054B2 (en) * | 2016-04-13 | 2019-04-09 | International Business Machines Corporation | Enforcing security policies for software containers |
US10154065B1 (en) * | 2016-09-22 | 2018-12-11 | Trend Micro Incorporated | Policy management in software container computing environments |
-
2017
- 2017-01-31 US US15/420,996 patent/US10567397B2/en active Active
-
2018
- 2018-01-22 EP EP18152699.7A patent/EP3355193B1/en active Active
- 2018-01-22 CN CN201810059638.0A patent/CN108376100B/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030154401A1 (en) * | 2002-02-13 | 2003-08-14 | Hartman Bret A. | Methods and apparatus for facilitating security in a network |
US7587570B2 (en) * | 2006-05-31 | 2009-09-08 | International Business Machines Corporation | System and method for providing automated storage provisioning |
US20090049236A1 (en) * | 2007-08-15 | 2009-02-19 | Hitachi, Ltd. | System and method for data protection management for network storage |
US20140189777A1 (en) * | 2012-12-28 | 2014-07-03 | Tarun Viswanathan | Policy-based secure containers for multiple enterprise applications |
US20160378846A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | Object based storage cluster with multiple selectable data handling policies |
US20170093923A1 (en) * | 2015-09-29 | 2017-03-30 | NeuVector, Inc. | Creating Additional Security Containers For Transparent Network Security For Application Containers Based On Conditions |
US9521115B1 (en) * | 2016-03-24 | 2016-12-13 | Varmour Networks, Inc. | Security policy generation using container metadata |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10841328B2 (en) * | 2017-05-04 | 2020-11-17 | International Business Machines Corporation | Intelligent container resource placement based on container image vulnerability assessment |
US20180324203A1 (en) * | 2017-05-04 | 2018-11-08 | International Business Machines Corporation | Intelligent container resource placement based on container image vulnerability assessment |
US10467046B2 (en) * | 2017-05-30 | 2019-11-05 | Red Hat, Inc. | Fast and greedy scheduling machine based on a distance matrix |
US10996940B1 (en) | 2018-02-09 | 2021-05-04 | American Megatrends International, Llc | Secure firmware integrity monitoring using rest over IPMI interface |
US10489142B1 (en) | 2018-02-09 | 2019-11-26 | American Megatrends International, Llc | Secure firmware integrity monitoring using rest over IPMI interface |
US10572242B1 (en) * | 2018-02-09 | 2020-02-25 | American Megatrends International, Llc | Firmware update using rest over IPMI interface |
US10628176B1 (en) | 2018-02-09 | 2020-04-21 | American Megatrends International, Llc | Firmware configuration using REST over IPMI interface |
US10649792B1 (en) | 2018-02-09 | 2020-05-12 | American Megatrends International, Llc | Cloning of firmware configuration settings using rest over IPMI interface |
US10776286B1 (en) | 2018-02-09 | 2020-09-15 | American Megatrends International, Llc | Rest over IPMI interface for firmware to BMC communication |
US10416988B1 (en) | 2018-02-09 | 2019-09-17 | American Megatrends International, Llc | Peripheral device firmware update using rest over IPMI interface firmware shell utility |
US10853052B1 (en) | 2018-02-09 | 2020-12-01 | American Megatrends International, Llc | Peripheral device firmware update using rest over IPMI interface firmware shell utility |
US10860308B1 (en) | 2018-02-09 | 2020-12-08 | American Megatrends International, Llc | Peripheral device firmware update using rest over IPMI interface firmware update module |
US10409584B1 (en) | 2018-02-09 | 2019-09-10 | American Megatrends International, Llc | Peripheral device firmware update using rest over IPMI interface firmware update module |
US11252192B1 (en) * | 2018-09-28 | 2022-02-15 | Palo Alto Networks, Inc. | Dynamic security scaling |
US11824897B2 (en) | 2018-09-28 | 2023-11-21 | Palo Alto Networks, Inc. | Dynamic security scaling |
US12026551B2 (en) | 2019-07-01 | 2024-07-02 | Nutanix, Inc. | Communication and synchronization with edge systems |
US11635990B2 (en) | 2019-07-01 | 2023-04-25 | Nutanix, Inc. | Scalable centralized manager including examples of data pipeline deployment to an edge system |
US11501881B2 (en) | 2019-07-03 | 2022-11-15 | Nutanix, Inc. | Apparatus and method for deploying a mobile device as a data source in an IoT system |
US12159178B2 (en) | 2019-07-03 | 2024-12-03 | Nutanix, Inc. | Apparatus and method for deploying a mobile device as a data source |
WO2021037378A1 (en) * | 2019-08-30 | 2021-03-04 | Siemens Aktiengesellschaft | Method for automatic marking, cluster work node, cluster, network, computer program and computer-readable medium |
US11886605B2 (en) * | 2019-09-30 | 2024-01-30 | Red Hat, Inc. | Differentiated file permissions for container users |
US12155731B2 (en) | 2019-10-09 | 2024-11-26 | Nutanix, Inc. | Platform-as-a-service deployment including service domains |
US12197950B2 (en) | 2020-06-30 | 2025-01-14 | Stripe, Inc. | Cluster job submission |
US11748161B1 (en) * | 2020-06-30 | 2023-09-05 | Stripe, Inc. | Cluster job submission |
CN113886058A (en) * | 2020-07-01 | 2022-01-04 | 中国联合网络通信集团有限公司 | A cross-cluster resource scheduling method and device |
US11726764B2 (en) | 2020-11-11 | 2023-08-15 | Nutanix, Inc. | Upgrade systems for service domains |
US11665221B2 (en) | 2020-11-13 | 2023-05-30 | Nutanix, Inc. | Common services model for multi-cloud platform |
US12021915B2 (en) | 2020-11-13 | 2024-06-25 | Nutanix, Inc. | Common services model for multi-cloud platform |
US11736585B2 (en) | 2021-02-26 | 2023-08-22 | Nutanix, Inc. | Generic proxy endpoints using protocol tunnels including life cycle management and examples for distributed cloud native services and applications |
US20220391223A1 (en) * | 2021-06-08 | 2022-12-08 | Red Hat, Inc. | Adding expressiveness to plugin extensions using integration with operators |
US20220121470A1 (en) * | 2021-12-23 | 2022-04-21 | Intel Corporation | Optimizing deployment and security of microservices |
US20230315888A1 (en) * | 2022-03-29 | 2023-10-05 | Fujitsu Limited | Storage medium, generation method, and information processing device |
US12160426B2 (en) * | 2022-12-04 | 2024-12-03 | Asad Hasan | Human system operator identity associated audit trail of containerized network application with prevention of privilege escalation, online black-box testing, and related systems and methods |
Also Published As
Publication number | Publication date |
---|---|
CN108376100B (en) | 2022-02-08 |
EP3355193B1 (en) | 2023-12-27 |
EP3355193A1 (en) | 2018-08-01 |
CN108376100A (en) | 2018-08-07 |
US10567397B2 (en) | 2020-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10567397B2 (en) | Security-based container scheduling | |
US10855537B2 (en) | Methods and apparatus for template driven infrastructure in virtualized server systems | |
US10050850B2 (en) | Rack awareness data storage in a cluster of host computing devices | |
EP3347816B1 (en) | Extension of resource constraints for service-defined containers | |
US11734044B2 (en) | Configuring virtualization system images for a computing cluster | |
US11050623B2 (en) | Managing virtual network functions | |
CN107431651B (en) | Life cycle management method and equipment for network service | |
US11171824B2 (en) | Configuration of computing devices via containers | |
US20140380308A1 (en) | Methods and apparatus to generate a customized application blueprint | |
CN108089913B (en) | Virtual machine deployment method of super-fusion system | |
CN106663012B (en) | Hardware acceleration method and related equipment | |
US9959157B1 (en) | Computing instance migration | |
US20190370023A1 (en) | Distributed job manager for stateful microservices | |
CN113127150A (en) | Rapid deployment method and device of cloud native system, electronic equipment and storage medium | |
Raj et al. | Enhancement of hadoop clusters with virtualization using the capacity scheduler | |
US9424113B2 (en) | Virtual appliance deployment | |
CN115499308B (en) | Distributed FTP container deployment method, device, terminal and storage medium | |
US10585654B2 (en) | Deployment of processing components of computing infrastructure using annotated command objects | |
US11836523B2 (en) | Introspection of a containerized application in a runtime environment | |
WO2016029774A1 (en) | Virtualization based application storage method and execution method, device and system | |
US9934052B1 (en) | Large scale virtual application deployment using system provisioning tools | |
US20180246728A1 (en) | Hardware management | |
US10419283B1 (en) | Methods, systems, and computer readable mediums for template-based provisioning of distributed computing systems | |
Li et al. | Performance Comparison of Two Open-source CloudStack Client Libraries for High-performance Computing | |
US11100000B2 (en) | Embedded image management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HSU, WAN-YEN;ZHAO, HUI-ZHI;DUAN, LIGONG;REEL/FRAME:041481/0378 Effective date: 20170131 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |