DE102019133923B4 - Anwendungsverwendung in einem behältermanagementsystem - Google Patents

Anwendungsverwendung in einem behältermanagementsystem Download PDF

Info

Publication number
DE102019133923B4
DE102019133923B4 DE102019133923.5A DE102019133923A DE102019133923B4 DE 102019133923 B4 DE102019133923 B4 DE 102019133923B4 DE 102019133923 A DE102019133923 A DE 102019133923A DE 102019133923 B4 DE102019133923 B4 DE 102019133923B4
Authority
DE
Germany
Prior art keywords
application
hibernator
state
deployment
response
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.)
Active
Application number
DE102019133923.5A
Other languages
English (en)
Other versions
DE102019133923A1 (de
Inventor
Amit Kumar Gupta
Ajay Vishwanath Bhande
Pruthvi Panyam Nataraj
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of DE102019133923A1 publication Critical patent/DE102019133923A1/de
Application granted granted Critical
Publication of DE102019133923B4 publication Critical patent/DE102019133923B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Abstract

Ein Containermanagementsystem (100), umfassend:mehreren Arbeiterknoten (104), innerhalb derer Dienste des Containermanagementsystems (100) zur Ausführung einer Anwendung arbeiten; undeine Hibernator-Bereitstellung (124), bei der die Hibernator-Bereitstellung dazu ausgebildet ist zum:Bestimmen einer für die Anwendung definierten Semantik, wobei die ermittelte Semantik eine Hibernation-wenn-inaktiv-Semantik umfasst;Bestimmen, ob die Anwendung während eines entsprechenden Zeitraums aktiv ist, der in der Semantik enthalten ist; undÜbertragen der Anwendung von einem aktiven Zustand in einen inaktiven Zustand, wenn die Anwendung während des entsprechenden Zeitraums, der in der für die Anwendung definierten Semantik enthalten ist, nicht aktiv ist;wobei die Hibernator-Bereitstellung (124) dazu ausgebildet ist einen Service - Endpunkt der Anwendung von einer Beendigung in der Anwendung zu einer Beendigung in der Hibernator-Bereitstellung (124) zu überführen, in Reaktion darauf, dass die Anwendung von dem aktiven Zustand in den inaktiven Zustand versetzt wird.

Description

  • Stand der Technik
  • Bei der Speicherung von Unternehmensdaten kann sich Clustering auf die physische Verbindung unabhängiger Rechenknoten (Server) und eine Steuerungsfunktion zur Steuerung der Verwaltung von Knoten des Clusters beziehen. Die Steuerungsfunktion kann Workloads auf jeden Knoten verteilen, die Übertragung von Workloads zwischen Knoten verwalten oder beides. Ein solches Clustering kann ein gemeinsam genutztes Speichersystem zusammen mit einem Mechanismus zum Duplizieren der Daten in dem Speichersystem umfassen, das direkt an jeden Knoten angeschlossen ist, der verwendet werden kann. Gängige Speicherclusteranwendungen bieten Failover-Funktionen für kritische Prozesse und ermöglichen den Lastenausgleich für Hochleistungsprozesse. Die Containerisierung von Vorgängen kann eine Virtualisierungsmethode auf Betriebssystemebene sein, mit der verteilte Vorgänge bereitgestellt und ausgeführt werden, ohne dass für jeden Vorgang eine gesamte virtuelle Maschine (VM) gestartet wird. Mehrere isolierte Vorgänge werden auf einem einzelnen Host ausgeführt und greifen auf denselben Betriebssystemkernel zu. Beispielsweise kann Container Linux (früher CoreOS Linux) eines der ersten Container-Betriebssysteme sein, die für Container entwickelt wurden. Software-Container sind eine Form der Betriebssystemvirtualisierung, bei der der ausgeführte Container minimale Betriebssystemressourcen, Arbeitsspeicher und Dienste zum Ausführen eines Vorgangs enthält. Systeme der eingangs genannten Art sind beispielsweise aus den Druckschriften EP 2 742 401 B1 , US 2009/0 217 072 A1 , US 2013/0 297 668 A1 und US 2008/0 201 414 A1 bekannt.
  • Figurenliste
    • 1 ist ein schematisches Diagramm eines beispielhaften Behälterverwaltungssystems, das mit der vorliegenden Offenbarung übereinstimmt.
    • 2 ist ein schematisches Diagramm einer beispielhaften Operation einer Hibernator-Bereitstellung eines Containerverwaltungssystems in Übereinstimmung mit der vorliegenden Offenbarung.
    • 3A ist ein schematisches Diagramm einer beispielhaften Übertragung einer Anwendung von einem aktiven Zustand in einen inaktiven Zustand in Übereinstimmung mit der vorliegenden Offenbarung.
    • 3B ist ein schematisches Diagramm einer beispielhaften Übertragung einer Anwendung von einem inaktiven Zustand in einen aktiven Zustand in Übereinstimmung mit der vorliegenden Offenbarung.
    • 4 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Übertragen einer Anwendung von einem aktiven Zustand in einen inaktiven Zustand in Übereinstimmung mit der vorliegenden Offenbarung.
    • 5 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Übertragen einer Anwendung von einem aktiven Zustand in einen inaktiven Zustand in Übereinstimmung mit der vorliegenden Offenbarung.
    • 6 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Übertragen einer Anwendung von einem inaktiven Zustand in einen aktiven Zustand, das mit der vorliegenden Offenbarung übereinstimmt.
  • Detaillierte Beschreibung
  • Die Erfindung ist in den unabhängigen Ansprüchen angegeben. Vorteilhafte Weiterbildungen sind den Unteransprüchen zu entnehmen. Ein Betriebssystem für Rechenzentren, wie beispielsweise ein Kubernetes-Containerverwaltungssystem, kann ein kostenloses Open-Source-Containerverwaltungssystem enthalten, das Mechanismen zum Bereitstellen, Verwalten und Skalieren von Containerverwaltungssystemen bereitstellt. Solche Systeme sind auf soll eine Plattform für die Automatisierung von Bereitstellung bieten , Skalierung und den Betrieb von Anwendungen im gesamten Cluster von Hosts und eine Befehlszeilenschnittstelle (CLI) verwenden , die für die Ausführung von Befehlen gegen Cluster innerhalb des Container - Management - System ermöglicht. Es können Befehle definiert werden, mit denen die CLI zum Verwalten eines Clusters erstellt und Informationen aus den Befehlen gesammelt werden können, damit Clusterressourcen oder -dienste erstellt, gruppiert, aktualisiert und / oder gelöscht werden können. Auf diese Weise definiert ein Containerverwaltungssystem set eine Reihe von Bausteinen oder Grundelementen , die gemeinsam Mechanismen wie die CLI bereitstellen, die Vorgänge bereitstellen, warten und skalieren.
  • Das Container-Management-System ist erweiterbar, um unterschiedlichen Workloads gerecht zu werden. Diese Erweiterbarkeit wird zum großen Teil durch eine Anwendungsprogrammierschnittstelle (API) bereitgestellt, die von internen Komponenten sowie von Erweiterungen und Containern verwendet wird, die auf dem Containerverwaltungssystem ausgeführt werden.
  • Die grundlegende Planungseinheit eines Containerverwaltungssystems ist ein Pod, der durch Gruppieren von containerisierten Komponenten eine höhere Abstraktionsebene hinzufügt. Ein Pod besteht aus einem oder mehreren Containern, die sich am Hostcomputer befinden sollen und Ressourcen gemeinsam nutzen können. Jeder Pod im Container - Management - System ist eine zugewiesen einzigartige IP -Adresse innerhalb eines Clusters von Hülsen, die die Anwendungen Verwendung Ports ermöglicht und gleichzeitig das Risiko von Konflikten zu minimieren. Ein Pod kann ein Volume definieren, z. B. ein lokales Festplattenverzeichnis oder eine Netzwerkfestplatte, und es den Containern im Pod zugänglich machen. Pods können manuell über die API. Verwaltet werden , oder ihre Verwaltung kann an einen Controller delegiert werden.
  • Ferner kann ein Containerverwaltungssystem eine tragbare, erweiterbare Open-Source-Plattform zum Verwalten von containerisierten Workloads und Diensten enthalten, um eine containerzentrierte Verwaltungsumgebung bereitzustellen und die Computer-, Netzwerk- und Speicherinfrastruktur für Benutzer-Workloads zu koordinieren. Ein Containerverwaltungssystem kann das Zuweisen einer eindeutigen IP zu jedem Container in einem Containerverwaltungssystem umfassen, die von jedem anderen Container innerhalb eines Hostclusters adressiert werden kann. Alle Operationen und Kommunikationen zwischen Komponenten und externen Benutzerbefehle verwenden gegenständliche Zustandstransfer (REST) aus Befehle übertragen über eine Anwendungsprogrammschnittstelle (API). Ein API-Server empfängt die übertragenen REST-Befehle. Folglich wird jedes Objekt in der Containerverwaltungssystemplattform als API-Objekt behandelt und verfügt über einen entsprechenden Eintrag für die API. API-Objekte werden verwendet, um den Status eines Clusters zu beschreiben, einschließlich applications der Anwendungen oder anderer Workloads, die ausgeführt werden sollen, der verwendeten Container-Images, der Anzahl der Replikate, des Status der Knoten, der verfügbaren Netzwerk- und Festplattenressourcen und so weiter. Der Status wird durch Erstellen von Objekten mithilfe der API festgelegt, normalerweise über die Befehlszeilenschnittstelle. Die API kann auch direkt verwendet werden, um mit dem Cluster zu interagieren und einen gewünschten Status festzulegen oder zu ändern.
  • Ein Containerverwaltungscluster stellt Anwendungen auf Knoten des Clusters basierend auf den Planungsrichtlinien des Clusters bereit. Während eine große Anzahl von Anwendungen in einem Cluster von Pods bereitgestellt wird, werden einige Anwendungen je nach Datenverfügbarkeit möglicherweise nur regelmäßig (z. B. täglich, wöchentlich) ausgeführt. In Zeiten der Nichtbenutzung verbrauchen die Anwendungen jedoch weiterhin Ressourcen (z. B. CPU, Speicher usw.), was zu einer ineffizienten Ressourcennutzung und erhöhten Ressourcenkosten sowie zu einer verringerten Systemleistung und erhöhten Skalierungsproblemen in Umgebungen mit festen Bedingungen führen kann Ressourcen.
  • Daher bezieht sich die vorliegende Offenbarung auf die Verwendung einer Hibernator-Bereitstellung, die als ein oder mehrere Mikrodienste implementiert ist und die Anwendungen auf einem Cluster eines Containerverwaltungssystems überwacht, um diejenigen Anwendungen zu bestimmen, die eine für die Anwendung definierte Semantik „Ruhezustand bei Inaktivität“ enthalten und Versetzen der Anwendung in einen Ruhezustand oder inaktiven Zustand, wenn die Bereitstellung des Ruhezustands feststellt, dass die Anwendung für einen vorbestimmten Zeitraum, wie beispielsweise zehn (10) Minuten, keine Datenpakete auf dem Service-Port empfängt. Während sich die Anwendung im Ruhezustand befindet, leitet die Hibernator-Bereitstellung den Datenverkehr über den Service-Port der Hibernated-Anwendung an die Hibernator-Bereitstellung weiter. Die Hibernator-Bereitstellung überwacht den Service-Port im Namen der Ruhezustand-Anwendung. Wenn die Hibernator-Bereitstellung ein eingehendes Paket am Port der Hibernated-Anwendung empfängt, speichert die Hibernator-Bereitstellung das eingehende Paket oder die eingehenden Pakete zwischen und entfernt die Ruhezustand-Anwendung aus dem Ruhezustand. Sobald die im Ruhezustand befindliche Anwendung aus dem Ruhezustand entfernt wurde, wird der Verkehrsfluss für die Anwendung fortgesetzt und die zwischengespeicherten Datenpakete an die Anwendung weitergeleitet, um die Verarbeitung der Anwendung fortzusetzen.
  • Die Figuren hier folgen einer Nummerierungskonvention, bei der die erste Ziffer der Zeichnungsfigurennummer entspricht und die verbleibenden Ziffern ein Element oder eine Komponente in der Zeichnung identifizieren. Beispielsweise bezieht sich die Referenznummer 216 auf das Element „216“ in 2, und ein analoges Element kann durch die Referenznummer 316 in 3B identifiziert werden. Analoge Elemente in einer Figur können mit einem Bindestrich und einer zusätzlichen Ziffer oder einem zusätzlichen Buchstaben referenziert werden. Siehe zum Beispiel die Elemente 120-1 und 112-N in . Auf solche analogen Elemente kann im Allgemeinen ohne Bindestrich und zusätzliche Ziffer oder Buchstaben verwiesen werden. Beispielsweise können die Elemente 121-1 und 121-N gemeinsam als 121 bezeichnet werden. Elemente, die in den verschiedenen Figuren hier gezeigt sind, können hinzugefügt, ausgetauscht und / oder eliminiert werden, um eine Anzahl zusätzlicher Beispiele der Offenbarung bereitzustellen. Darüber hinaus sollen der Anteil und der relative Maßstab der in den Figuren angegebenen Elemente die Beispiele der Offenbarung veranschaulichen und sollten nicht in einem einschränkenden Sinne verstanden werden.
  • 1 ist ein schematisches Diagramm eines Behälterverwaltungssystems 100, das mit einem Beispiel der vorliegenden Offenbarung übereinstimmt. Wie in dem Beispiel von 1 dargestellt, kann ein Containerverwaltungssystem gemäß der vorliegenden Offenbarung einen Hauptknoten 102, der für die Verwaltung des Containerverwaltungssystems 100 verantwortlich ist, und mehrere Arbeiterknoten 104-1, ..., 104- umfassen. N (im Folgenden zusammenfassend als Arbeiterknoten 104 bezeichnet), innerhalb dessen die Dienste des Containerverwaltungssystems 100 arbeiten, um eine angeforderte Anwendung auszuführen. Beispiele für solche angeforderten Anwendungen können Vorgänge wie das Erstellen einer Bereitstellung, das Löschen der Bereitstellung, das Aktualisieren der Bereitstellung usw. sein. Während der Kürze halber zwei Arbeiterknoten 104 in 1 dargestellt sind, versteht es sich, dass das Containerverwaltungssystem 100 mehr als zwei Arbeiterknoten 104 (z. B. N Anzahl von Arbeiterknoten 104) enthalten kann, die für einen Cluster von Arbeitern sind Knoten 104.
  • Der Master - Knoten 102 kann der Zugangspunkt aller Verwaltungsaufgaben für den Container - Management - System 100 sein , und ein verantwortlich sein kann 104 oder mehr Arbeiter Knoten für orchestriert, in dem die Dienste des Behälters Verwaltungssystem 100 eine Anwendung zum Erzeugen befinden. Der Masterknoten 102 enthält einen API-Server 106, der sowohl den internen als auch den externen Schnittstellenzugriff auf das Containerverwaltungssystem über den Masterknoten 102 bereitstellt. Der API - Server 106 empfängt Befehle, wie gegenständlicher Zustandstransfer (REST) Befehle bekannt ist, aus einer Befehlszeile (CL) Schnittstellenwerkzeug 108, wie beispielsweise eine kubectl Befehlszeilenschnittstelle, zum Beispiel. Die REST-Befehle bieten eine Reihe von Architekturbeschränkungen, die bei Anwendung als Ganzes die Skalierbarkeit von Komponenteninteraktionen, die Allgemeingültigkeit von Schnittstellen, die unabhängige Bereitstellung von Komponenten und Zwischenkomponenten hervorheben. Der API-Server 106 verarbeitet die REST-Befehlsanforderungen, validiert die Befehle und führt die Logik innerhalb der Befehle aus.
  • Die Ergebnisse der REST - Befehle vom API - Server 106 verarbeitet werden , in einer Speicherkomponente 110, wie beispielsweise eine ETCD Speicherkomponente gespeichert ist, zum Beispiel enthalten in dem Master - Knoten 102. Die Speicherkomponente 110 speichert zuverlässig Konfigurationsdaten des Clusters von Arbeitsknoten 104, die den Status des Clusters darstellen (dh welche Knoten im Cluster verfügbar sind, welche Pods ausgeführt werden sollen, auf welchen Knoten sie ausgeführt werden sollen usw.).. Die Speicherkomponente 110 ist ein verteilter Schlüsselwertspeicher, der hauptsächlich für die gemeinsam genutzte Konfiguration und das Dienstverzeichnis verwendet wird. Die Speicherkomponente 110 stellt Speicher für REST-Befehle bereit, die vom API-Server 106 empfangen werden, um CRUD-Operationen (Create-Update-and-Delete) auszuführen, sowie eine Schnittstelle zum Registrieren von Beobachtern auf bestimmten Knoten, wodurch eine zuverlässige Möglichkeit bereitgestellt wird, den Rest von zu benachrichtigen das Containerverwaltungssystem 100 über Konfigurationsänderungen innerhalb des Containerverwaltungssystems 100. So ermöglichen beispielsweise die gemeinsam genutzten Daten in der Speicherkomponente 110 den API - Server 106 die gesamte Gruppe der Arbeiter 104 in dem Behältermanagementsystem 100 über Konfigurationsänderungen , wie beispielsweise Arbeitsplätze vorgesehen sind, erstellt und bereitgestellt, Schote Knoten benachrichtigen / Servicedetails und -status, Namensräume und Replikationsinformationen usw.
  • Der Hauptknoten 102 enthält auch einen Planer 112 und einen Steuerungsmanager 114. Der Scheduler 112 kann in dem Masterknoten 102 enthalten sein, um Pods und Dienste auf den Arbeiterknoten 104 bereitzustellen. Der Planer 112 enthält Informationen zu verfügbaren Ressourcen auf dem Containerverwaltungssystem 100 sowie Ressourcen, die für die Ausführung der Dienste verwendet werden. Infolgedessen trifft der Planer 112 Entscheidungen darüber, wo ein bestimmter Dienst bereitgestellt werden soll. Der Controller-Manager 112 verwendet den API-Server 106, um den gemeinsam genutzten Status des Container-Management-Systems 100 zu überwachen. Beispielsweise kann der Steuerungsmanager 114 Korrekturänderungen am aktuellen Status des Containerverwaltungssystems 100 vornehmen, um den aktuellen Status in einen anderen Status zu ändern, einen ausgefallenen Pod neu zu erstellen oder einen Pod zu entfernen. Außerdem kann der Master - Knoten 102 umfassen einen DNS - Server 107, wie zum Beispiel, das Zeitpläne den DNS - Pod und Dienste auf dem Cluster von Arbeiter - Knoten 104 und konfiguriert die kubelets einzelnen Behälter anzuweisen , den DNS - Dienst des IP zu verwenden , um Auflösen eines DNS-Eintrags 109.
  • Eine Anzahl von Hülsen 116-1,..., 116-N (nachstehend zusammenfassend als Hülsen 116 bezeichnet) befinden sich in jedem der Arbeiterknoten 104 und einem oder mehreren Behältern 118-1,..., 118-N (nachstehend) zusammen zusammen als Behälter 118 bezeichnet) befinden sich in jeder der Hülsen 116. Die Container 118 befinden sich am Hostcomputer (Computer, auf dem Container ausgeführt werden, dh Arbeiterknoten) und können Ressourcen gemeinsam nutzen. Die Pods 116, die die grundlegende Planungseinheit in Kubernetes darstellen, fügen eine höhere Abstraktionsebene hinzu, indem containerisierte Komponenten gruppiert werden, die Ressourcen gemeinsam nutzen, z. B. Speicher, Linux-Namespaces, Gruppen, IP-Adressen usw. Jede der Hülsen 116 ist zugewiesen eine einzigartige IP - Adresse im Container - Management - System 100, die Anwendungen Ports erlaubt zu verwenden , ohne das Risiko von Konflikten. 116 Jede der Hülsen kann ein Volumen, wie ein lokales Festplattenverzeichnis oder eine Netzwerkplatte und belichten die Lautstärke auf den Behälter 118 in den Hülsen 116 definieren. Die Hülsen 116 können verwaltet werden manuell über die API Server 106 oder die Verwaltung der Hülsen 116 kann an eine Steuerung übertragen werden.
  • Die Container 118 speichern die laufende Anwendung zusammen mit den Bibliotheken und Komponenten oder Diensten, um die zum Ausführen einer Anwendung erforderliche Software auszuführen. Diese Komponenten umfassen Dateien, Umgebungsvariablen, Abhängigkeiten und Bibliotheken. Das Host-Betriebssystem (Betriebssystem, das auf dem Knoten ausgeführt wird, dh Container) beschränkt den Zugriff der Container 118 auf eine physische Ressource wie CPU, Speicher und Speicher, so dass ein einzelner Container, wie z. B. Container 118-1, nicht verwendet werden kann alle physischen Ressourcen eines Hosts. Ein Gasthost-Betriebssystem enthält andererseits Anweisungen, die entweder auf einer virtuellen Maschine oder einer partitionierten Festplatte installiert sind und ein Betriebssystem beschreiben, das sich vom Host-Betriebssystem unterscheidet. Daher wird ein Host-Betriebssystem auf einem Computer installiert und interagiert mit der zugrunde liegenden Hardware, während sich ein Gastbetriebssystem auf einer virtuellen Maschine befindet.
  • Die Schoten in einem einzigen Arbeiter Knoten 104 erzeugt werden, zerstört und neu erstellt, basierend auf dem Zustand des Servers enthielten 116 und den Dienst selbst und damit für eine lange Zeit bestehen kann nicht bestimmt fortzusetzen . Aufgrund der relativ kurzen Lebensdauer der Pods 116 kann sich die IP-Adresse, an der sie bedient werden, ändern, was die Kommunikation der zugehörigen Mikrodienste erschwert. Daher hat Kubernetes das Konzept eines Dienstes eingeführt, bei dem es sich um eine Abstraktion über einer Reihe von Pods 116 handelt, bei der typischerweise ein Proxy verwendet wird, um über den Diensten ausgeführt zu werden, damit andere Dienste über eine virtuelle IP-Adresse kommunizieren können . Infolgedessen kann ein Lastausgleich für zahlreiche Pods 116 eingerichtet werden, so dass die Pods über einen Dienst freigelegt werden können. Die Pods 116 können neu erstellt und Änderungen an ihrem entsprechenden IP-Protokoll vorgenommen werden. Daher werden Dienste mit stabilen IP- und DNS-Namen erstellt, die von anderen Pods zur Kommunikation mit dem Pod 116 verwendet werden können. Stellen Sie sich beispielsweise ein Bildverarbeitungs-Backend vor, das mit drei Replikaten ausgeführt wird. Diese Repliken sind fungibel - das heißt, Frontends ist es egal, welches Backend sie verwenden. Während sich die tatsächlichen Pods 116, aus denen der Backend-Satz besteht, möglicherweise ändern, sind den Frontend-Clients diese Änderungen möglicherweise nicht bekannt oder sie verfolgen möglicherweise keine Liste der Backends. Jedem der Dienste in den Containern 118 des Containerverwaltungssystems 100 wird ein DNS-Name (Domain Name Service) zugewiesen, der einen Namen enthält, der den Pod 116 identifiziert, in dem sich der Dienst befindet, sowie einen Teil des DNS-Namens, der den Namen identifiziert des Dienstes.
  • Jeder der Arbeiterknoten 104 enthält einen Knotenagenten, wie beispielsweise ein Kubelet, (z. B. enthält der Arbeiterknoten 104-1 den Knotenagenten 120-1, nachstehend wird auf die Knotenagenten 120-1, ..., 120-N Bezug genommen gemeinsam als Knotenagenten 120) und ein Proxy, wie beispielsweise ein Kube-Proxy (z. B. der Arbeiterknoten 104-1 enthält den Proxy 122-1, nachstehend werden die Proxys 122-1, ..., 122-N gemeinsam als bezeichnet Proxies 122)). Ein Knotenagent 120 steht mit dem Hauptknoten 102 in Kommunikation und empfängt Details für die Konfiguration der Pods 116 vom API-Server 106. Der Knotenagent 120 verwendet die empfangenen Details, um sicherzustellen, dass die konstruierten Container 118 wie beabsichtigt arbeiten. Zusätzlich kann der Knotenagent 120 auch Informationen über bestimmte Dienste von dem Speicher 110 empfangen, um Informationen zu Diensten zu erhalten und Details zu neu erzeugten oder erstellten Diensten zu erstellen.
  • Jeder der Proxys 122 fungiert als Netzwerk-Proxy oder Hub, über den Anforderungen übertragen werden, und als Load Balancer für einen Dienst auf einem einzelnen Worker-Knoten 104, der als Reverse-Proxy fungiert und den Netzwerk- oder Anwendungsverkehr auf mehrere Server verteilt. Der Load Balancer wird verwendet, um die Kapazität (gleichzeitige Benutzer) und die Zuverlässigkeit von Vorgängen zu erhöhen und das Netzwerkrouting für TCP- (Packation Control Protocol) und UDP-Pakete (User Data Protocol) durchzuführen. Die Proxys 122 sind dafür verantwortlich, den Verkehr an den geeigneten Container 118 weiterzuleiten, um den Zugriff auf Dienste basierend auf einer IP-Adresse und der Nummerierung einer eingehenden Anforderung zum Erstellen einer Anwendung zu ermöglichen.
  • Auf diese Weise sind die Knoten die Ressourcen des Arbeitnehmers 104 zusammen und identifiziert kombiniert werden können , so dass, wenn eine Anwendung oder ein Programm auf den Container - Management - System erstellt oder bereitgestellt werden 100, das Programm oder Dienstleistungen für das Erstellen und Ausführen der Anwendung sind befindet sich in den einzelnen Arbeiterknoten 104. Wenn eine der Knoten 104 hinzugefügt oder entfernt werden , das Container - Management - System 100 ist in der Lage zu erstellen oder die Programme oder Dienste bereitstellen , indem Ressourcen von verschiedenen Knoten 104 oder unter Verwendung eine Kombination verschiedenen Dienste innerhalb des Knoten 104 zu kombinieren.
  • Um containerisierte Anwendungen in einem containerisierten Managementsystem wie beispielsweise einem Kubernetes-System bereitzustellen, kann eine Bereitstellungskonfiguration zum Bereitstellen von Anweisungen zum Erstellen und Aktualisieren von Diensten zum Erstellen einer gewünschten Anwendung über einen Befehl in den Masterknoten 102 eingegeben werden Zeilenschnittstelle 108, wie beispielsweise eine kubectl-Befehlszeilenschnittstelle. Sobald die Anweisungen zum Erstellen und Aktualisieren von Diensten zum Erstellen einer gewünschten Anwendung vom Masterknoten 102 empfangen wurden, plant der API-Server 106 des Masterknotens 102 die Anwendung auf einzelnen Worker-Knoten 104 innerhalb des Clusters von Worker-Knoten 104 des Containerverwaltungssystem 100 zum Erstellen der Anwendung unter Verwendung einer Kombination mehrerer verschiedener Dienste innerhalb mehrerer verschiedener Container 118 aus mehreren verschiedenen Pods 116 des Containerverwaltungssystems 100. Auf diese Weise wird die Anwendung unter Verwendung einer Kombination von Diensten erstellt, die sich in mehreren Containern 118 befinden, die sich in einem oder mehreren Pods 116 in einem oder mehreren Arbeiterknoten 104 befinden.
  • Sobald die Anwendung erstellt und geplant wurde, überwacht der Masterknoten 102 kontinuierlich die Pods 116. Wenn der Masterknoten 102 bestimmt, dass ein Dienst, der für die Anwendung verwendet wird, die sich in einem der Container 118 der Pods 116 befindet, ausfällt oder gelöscht wird, startet der Masterknoten 102 den gelöschten oder nicht operierenden Dienst unter Verwendung von Diensten in den Containern 118 der Pods 116 neu des Containermanagementsystems 100. Auf diese Weise überwacht der API-Server 106 die Funktionalität der Pods 116 und kann den Pod 116 neu erstellen, wenn die Pods 116 nicht mehr wie beabsichtigt funktionieren.
  • Worker Jeder Worker-Knoten 104 enthält eine Hibernator-Bereitstellung (z. B. enthält der Worker-Knoten 104-1 eine Hibernator-Bereitstellung 124-1, nachstehend werden die Hibernator-Bereitstellungen 124-1, ..., 124-N gemeinsam als Hibernator-Bereitstellung 124 bezeichnet). Wie oben beschrieben, speichert jeder der Container 118 die laufende Anwendung zusammen mit den Bibliotheken und Komponenten oder Diensten, um die Software auszuführen, die zum Ausführen einer Operation für die Anwendung erforderlich ist. Wenn ein Benutzer einen Befehl über die CL-Schnittstelle 108 eingibt, kann der Befehl mehrere Semantiken für Anweisungen zum Ausführen der Anwendung enthalten. Beispielsweise kann eine Semantik wie „Ruhezustand bei Inaktivität“ in die Konfigurationsdatei aufgenommen werden, die den Befehl des Benutzers bildet, der anweist, dass die Anwendung in den Ruhezustand versetzt oder in einen inaktiven Zustand versetzt werden soll, wenn die Anwendung für einen bestimmten nicht verwendet wird Zeitraum, wie zum Beispiel zehn (10) Minuten.
  • Die hibernator Entfaltungs 124 kann seine entsprechende Anwendungen , die auf dem entsprechenden Cluster von Arbeiter überwachen die Knoten 104 des Behältermanagement - System 100 und identifizieren diejenigen Anwendungen , die die „Ruhezustand-when-inactive“ semantisches definiert für die Anwendung umfassen. Die Hibernator-Bereitstellung 124 überträgt die Anwendung in einen inaktiven Zustand, wenn die Hibernator-Bereitstellung 124 sowohl feststellt, dass die Anwendung die Semantik „Hibernate-When-Inactive“ enthält, als auch Datenpakete auf dem Service-Port für den angegebenen Zeitraum empfängt, d. H. Zum Beispiel zehn (10) Minuten.
  • Während sich die Anwendung im inaktiven Zustand befindet, leitet die Hibernator-Bereitstellung 124 den Datenverkehr, der über den Service-Port der Hibernator-Anwendung eingeht, zur Hibernator-Bereitstellung 124 um. Die Hibernator-Bereitstellung 124 überwacht den Service-Port im Namen der Ruhezustand-Anwendung, und wenn die Hibernator-Bereitstellung 124 ein eingehendes Paket am Port der Hibernator-Anwendung empfängt, speichert die Hibernator-Bereitstellung das eingehende Paket oder die eingehenden Pakete zwischen und überträgt die Ruhezustand-Anwendung vom inaktiven Zustand an einen aktiver Zustand. Sobald die Anwendung im Ruhezustand vom inaktiven Zustand in den aktiven Zustand übertragen wurde, wird der Betrieb der Anwendung fortgesetzt und die zwischengespeicherten Datenpakete werden zur erneuten Verarbeitung an die Anwendung weitergeleitet, wie nachstehend beschrieben.
  • 2 ist ein schematisches Diagramm des Betriebs einer Ruhezustandbereitstellung 224 eines Behälterverwaltungssystems 204 gemäß einem Beispiel, das mit der vorliegenden Offenbarung übereinstimmt. Wenn Anweisungen zum Erstellen und Aktualisieren von Diensten zum Erstellen einer bestimmten Anwendung vom Masterknoten über die Befehlszeilenschnittstelle empfangen werden, wie oben beschrieben, plant ein API-Server 206 einen API-Dienst oder eine Anwendung 240 auf einem Arbeitsknoten 204 unter Verwendung einer Kombination von mehrere verschiedene Dienste, die sich in mehreren verschiedenen Containern 218 mehrerer verschiedener Pods 216 eines Clusters von Arbeiterknoten 204 befinden. Die Anwendung 240 ist eine Gruppe von Pods 218, die auf einem oder mehreren der Arbeitsknoten 204 ausgeführt werden. Jede Anwendung 240 enthält eine Pod-Label-Abfrage, die die Pods 218 mit Containern 216 definiert, die Dienste enthalten, die zum Verarbeiten der Anwendung 240 verwendet werden.
  • Ein Proxy 222 auf den Arbeiter Knoten 204 leitet den Datenverkehr, gekennzeichnet durch mehrere Pfeile 247-1,..., 247N (im Folgenden zusammenfassend als Pfeile 247 bezeichnet) von 2 zu dem geeigneten Container oder den entsprechenden Containern 218, in denen sich Dienste befinden, die zum Erstellen der Anwendung 240 erforderlich sind, so dass ein Dienstendpunkt der Anwendung 240 zum Erhalten des Zugriffs auf die Container 218 vorhanden ist wird basierend auf einer IP-Adresse der zugeordneten Pods 216 identifiziert. Der Proxy 222 Updates iptables 242 für die Anwendung 240, , durch die die ankommenden und abgehenden Paketfluss gesteuert werden kann, , die die IP - Adressen der Hülsen 216 verwendet werden , umfassen für den Verkehr zu den Leistungen der entsprechenden Behälter Erfassung 218 und die Nummerierung eingehender Anforderungen 243 von einem Client 242 zum Erstellen der Anwendung. Eine solche Aktualisierung der iptables 242 durch den Proxy 222 ermöglicht den Zugriff auf Dienste innerhalb der Container 218 innerhalb eines oder mehrerer Pods 216 basierend auf der IP-Adresse für den Pod 216.
  • Wenn ein Benutzer einen Befehl über die CL-Schnittstelle eingibt, um die Anwendung 240 zu erstellen, kann der Benutzer eine Anmerkung in den Befehl aufnehmen, die anweist, dass die Anwendung 240 in den Ruhezustand versetzt werden soll, wenn die Anwendung 240 für einen bestimmten Zeitraum nicht verwendet wird, wie z als zehn (10) Minuten. Beispielsweise kann eine Semantik wie „Ruhezustand bei Inaktivität“ in die Konfigurationsdatei aufgenommen werden, die den Befehl bildet, und einen bestimmten Zeitraum der Inaktivität enthalten. A hibernator Entfaltungs 224 kann eine Liste der Anwendungen 240 auf dem Cluster des Worker - Knoten 204 periodisch schafft für Inaktivität auf der Grundlage dieser Anwendungen 240 , dass die hibernator Entfaltungs 224 identifiziert, als auch den „Ruhezustand-when-inactive“ semantische überwacht werden. Auf diese Weise überwacht die Hibernator-Bereitstellung 224 anschließend den Paketfluss an den Service-Ports der Anwendungen 240, die in den Listen der Anwendungen 240 enthalten sind, die auf Zeiträume der Inaktivität überwacht werden sollen. Die Hibernator-Bereitstellung 224 kann bestimmen, ob die überwachte Anwendung 240 von einem aktiven Zustand in einen inaktiven Zustand übertragen werden soll, wenn sowohl die Semantik als für die Anwendung 240 vorhanden bestimmt wird, dh die Anwendung 240 eine Anwendung 240 ist, die in der erstellten Anwendung enthalten ist Liste der Anwendungen 240, die auf Inaktivität überwacht werden sollen, und die Anwendung 240 wird für den in der Semantik „Ruhezustand bei Inaktivität“ angegebenen Zeitraum als inaktiv bestimmt.
  • 3A ist ein schematisches Diagramm 304 der Übertragung einer Anwendung von einem aktiven Zustand in einen inaktiven Zustand gemäß einem Beispiel, das mit der vorliegenden Offenbarung übereinstimmt. Eine Hibernator-Bereitstellung 324 kann periodisch (beispielsweise alle 30 Minuten) eine aktuell erstellte Liste der Anwendungen überwachen, die auf Inaktivität überwacht werden sollen, und wann die Hibernator-Bereitstellung 324 bestimmt, wie durch das Fehlen des Pfeils 343 angezeigt, der sich vom Client 344 zum Client erstreckt Anwendung 340, dass eine Anforderung für die Anwendung 340 vom Client 344 für den Zeitraum der Inaktivität nicht empfangen wurde, dh zehn (10) Minuten, beispielsweise angegeben für die Anwendung 340 innerhalb des „Ruhezustands, wenn inaktiv“ Semantisch kann die Hibernator-Bereitstellung 324 bestimmen, dass die Anwendung 340 in den Ruhezustand versetzt werden soll. Daher überträgt die Hibernator-Bereitstellung 324 die Anwendung 340 vom aktiven Zustand in einen inaktiven Zustand.
  • Um beispielsweise die Anwendung 340 vom aktiven Zustand in einen inaktiven Zustand zu übertragen, kann die Hibernator-Bereitstellung 324 die Replikatsätze der Anwendung 340 von einem aktuellen Wert auf Null verkleinern oder reduzieren, um zu verhindern, dass die Anwendung 340 ausgeführt wird. Replikatsätze bieten Redundanz, indem sie mehrere Versionen einer Anwendung bereitstellen, sodass Probleme vermieden werden können, wenn eine oder mehrere Versionen der Anwendung fehlschlagen. Durch die Verwendung mehrerer Replikatsätze oder Versionen eines Containers kann der Datenverkehr einfacher an verschiedene Instanzen oder Container gesendet werden, um eine Überlastung einer einzelnen Instanz oder eines einzelnen Pods zu verhindern. In dem inaktiven Zustand kann eine Dienstrichtlinie von der Hibernator-Bereitstellung 324 derart geändert werden, dass der Dienstendpunkt der Anwendung 340 von der Hibernator-Bereitstellung 324 von einem Standort an den Pods 316, die der Anwendung 340 zugeordnet sind, zu einem Standort übergeht bei der Bereitstellung des Ruhezustands 324, wie durch das Entfernen der in 2 gezeigten Pfeile 247 und das Hinzufügen des Pfeils 345 in 3A angezeigt. Infolgedessen wird jede nachfolgende Anforderung, die vom Client 344 empfangen wird, um auf die Anwendung 340 zuzugreifen, während sich die Anwendung 340 im inaktiven Zustand befindet, an der Hibernator-Bereitstellung 324 und nicht an den Pods 316 beendet und kann daher von der Hibernator-Bereitstellung 324 erkannt werden.
  • Zusätzlich werden Pakete von API-Interaktionen zwischen dem Masterknoten und den Arbeitsknoten, die sich auf die Anwendung 340 beziehen, so umgestellt, dass sie von der Hibernator-Bereitstellung 324 empfangen werden, während sich die Anwendung 340 im inaktiven Zustand befindet. Die Hibernator-Bereitstellung 324 kann dann den Service-Port im Namen der Ruhezustand-Anwendung 340 überwachen, und wenn die Hibernator-Bereitstellung 324 ein eingehendes Paket für die Anwendung 340 empfängt, wie beispielsweise eine HTTP-GET-API (REST-Paket), kann die Hibernator-Bereitstellung 324 dann zwischenspeichern jedes eingehende Paket oder alle eingehenden Pakete für die Anwendung 340 im Speicher, während sich die Anwendung 340 im inaktiven Zustand befindet.
  • Auf diese Weise wird durch Übertragen der Anwendung 340 von dem in 2 dargestellten aktiven Zustand in einen in 3A dargestellten inaktiven Zustand während inaktiver Zeiträume der Nichtbenutzung, die durch das Fehlen von Clientanforderungen zum Zugriff auf die Anwendung angezeigt werden, unnötiger Ressourcenverbrauch (CPU) verursacht, Speicher usw.) des Clusters von Arbeitsknoten 304 durch die Anwendung 340 können reduziert werden, was zu einer Verringerung der ineffizienten Ressourcennutzung und -kosten führt, zusammen mit einer Erhöhung der Systemleistung und einer Verringerung der Skalierungsprobleme für den Cluster.
  • 3B ist ein schematisches Diagramm 304 der Übertragung einer Anwendung von einem inaktiven Zustand in einen aktiven Zustand gemäß einem Beispiel, das mit der vorliegenden Offenbarung übereinstimmt. Während sich die Anwendung 340 im inaktiven Zustand befindet und die Hibernator-Bereitstellung 324 bestimmt, dass eine nachfolgende Anforderung 343 vom Client 344 empfangen wird, um auf die Anwendung 340 zuzugreifen, bestimmt die Hibernator-Bereitstellung 324, dass die Anwendung 340 aus dem dargestellten inaktiven Zustand übertragen werden soll in 3A auf den in 2 dargestellten aktiven Zustand. Wenn beispielsweise bestimmt wird, dass eine nachfolgende Anforderung 343 empfangen wird, wie in 3B gezeigt, während sich die Anwendung 340 in dem in 3A dargestellten inaktiven Zustand befindet, wird der Dienstendpunkt der Anwendung 340 von der Hibernator-Bereitstellung 324 vom Lokalisieren überführt bei der Hibernator-Bereitstellung 324, um sich an den Pods 316 zu befinden, die der Anwendung 340 zugeordnet sind.
  • Zusätzlich kann der Übergang vom inaktiven Zustand in den aktiven Zustand die Hibernator-Bereitstellung 324 umfassen, die die Pakete überträgt, die von der Hibernator-Bereitstellung 324 gespeichert wurden, während sich die Anwendung 340 im inaktiven Zustand befand, zu den Pods 316, um die Verarbeitung der Anwendung 340 fortzusetzen an den Hülsen 316. Infolgedessen werden nachfolgende Anforderungen 343, die vom Client 344 für den Zugriff auf die Anwendung 340 empfangen werden, an den Pods 316 und nicht an der Hibernator-Bereitstellung 324 beendet und Pakete von API-Interaktionen zwischen dem Masterknoten und den Arbeitsknoten in Bezug auf die Die Anwendung 340 wird daher wieder an den Pods 316 empfangen, sobald die Anwendung 340 von dem in 3A dargestellten inaktiven Zustand in den in 2 dargestellten aktiven Zustand durch die Hibernator-Bereitstellung 324 übertragen wird.
  • 4 ist ein Flussdiagramm eines beispielhaften Verfahrens 450 zum Übertragen einer Anwendung von einem aktiven Zustand in einen inaktiven Zustand in Übereinstimmung mit der vorliegenden Offenbarung. Wenn ein Benutzer einen Befehl über die CL-Schnittstelle eingibt, um die Anwendung zu erstellen, kann der Benutzer den Befehl so erstellen, dass er eine Anmerkung enthält, die angibt, dass die Anwendung in den Ruhezustand versetzt werden soll, wenn die Anwendung für einen bestimmten Zeitraum nicht verwendet wird, z. B. zehn (10 Minuten. Beispielsweise kann eine Semantik wie „Ruhezustand bei Inaktivität“ in die Konfigurationsdatei aufgenommen werden, die den Befehl bildet, und sie kann einen bestimmten Zeitraum der Inaktivität enthalten, nach dem angefordert wird, dass die Anwendung in den Ruhezustand versetzt wird, dh aus einem aktiven Zustand übertragen wird in einen inaktiven Zustand. Bei 452 kann das Verfahren 450 periodische Überwachungsanwendungen des Containerverwaltungssystems umfassen, wie beispielsweise die Überwachung alle 30 Minuten. Bei 454 kann das Verfahren 450 das Bestimmen umfassen, ob die überwachten Anwendungen eine vorbestimmte Semantik enthalten. In einem Beispiel kann die vorgegebene Semantik eine für die Anwendung definierte Semantik „Ruhezustand bei Inaktivität“ sein, die angibt, dass die Anwendung in Zeiten, in denen die Anwendung inaktiv ist, z. B. wenn die Anwendung inaktiv ist, von einem aktiven Zustand in einen inaktiven Zustand versetzt werden soll ist beispielsweise 10 Minuten inaktiv.
  • Bei 456 kann das Verfahren 450 das Bestimmen umfassen, ob eine Anwendung mit der vorbestimmten Semantik aktiv ist, beispielsweise durch eine Anforderung zum Zugriff auf die Anwendung, die von einem Client innerhalb des angegebenen Zeitraums empfangen wird, der in der Semantik enthalten ist. Beispielsweise kann festgestellt werden, dass die Anwendung nicht aktiv ist, dh inaktiv (Nr. In 456), wenn während des in der Semantik definierten vorgegebenen Zeitraums keine Clientanforderungen für die Anwendung empfangen wurden, wie beispielsweise 10 Minuten. Andererseits kann festgestellt werden, dass die Anwendung aktiv ist (Ja in 456), wenn während des vorgegebenen Zeitraums eine oder mehrere Clientanforderungen für die Anwendung aufgetreten sind.
  • Wenn festgestellt wird, dass die Anwendung aktiv ist, befindet sich die Anwendung weiterhin in einem aktiven Zustand, und die Überwachung der Anwendungen wird bei 452 fortgesetzt. Bei 458 kann das Verfahren 450 als Reaktion auf das Bestimmen, dass die Anwendung nicht aktiv ist, umfassen, dass die Anwendung vom aktiven Zustand in einen inaktiven Zustand übertragen wird. Um beispielsweise die Anwendung vom aktiven in den inaktiven Zustand zu übertragen, können Replikatsätze der Anwendung auf Null verkleinert werden. Darüber hinaus kann eine Änderung der Servicerichtlinie vorgenommen werden, sodass ein Service-Endpunkt der Anwendung von Pods von Worker-Knoten, die der Anwendung zugeordnet sind, in eine Hibernator-Bereitstellung überführt wird, sodass nachfolgende Anforderungen für die Anwendung, während sich die Anwendung im inaktiven Zustand befindet, beendet werden eher bei der Bereitstellung des Ruhezustands als an den Pods der Worker-Knoten.
  • In einem Beispiel kann daher ein Verfahren zum Übertragen einer Anwendung vom aktiven Zustand in einen inaktiven Zustand das Überwachen einer Anwendung durch eine Hibernator-Bereitstellung eines Containerverwaltungssystems, das Bestimmen einer für die Anwendung definierten Semantik und das Übertragen der Anwendung vom aktiven Zustand umfassen in den inaktiven Zustand, wenn die Anwendung nicht aktiv ist und auf der für die Anwendung definierten Semantik basiert.
  • Auf diese Weise kann durch Übertragen der Anwendung vom aktiven Zustand in den inaktiven Zustand während inaktiver Nichtbenutzungsperioden für die Anwendung unnötig Ressourcen (CPU, Speicher usw.) des Clusters von Arbeitsknoten durch die Anwendung verbraucht werden Dies führt zu einer Verringerung der ineffizienten Ressourcennutzung und -kosten sowie zu einer Erhöhung der Systemleistung und einer Verringerung der Skalierungsprobleme für den Cluster.
  • 5 ist ein Flussdiagramm eines beispielhaften Verfahrens 560 zum Übertragen einer Anwendung von einem aktiven Zustand in einen inaktiven Zustand gemäß einem Beispiel, das mit der vorliegenden Offenbarung übereinstimmt. In einigen Beispielen erstellt die Hibernator-Bereitstellung möglicherweise eine Liste der Anwendungen auf dem Cluster von Worker-Knoten, die auf Inaktivität überwacht werden sollen, basierend auf den Anwendungen, bei denen die Hibernator-Bereitstellung die Semantik „Hibernate-When-Inactive“ enthält. Auf diese Weise kann das Verfahren 560 bei 562 das regelmäßige (z. B. alle 30 Minuten) Aktualisieren der Liste der Anwendungen, die auf Inaktivität überwacht werden sollen, durch die Bereitstellung des Ruhezustands umfassen. Bei 564 kann das Verfahren 560 als Reaktion auf die Aktualisierung der Liste das anschließende Überwachen des Paketflusses auf Service-Ports der Anwendungen, die in der Liste der zu überwachenden Anwendungen für Zeiträume der Inaktivität enthalten sind, durch die Hibernator-Bereitstellung umfassen.
  • Bei 566 kann das Verfahren 560 das Bestimmen durch die Hibernator-Bereitstellung umfassen, wann Anwendungen in der Liste der Anwendungen inaktiv sind. Beispielsweise kann festgestellt werden, dass die Anwendung inaktiv ist, wenn während eines in der Semantik definierten vorgegebenen Zeitraums, wie beispielsweise zehn (10) Minuten, keine Clientanforderungen für die Anwendung eingegangen sind. Andererseits kann festgestellt werden, dass die Anwendung aktiv und daher nicht inaktiv ist, wenn während des vorbestimmten Zeitraums eine oder mehrere ClientAnforderungen für die Anwendung eingegangen sind.
  • Bei 568 kann das Verfahren 560 das Bestimmen durch die Hibernator-Bereitstellung umfassen, die Anwendung vom aktiven Zustand in den inaktiven Zustand zu übertragen, wenn festgestellt wird, dass die Anwendung inaktiv ist. Um die Anwendung vom aktiven in den inaktiven Zustand zu übertragen, kann die Hibernator-Bereitstellung die Replikatsätze der Anwendung von einem aktuellen Wert auf Null verkleinern oder reduzieren. Replikatsätze bieten Redundanz, indem sie mehrere Versionen einer Anwendung bereitstellen, sodass Probleme vermieden werden können, wenn eine oder mehrere Versionen der Anwendung fehlschlagen. Durch die Verwendung mehrerer Replikatsätze oder Versionen eines Containers kann der Datenverkehr einfacher an verschiedene Instanzen oder Container gesendet werden, um eine Überlastung einer einzelnen Instanz oder eines einzelnen Pods zu verhindern.
  • Bei 570 kann das Verfahren 560 das Ändern einer Dienstrichtlinie für die Anwendung durch die Hibernator-Bereitstellung während der Übertragung der Anwendung vom aktiven Zustand in den inaktiven Zustand umfassen, so dass der Dienstendpunkt der Anwendung vom Hibernator übertragen wird Bereitstellung von der Position an den Pods, die der Anwendung zugeordnet sind, bis zur Bereitstellung im Ruhezustand. Infolgedessen wird jede nachfolgende Anforderung zum Zugriff auf die Anwendung, die empfangen wird, während sich die Anwendung im inaktiven Zustand befindet, bei der Bereitstellung des Ruhezustands und nicht an den Pods beendet und daher von der Bereitstellung des Ruhezustands erkannt.
  • Bei 572 kann das Verfahren 560 das Übertragen von Paketen aus API-Interaktionen zwischen dem Masterknoten und den Arbeiterknoten in Bezug auf die Anwendung, die auf die Hibernator-Bereitstellung übertragen werden sollen, durch die Hibernator-Bereitstellung umfassen, anstatt auf die Pods, wenn die Anwendung an den übertragen wird inaktiver Zustand. Die Hibernator-Bereitstellung kann dann den Service-Port im Namen der Ruhezustand-Anwendung überwachen. Wenn die Hibernator-Bereitstellung ein oder mehrere eingehende Pakete für die Anwendung empfängt, kann die Hibernator-Bereitstellung das eingehende Paket oder die eingehenden Pakete für die Anwendung während der Anwendung speichern ist im inaktiven Zustand.
  • 6 ist ein Flussdiagramm eines beispielhaften Verfahrens 670 zum Übertragen einer Anwendung von einem inaktiven Zustand in einen aktiven Zustand, das mit der vorliegenden Offenbarung übereinstimmt. Bei 672 kann das Verfahren 670 umfassen, während sich die Anwendung im inaktiven Zustand befindet, dass die Hibernator-Bereitstellung den Service-Port der Anwendung überwacht und bestimmt, wann eine Anforderung zum Zugriff auf die Anwendung am Service-Port empfangen wird. Bei 674 kann das Verfahren 670 umfassen, dass, sobald eine Anforderung zum Zugriff auf die Anwendung am Service-Port für die Anwendung von der Hibernator-Bereitstellung empfangen wurde, die Hibernator-Bereitstellung die Anwendung vom inaktiven Zustand in den aktiven Zustand überträgt.
  • Um beispielsweise die Anwendung von dem inaktiven Zustand in den aktiven Zustand bei 674 zu übertragen, kann die Hibernator-Bereitstellung Replikatsätze der Anwendung von dem verkleinerten Wert skalieren, der zum Übertragen der Anwendung vom aktiven Zustand in den inaktiven Zustand verwendet wird. dh Null zum Beispiel auf ihren Anfangswert, der von der Anwendung verwendet wird, wenn sich die Anwendung im aktiven Zustand befindet. Bei 676 kann das Verfahren 670 den Dienstendpunkt der Anwendung enthalten, die von der Hibernator-Bereitstellung von einem Standort in der Hibernator-Bereitstellung zu einem Standort in den Pods der Arbeitsknoten mit Containern überführt wird, die Dienste enthalten, die der Ausführung der Anwendung zugeordnet sind.
  • Bei 678 kann das Verfahren 670 während der Übertragung der Anwendung vom inaktiven Zustand in den aktiven Zustand die Hibernator-Bereitstellung umfassen, die die Pakete überträgt, die von der Hibernator-Bereitstellung gespeichert wurden, während sich die Anwendung 340 im inaktiven Zustand befand, zu den Pods, für die sie verwendet wurde Erstellen der Anwendungen, dh Pods der Arbeitsknoten mit Containern, die Dienste enthalten, die mit der Ausführung der Anwendung verbunden sind. Die übertragenen Pakete können dann für den wieder aufgenommenen Prozess der Anwendung verwendet werden.
  • Sobald die Anwendung vom inaktiven in den aktiven Zustand versetzt wird, werden nachfolgende Anforderungen, die für den Zugriff auf die Anwendung empfangen werden, an den Pods der Arbeitsknoten mit Containern beendet, die Container enthalten, die Dienste enthalten, die mit der Ausführung der Anwendung verbunden sind, und nicht um die Hibernator-Bereitstellung. Darüber hinaus werden Pakete von API-Interaktionen zwischen dem Masterknoten und den Arbeitsknoten, die sich auf die Anwendung beziehen, wieder an den Pods der Arbeitsknoten mit Containern empfangen, die Dienste enthalten, die mit der Ausführung der Anwendung verbunden sind, sobald die Anwendung von der inaktiven übertragen wird Status in den aktiven Status durch die Hibernator-Bereitstellung.
  • In der vorstehenden detaillierten Beschreibung der vorliegenden Offenbarung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil davon bilden und in denen zur Veranschaulichung gezeigt ist, wie Beispiele der Offenbarung praktiziert werden können. Diese Beispiele werden ausreichend detailliert beschrieben, um es dem Durchschnittsfachmann zu ermöglichen, die Beispiele dieser Offenbarung zu praktizieren, und es versteht sich, dass andere Beispiele verwendet werden können und dass prozess-, elektrische und / oder strukturelle Änderungen vorgenommen werden können ohne vom Umfang der vorliegenden Offenbarung abzuweichen.
  • Die Figuren hier folgen einer Nummerierungskonvention, bei der die erste Ziffer der Zeichnungsfigurennummer entspricht und die verbleibenden Ziffern ein Element oder eine Komponente in der Zeichnung identifizieren. Elemente, die in den verschiedenen Figuren hier gezeigt sind, können hinzugefügt, ausgetauscht und / oder eliminiert werden, um eine Anzahl zusätzlicher Beispiele der vorliegenden Offenbarung bereitzustellen. Darüber hinaus sollen der Anteil und der relative Maßstab der in den Figuren bereitgestellten Elemente die Beispiele der vorliegenden Offenbarung veranschaulichen und sollten nicht in einem einschränkenden Sinne verstanden werden.

Claims (18)

  1. Ein Containermanagementsystem (100), umfassend: mehreren Arbeiterknoten (104), innerhalb derer Dienste des Containermanagementsystems (100) zur Ausführung einer Anwendung arbeiten; und eine Hibernator-Bereitstellung (124), bei der die Hibernator-Bereitstellung dazu ausgebildet ist zum: Bestimmen einer für die Anwendung definierten Semantik, wobei die ermittelte Semantik eine Hibernation-wenn-inaktiv-Semantik umfasst; Bestimmen, ob die Anwendung während eines entsprechenden Zeitraums aktiv ist, der in der Semantik enthalten ist; und Übertragen der Anwendung von einem aktiven Zustand in einen inaktiven Zustand, wenn die Anwendung während des entsprechenden Zeitraums, der in der für die Anwendung definierten Semantik enthalten ist, nicht aktiv ist; wobei die Hibernator-Bereitstellung (124) dazu ausgebildet ist einen Service - Endpunkt der Anwendung von einer Beendigung in der Anwendung zu einer Beendigung in der Hibernator-Bereitstellung (124) zu überführen, in Reaktion darauf, dass die Anwendung von dem aktiven Zustand in den inaktiven Zustand versetzt wird.
  2. Containermanagementsystem (100) nach Anspruch 1, wobei die Hibernator-Bereitstellung dazu ausgebildet ist, Replikatsätze für die Anwendung in Reaktion auf die Übertragung der Anwendung von dem aktiven Zustand in den inaktiven Zustand, auf Null zu reduzieren.
  3. Containermanagementsystem (100) nach einem der Ansprüche 1 oder 2, wobei die Hibernator-Bereitstellung (124) dazu ausgebildet ist: Pakete, die sich auf die Anwendung beziehen, von einem Empfang in der Anwendung zu einem Empfang in der Hibernator-Bereitstellung (124) zu überführen, als Reaktion auf die Übertragung der Anwendung vom aktiven in den inaktiven Zustand; und Speichern der Pakete, die bei der Bereitstellung des Ruhezustands empfangen wurden, während sich die Anwendung im inaktiven Zustand befindet.
  4. Containermanagementsystem (100) nach einem der Ansprüche 1 bis 3, wobei die Hibernator-Bereitstellung ist: während sich die Anwendung im inaktiven Zustand befindet, bestimmen, ob eine Anforderung zum Zugriff auf die Anwendung empfangen wird; und Übertragen der Anwendung vom inaktiven Zustand in den aktiven Zustand als Antwort auf die Anforderung, auf die empfangene Anwendung zuzugreifen.
  5. Containermanagementsystem (100) nach Anspruch 4, wobei die Hibernator-Bereitstellung (124) Repliken Sets für die Anwendung in Antwort auf die Übertragung die Anwendung aus dem inaktiven Zustand in den aktiven Zustand zu erhöhen, ist.
  6. Containermanagementsystem (100) nach einem der Ansprüche 4 oder 5, wobei die Hibernator-Bereitstellung (124) ist von einem Service - Endpunkt der Anwendung Übergang am Hibernator-Bereitstellung (124) beendet wird, zur Übertragung der Anwendung bei der Anwendung als Reaktion beendet werden wird , der inaktive Zustand in den aktiven Zustand.
  7. Containermanagementsystem (100) nach einem der Ansprüche 4 bis 6, wobei die Hibernator-Bereitstellung ist: Übergangspakete, die sich auf die Anwendung beziehen, vom Empfang bei der Hibernator-Bereitstellung zum Empfang bei der Anwendung als Reaktion auf die Übertragung der Anwendung vom inaktiven in den aktiven Zustand; und Herunterladen von Paketen in Bezug auf die Anwendung, die bei der Bereitstellung des Ruhezustands gespeichert wurde, während sich die Anwendung im inaktiven Zustand befindet, in die Anwendung als Reaktion auf das Übertragen der Anwendung vom inaktiven in den aktiven Zustand.
  8. Vorrichtung, die Folgendes umfasst: eine Vielzahl von Anwendungen, die zur Durchführung von Bereitstellungen in einem Containermanagementsystem generiert wurden; und eine Hibernator-Bereitstellung (124), bei der die Hibernator-Bereitstellung (124) dazu ausgebildet ist: die Vielzahl von Anwendungen überwachen; Bestimmen einer Semantik, die für die Vielzahl von Anwendungen definiert ist, wobei die ermittelte Semantik eine Hibernation-wenn-inaktiv-Semantik umfasst; Bestimmen, ob eine Anwendung der mehreren Anwendungen während eines entsprechenden Zeitraums aktiv ist, der in der Semantik enthalten ist; und Übertragen Sie die Anwendung von einem aktiven Zustand in einen inaktiven Zustand, wenn die Anwendung während des entsprechenden Zeitraums, der in der für die Anwendung definierten Semantik enthalten ist, nicht aktiv ist; wobei die Hibernator-Bereitstellung (124) dazu ausgebildet ist einen Service - Endpunkt der Anwendung von einer Beendigung in der Anwendung zu einer Beendigung in der Hibernator-Bereitstellung (124) zu überführen, in Reaktion darauf, dass die Anwendung von dem aktiven Zustand in den inaktiven Zustand versetzt wird.
  9. Vorrichtung nach Anspruch 8, wobei die Hibernator-Bereitstellung (124) Repliken Sets für die Anwendung auf Null in Reaktion auf die Übertragung der Anwendung von dem aktiven Zustand in den inaktiven Zustand zu reduzieren, ist.
  10. Vorrichtung nach einem der Ansprüche 8 oder 9, wobei die Bereitstellung des Ruhezustands folgendes umfasst: Übergangspakete, die sich auf die Anwendung beziehen, vom Empfang in der Anwendung zum Empfang in der Hibernator-Bereitstellung (124) als Reaktion auf die Übertragung der Anwendung vom aktiven in den inaktiven Zustand; und Speichern der Pakete, die bei der Bereitstellung des Ruhezustands empfangen wurden, während sich die Anwendung im inaktiven Zustand befindet.
  11. Vorrichtung nach einem der Ansprüche 8 bis 10, wobei die Bereitstellung des Ruhezustands Folgendes umfasst: während sich die Anwendung im inaktiven Zustand befindet, bestimmen, ob eine Anforderung zum Zugriff auf die Anwendung empfangen wird; und Übertragen Sie die Anwendung vom inaktiven Zustand in den aktiven Zustand als Antwort auf die Anforderung, auf die empfangene Anwendung zuzugreifen.
  12. Vorrichtung nach Anspruch 11, wobei die Hibernator-Bereitstellung (124) Repliken Sets für die Anwendung in Antwort auf die Übertragung die Anwendung aus dem inaktiven Zustand in den aktiven Zustand zu erhöhen, ist.
  13. Vorrichtung nach einem der Ansprüche 11 oder 12, wobei die Hibernator-Bereitstellung ist von einem Service - Endpunkt der Anwendung Übergang am Hibernator-Bereitstellung (124) beendet wird, von dem inaktiven zu Transferieren der Anwendung an die Anwendung als Reaktion beendet werden wird, Zustand in den aktiven Zustand.
  14. Vorrichtung nach einem der Ansprüche 11 bis 13, wobei die Bereitstellung des Ruhezustands Folgendes umfasst: Übergangspakete, die sich auf die Anwendung beziehen, vom Empfang bei der Hibernator-Bereitstellung (124) zum Empfang bei der Anwendung als Reaktion auf die Übertragung der Anwendung vom inaktiven in den aktiven Zustand; und Herunterladen von Paketen in Bezug auf die Anwendung, die bei der Bereitstellung des Ruhezustands gespeichert wurde, während sich die Anwendung im inaktiven Zustand befindet, in die Anwendung als Reaktion auf das Übertragen der Anwendung vom inaktiven in den aktiven Zustand.
  15. Ein nicht-flüchtiges computerlesbares Medium mit Anweisungen zur Durchführung eines Verfahrens, das Verfahren umfassend: Überwachen einer Anwendung durch eine Hibernator-Bereitstellung (124) eines Containerverwaltungssystems (100); Bestimmen einer für die Anwendung definierten Semantik, wobei die ermittelte Semantik eine Hibernation-wenn-inaktiv-Semantik umfasst; Bestimmen, ob die Anwendung während eines entsprechenden Zeitraums aktiv ist, der in der Semantik enthalten ist; und Übertragen der Anwendung von einem aktiven Zustand in einen inaktiven Zustand als Reaktion darauf, dass die Anwendung während des entsprechenden Zeitraums, der in der für die Anwendung definierten Semantik enthalten ist, nicht aktiv ist; wobei die Hibernator-Bereitstellung (124) dazu ausgebildet ist einen Service - Endpunkt der Anwendung von einer Beendigung in der Anwendung zu einer Beendigung in der Hibernator-Bereitstellung (124) zu überführen, in Reaktion darauf, dass die Anwendung von dem aktiven Zustand in den inaktiven Zustand versetzt wird.
  16. Nichtflüchtiges computerlesbares Medium nach Anspruch 15, wobei Speichern eingehender Pakete für die Anwendung in der Hibernator-Bereitstellung (124), während sich die Anwendung im inaktiven Zustand befindet; Bestimmen, ob eine Anforderung zum Zugriff auf die Anwendung empfangen wird, während sich die Anwendung im inaktiven Zustand befindet; und Übertragen der Anwendung vom inaktiven Zustand in den aktiven Zustand als Antwort auf die Anforderung, deren Empfang bestimmt wird.
  17. Nichtflüchtiges computerlesbares Medium nach einem der Ansprüche 15 oder 16, wobei das Verfahren ferner umfasst: Reduzieren von Replikatsätzen für die Anwendung als Reaktion auf das Übertragen der Anwendung vom aktiven in den inaktiven Zustand; und Erhöhen der Replikatsätze für die Anwendung als Reaktion auf das Übertragen der Anwendung vom inaktiven in den aktiven Status.
  18. Nichtflüchtiges computerlesbares Medium nach einem der Ansprüche 15 bis 17, wobei das Verfahren ferner umfasst: Übergang des Dienstendpunkts der Anwendung von der Beendigung bei der Hibernator-Bereitstellung (124) zur Beendigung bei der Anwendung als Reaktion auf die Übertragung der Anwendung vom inaktiven in den aktiven Zustand.
DE102019133923.5A 2018-12-14 2019-12-11 Anwendungsverwendung in einem behältermanagementsystem Active DE102019133923B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/220,284 US10949239B2 (en) 2018-12-14 2018-12-14 Application deployment in a container management system
US16/220,284 2018-12-14

Publications (2)

Publication Number Publication Date
DE102019133923A1 DE102019133923A1 (de) 2020-06-18
DE102019133923B4 true DE102019133923B4 (de) 2023-03-16

Family

ID=70859538

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019133923.5A Active DE102019133923B4 (de) 2018-12-14 2019-12-11 Anwendungsverwendung in einem behältermanagementsystem

Country Status (3)

Country Link
US (1) US10949239B2 (de)
CN (1) CN111324416A (de)
DE (1) DE102019133923B4 (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11785104B2 (en) 2017-11-27 2023-10-10 Lacework, Inc. Learning from similar cloud deployments
US11916947B2 (en) 2017-11-27 2024-02-27 Lacework, Inc. Generating user-specific polygraphs for network activity
US20220232025A1 (en) 2017-11-27 2022-07-21 Lacework, Inc. Detecting anomalous behavior of a device
US11741238B2 (en) 2017-11-27 2023-08-29 Lacework, Inc. Dynamically generating monitoring tools for software applications
US20220232024A1 (en) 2017-11-27 2022-07-21 Lacework, Inc. Detecting deviations from typical user behavior
US11894984B2 (en) 2017-11-27 2024-02-06 Lacework, Inc. Configuring cloud deployments based on learnings obtained by monitoring other cloud deployments
US11849000B2 (en) 2017-11-27 2023-12-19 Lacework, Inc. Using real-time monitoring to inform static analysis
US11792284B1 (en) 2017-11-27 2023-10-17 Lacework, Inc. Using data transformations for monitoring a cloud compute environment
US11770398B1 (en) 2017-11-27 2023-09-26 Lacework, Inc. Guided anomaly detection framework
US11818156B1 (en) 2017-11-27 2023-11-14 Lacework, Inc. Data lake-enabled security platform
US10419469B1 (en) 2017-11-27 2019-09-17 Lacework Inc. Graph-based user tracking and threat detection
US11765249B2 (en) 2017-11-27 2023-09-19 Lacework, Inc. Facilitating developer efficiency and application quality
US11456921B2 (en) * 2019-04-29 2022-09-27 Ncr Corporation Self-contained microservice platform
US11593137B2 (en) 2019-08-30 2023-02-28 Nutanix, Inc. Hypervisor hibernation
US11256759B1 (en) 2019-12-23 2022-02-22 Lacework Inc. Hierarchical graph analysis
US11201955B1 (en) * 2019-12-23 2021-12-14 Lacework Inc. Agent networking in a containerized environment
US11188571B1 (en) 2019-12-23 2021-11-30 Lacework Inc. Pod communication graph
US20220107814A1 (en) * 2020-10-02 2022-04-07 Nutanix, Inc. Hibernating and resuming nodes of a computing cluster
US20220121543A1 (en) * 2020-10-21 2022-04-21 Nutanix, Inc. Key value store in a clustered containerized system
US11196665B1 (en) * 2020-11-12 2021-12-07 Sap Se Routing application calls
WO2022128059A1 (en) * 2020-12-14 2022-06-23 Telefonaktiebolaget Lm Ericsson (Publ) Load balancing in a system
US11368539B1 (en) * 2021-05-27 2022-06-21 International Business Machines Corporation Application deployment in a multi-cluster environment
US11481243B1 (en) * 2021-08-25 2022-10-25 International Business Machines Corporation Service access across Kubernetes clusters
US20230074530A1 (en) * 2021-09-07 2023-03-09 Red Hat, Inc. Distributed data grid routing for clusters managed using container orchestration services
US11847443B2 (en) 2021-09-07 2023-12-19 International Business Machines Corporation Constraints-based refactoring of monolith applications through attributed graph embeddings
US11726778B2 (en) * 2021-09-29 2023-08-15 International Business Machines Corporation Translating clusters of a monolith application to microservices
US11601393B1 (en) 2021-10-04 2023-03-07 Cisco Technology, Inc. Microservice visibility and control
US11916998B2 (en) * 2021-11-12 2024-02-27 Electronics And Telecommunications Research Institute Multi-cloud edge system
US11768679B2 (en) 2021-11-30 2023-09-26 International Business Machines Corporation Identifying microservices for a monolith application through static code analysis
CN114531443A (zh) * 2022-02-18 2022-05-24 京东科技信息技术有限公司 基于集群的容器控制方法及系统
CN114881233B (zh) * 2022-04-20 2023-03-24 深圳市魔数智擎人工智能有限公司 一种基于容器的分布式模型推理服务方法
US11954525B1 (en) * 2022-09-21 2024-04-09 Zhejiang Lab Method and apparatus of executing collaborative job for spark faced to multiple K8s clusters

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201414A1 (en) 2007-02-15 2008-08-21 Amir Husain Syed M Transferring a Virtual Machine from a Remote Server Computer for Local Execution by a Client Computer
US20090217072A1 (en) 2008-02-26 2009-08-27 Alexander Gebhart Automated electrical power savings in virtualization environments
US20130297668A1 (en) 2012-05-01 2013-11-07 Red Hat, Inc. Application idling in a multi-tenant cloud-based application hosting environment
EP2742401B1 (de) 2011-08-10 2017-08-02 Microsoft Technology Licensing, LLC Aufhebung und/oder drosselung von verfahren für verbundenen bereitschaftsbetrieb

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1919144B1 (de) * 2002-02-08 2013-05-29 Fujitsu Ltd. Stationsvorrichtung, Verfahren zur Betriebsmittelzuteilung in einer Stationsvorrichtung und Mobilkommunikationssystem
US7225448B2 (en) 2003-08-14 2007-05-29 Lenovo (Singapore) Pte. Ltd. System and method for hibernating application state data on removable module
US20050255833A1 (en) * 2004-05-13 2005-11-17 Mobile (R&D) Ltd. Message aggregation system and method for a mobile communication device
US7552215B2 (en) * 2004-09-29 2009-06-23 International Business Machines Corporation Method, system, and computer program product for supporting a large number of intermittently used application clusters
US20070106739A1 (en) * 2005-11-08 2007-05-10 David Clark Wireless messaging using notification messages in a wireless communication network
US8607082B2 (en) 2009-08-31 2013-12-10 Red Hat Israel, Ltd. Mechanism for managing power in a virtual machine system
US9891939B2 (en) 2011-03-03 2018-02-13 Microsoft Technology Licensing, Llc Application compatibility with library operating systems
US8793684B2 (en) * 2011-03-16 2014-07-29 International Business Machines Corporation Optimized deployment and replication of virtual machines
US8769011B2 (en) * 2011-06-21 2014-07-01 Cisco Technology, Inc. Survivable browsing in virtualized desktop environment when host connectivity is lost
US8412945B2 (en) * 2011-08-09 2013-04-02 CloudPassage, Inc. Systems and methods for implementing security in a cloud computing environment
US9648138B1 (en) * 2012-03-27 2017-05-09 Open Text Corporation Method and system for virtual server dormancy
US8995339B2 (en) * 2012-06-08 2015-03-31 At&T Intellectual Property I, L.P. Network control of applications using application states
US20150058519A1 (en) 2013-08-22 2015-02-26 International Business Machines Corporation Detection of hot pages for partition hibernation
US10193963B2 (en) 2013-10-24 2019-01-29 Vmware, Inc. Container virtual machines for hadoop
US20180227369A1 (en) * 2017-02-09 2018-08-09 Kaiser Foundation Hospitals Converged service computing platform

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201414A1 (en) 2007-02-15 2008-08-21 Amir Husain Syed M Transferring a Virtual Machine from a Remote Server Computer for Local Execution by a Client Computer
US20090217072A1 (en) 2008-02-26 2009-08-27 Alexander Gebhart Automated electrical power savings in virtualization environments
EP2742401B1 (de) 2011-08-10 2017-08-02 Microsoft Technology Licensing, LLC Aufhebung und/oder drosselung von verfahren für verbundenen bereitschaftsbetrieb
US20130297668A1 (en) 2012-05-01 2013-11-07 Red Hat, Inc. Application idling in a multi-tenant cloud-based application hosting environment

Also Published As

Publication number Publication date
US10949239B2 (en) 2021-03-16
CN111324416A (zh) 2020-06-23
US20200192690A1 (en) 2020-06-18
DE102019133923A1 (de) 2020-06-18

Similar Documents

Publication Publication Date Title
DE102019133923B4 (de) Anwendungsverwendung in einem behältermanagementsystem
DE60221019T2 (de) Verwaltung von serverbetriebsmitteln für hostanwendungen
DE102015105884B4 (de) Rechenknoten und Verfahren zur Migration einer virtuellen Maschine, Rechenzentrummanager zur Migration virtueller Maschinen, Maschinenlesbares Speichermedium und Rechenvorrichtungen
DE112016006080B4 (de) Verwaltung von virtuellen desktopinstanzenpools
US9489443B1 (en) Scheduling of splits and moves of database partitions
CN102479099B (zh) 虚拟机管理系统及其使用方法
DE112017000629T5 (de) Multi-Tenant-Arbeitsspeicherdienst für Architekturen mit Arbeitsspeicher-Pools
US20160205541A1 (en) Apparatus For End-User Transparent Utilization of Computational, Storage, and Network Capacity of Mobile Devices, and Associated Methods
DE202017007217U1 (de) Multicluster-Lager
US8959222B2 (en) Load balancing system for workload groups
DE112017000337T5 (de) Spezifizieren eines disaggregierten Datenverarbeitungssystems
US20030163734A1 (en) Methods for managing and dynamically configuring resources at data center
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE112016003726T5 (de) Dynamisch definierte virtuelle private Netzwerktunnel in hybriden Cloud-Umgebungen
DE112010003144T5 (de) Erweiterbare Grundstruktur zur Unterstützung verschiedener Einsatzarchitekturen
DE102006006250A1 (de) System und Verfahren für zentralisierte Software-Verwaltung in virtuellen Maschinen
DE102020110143A1 (de) Standortbasierte virtualisierungs-workload-platzierung
DE102016105595A1 (de) Bedarfsleistungsmanagement in einer vernetzten Computerumgebung
CN109992373B (zh) 资源调度方法、信息管理方法和装置及任务部署系统
EP1634176B1 (de) Clusteranordnung für dezentrale lastverteilung
DE10340416A1 (de) System und Verfahren zum Beenden von Prozessen in einem verteilten Rechensystem
EP1611523B1 (de) Benutzungssteuerung für systembetriebsmittel durch einen netzwerkmanager
CN108121585A (zh) 基于云模式下的资源分配装置及方法
DE202021102315U1 (de) Flexibles Computing
DE112021005394T5 (de) Tag-gesteuerte planung von datenverarbeitungsressourcen zur funktionsausführung

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: HL KEMPNER PATENTANWAELTE, SOLICITORS (ENGLAND, DE

Representative=s name: HL KEMPNER PATENTANWALT, RECHTSANWALT, SOLICIT, DE

R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, SPR, US

Free format text: FORMER OWNER: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOUSTON, TEX., US

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final