Kubernetes ist eine Open-Source-Plattform für Containerorchestrierung zur Automatisierung, Bereitstellung, Skalierung und Verwaltung containerisierter Anwendungen, Workloads und Services.
Container sind Softwarepakete, die alle Dateien und Abhängigkeiten aufweisen, die für die Ausführung in den einzelnen Umgebungen erforderlich sind, einschließlich Anwendungscode, Laufzeit, Systembibliotheken und Systemtools. Durch die Virtualisierung des Betriebssystems können Container in Entwicklungs-, Test- und Produktionsumgebungen oder in jeder beliebigen Computing-Umgebung ausgeführt werden – von persönlichen Geräten bis hin zu Public Clouds oder privaten Rechenzentren.
Wie funktionieren Container?
Container umfassen mehrere Komponenten.
- Containerbilder sind vollständige, statische, schlanke, ausführbare Softwarepakete, die alle Informationen enthalten, die für die Ausführung eines Containers erforderlich sind. Es gibt mehrere Container-Bildformate – das häufigste ist die Open Container Initiative (OCI).
- Container Engines greifen über ein Repository auf Container-Bilder zu und führen sie aus. Zu den häufigsten Container Engines gehören Docker, CRI-O, Containerd, runC, LXD und RKT. Container Engines können auf beliebigen Container-Hosts ausgeführt werden, einschließlich persönlicher Geräte, physischer Server oder in der Cloud.
- Container sind Container-Bilder, die von der Container-Engine ausgeführt wurden. Das Hostbetriebssystem – in der Regel Linux, Mac oder Microsoft Windows – schränkt die Fähigkeit des Containers ein, auf Ressourcen wie CPU, Arbeitsspeicher und Speicher zuzugreifen, sodass ein Container keine unverhältnismäßig große Menge physischer Ressourcen verbraucht.
- Container Scheduler und Orchestrierungstechnologie verwaltet die Bereitstellung und Ausführung von Containern.
Was ist Containerisierung?
Containerisierung ist die Aufgabe, Softwarecode mit dem Betriebssystem, den Bibliotheken, den Konfigurationsdateien und anderen Abhängigkeiten zu bündeln, die für die Ausführung des Codes erforderlich sind. Durch den Ansatz „einmal erstellen, überall ausführen“ für die Softwareentwicklung ermöglichen containerisierte Anwendungen Entwicklern, Anwendungen schneller und sicherer zu erstellen und bereitzustellen.
Warum werden Container benötigt?
Da die digitale Transformation (Link zu /glossary/what-is-digital-transformation) die Welt immer stärker vernetzt hat, müssen Anwendungen häufig in vielen verschiedenen Umgebungen ausgeführt werden. In der Vergangenheit konnten viele Anwendungen nicht korrekt ausgeführt werden, wenn sie von einer Umgebung in eine andere verschoben wurden, ohne abgeändert zu werden. In der Regel beruht dies auf Konfigurationsunterschieden in der zugrunde liegenden Infrastruktur und den Abhängigkeiten.
Container lösen dieses Problem, indem sie Software in einer schlanken Infrastruktur verpacken, die alles enthält, was für die Ausführung einer Anwendung erforderlich ist. Auf diese Weise ermöglichen Container Entwicklern und IT-Teams die Bereitstellung von Software in verschiedensten Umgebungen, ohne dass Code geändert werden muss. So können sich IT-Teams auf ein konsistentes Verhalten auf verschiedenen Computern und Umgebungen verlassen. Entwickler können Änderungen am Code vornehmen und neue Abhängigkeiten zu Containern hinzufügen, ohne sich Gedanken darüber machen zu müssen, ob der überarbeitete Code mit anderen Umgebungen nicht kompatibel ist.
Was ist ein Container im Vergleich zu einer virtuellen Maschine (VM)?
Virtuelle Maschinen (VMs) sind ein weiteres virtualisiertes Computing-Modell. VMs verwenden einen Hypervisor, um die physische Hardware zu virtualisieren, die für die Ausführung eines Servers erforderlich ist. Jede VM enthält ein Gastbetriebssystem sowie Anwendungen, Bibliotheken und Abhängigkeiten. VMs können eine erhebliche Menge an Systemressourcen verbrauchen, insbesondere wenn mehrere VMs – jeweils mit eigenem Gast-Betriebssystem – auf demselben physischen Server ausgeführt werden.
Im Gegensatz dazu wird die Containertechnologie auf BS-Ebene und nicht auf Hardware-Ebene virtualisiert, und mehrere Container teilen sich dasselbe Host-Betriebssystem oder denselben System-Kernel. Infolgedessen nutzen Container einen kleinen Bruchteil des von VMs benötigten Speichers, da Container den BS-Kernel gemeinsam nutzen. Dadurch können Container auch innerhalb von Sekunden gestartet werden, während VMs mehrere Minuten in Anspruch nehmen können.
Wozu dient ein Container?
Container unterstützen mehrere Anwendungsfälle.
- DevOps. Container ermöglichen es Anwendungsteams, ein cloudnatives Entwicklungsmodell für DevOps, kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) und serverlose Frameworks einzuführen.
- Microservices. Die leichte Qualität von Containern macht sie ideal für Microservice-Architekturen, in denen Software aus mehreren, lose gekoppelten kleineren Services besteht.
- Cloud Computing. Da Container überall eine konsistente Performance bieten, eignen sie sich ideal für Multicloud- und Hybrid-Cloud- Bereitstellungen, bei denen Workloads zwischen Public-Cloud- und Private-Data-Center-Umgebungen verschoben werden können.
- Cloudmigration. Container werden häufig verwendet, um Anwendungen zu modernisieren, während IT-Teams sie auf die Cloudmigration vorbereiten. Container sind auch ein idealer Kandidat für Services, die während der Migration neu gestaltet werden.
Was sind die Vorteile von Containern?
Container bieten Unternehmen viele Vorteile, darunter:
- Höhere Effizienz. Da sie denselben Betriebssystem-Kernel wie der Host nutzen, sind Container effizienter als VMs.
- Vereinfachte Verwaltung. Container ermöglichen das schnelle Bereitstellen, Patchen und Skalieren von Anwendungen.
- Workload-Portabilität. Mit Containern können IT-Teams Workloads überall bereitstellen und ausführen – auf Linux-, Windows- oder Mac-Betriebssystemen, auf VMs oder physischen Servern sowie auf einzelnen Geräten, On-Premise-Rechenzentren und in der Cloud.
- Konsistente Performance. Container bieten zuverlässige Performance über mehrere Betriebssysteme und Plattformen hinweg.
- Geringerer Overhead. Im Vergleich zu herkömmlichen Computern und VMs haben Container deutlich weniger Systemressourcenanforderungen an Arbeitsspeicher, CPU und Speicher. Dadurch können viele weitere Container in derselben Infrastruktur unterstützt werden.
- Optimierte Nutzung. Durch die Aktivierung einer Microservices-Architektur erleichtern Container die detaillierte Bereitstellung und Skalierung von Anwendungskomponenten. So wird vermieden, dass eine ganze Anwendung skaliert werden muss, wenn eine einzelne Komponente einen Workload nicht verwalten kann.
Was ist Containerorchestrierung?
Containerorchestrierung ist die Aufgabe, mehrere Container-Bereitstellungen in einem Unternehmen zu verwalten. Ein Containerorchestrator ist eine Plattform, die den Lebenszyklus des Containermanagements automatisiert, einschließlich Aufgaben wie Bereitstellung und Implementierung, Ressourcenzuweisung, Aufrechterhaltung der Verfügbarkeit, Skalierung nach oben und unten, Service-Erkennung, Netzwerk, Speicher und Sicherheit.
Orchestrierung bietet Transparenz und Kontrolle darüber, wo Container bereitgestellt werden und wie Workloads auf mehrere Container verteilt werden. Orchestrierung vermeidet die manuelle Verwaltung von Containern und ermöglicht es IT-Teams, Richtlinien selektiv oder kollektiv auf eine Gruppe von Containern anzuwenden.
Kubernetes ist die bekannteste Containerorchestrierungsplattform und kann in jeder Infrastruktur bereitgestellt werden, einschließlich Public Clouds, vor Ort oder in Edge-Netzwerken. Red Hat® OpenShift® ist eine für Unternehmen geeignete Kubernetes-Plattform, die automatisierte Prozesse in jeder Infrastruktur sowie Self-Service-Umgebungen für die Erstellung von Containern bietet.
Was sind Sicherheitsbedrohungen für Container?
Container ermöglichen es IT-Teams zwar, Software überall bereitzustellen und Anwendungen schnell zu starten, schaffen aber auch einen weiteren Bereich, in dem Sicherheitsbedenken bestehen. Entwickler und IT-Teams können mehrere Schritte unternehmen, um zu verhindern, dass Container von Angreifern ausgenutzt werden, darunter:
- Best Practices für die Sicherheit anwenden und Validierungen auf Anwendungs-/Code-Ebene hinzufügen
- Container auf einem sicheren Service wie Kubernetes ausführen
- Netzwerkbeschränkungen auf Clusterebene hinzufügen, um nicht autorisierten Traffic herauszufiltern
- Eine sichere und zuverlässige Containerplattform auf Cloudebene auswählen
- Containerbilder auf Malware
- Strenge Kontrollen in Containerregistrierungen durchführen
- Sicherheitstools zur Behebung von Schwachstellen verwenden, die während der Containerlaufzeit aktiv werden können
FAQs
Container erschienen vor einigen Jahrzehnten, wurden aber 2013 von Docker wieder eingeführt, um die Anforderungen des modernen Computing-Zeitalters zu erfüllen.
Docker ist eine Open-Source-Plattform für die Erstellung, Bereitstellung und Verwaltung von Containern, die ein gemeinsames Betriebssystem nutzen. Die Docker-Plattform verpackt Container, stellt sie bereit und führt sie aus. Dabei nutzt sie die Ressourcenisolierung im BS-Kernel, um mehrere Container auf demselben Betriebssystem auszuführen.
Die Open Container Initiative (OCI) ist eine offene Governance-Struktur der Linux Foundation, die sich der Erstellung offener Branchenstandards für Containerformate und -laufzeiten widmet.
Warum entscheiden sich Kunden für Akamai?
Akamai ist das Unternehmen für Cybersicherheit und Cloud Computing, das das digitale Leben unterstützt und schützt. Unsere marktführenden Sicherheitslösungen, überlegene Threat Intelligence und unser globales Betriebsteam bieten ein gestaffeltes Sicherheitskonzept, um die Daten und Anwendungen von Unternehmen überall zu schützen. Die Cloud-Computing-Lösungen von Akamai bieten als Full-Stack-Gesamtpaket Performance und erschwingliche Preise auf der weltweit am stärksten verteilten Plattform. Globale Unternehmen vertrauen auf Akamai für die branchenführende Zuverlässigkeit, Skalierbarkeit und Expertise, die sie benötigen, um ihr Geschäft selbstbewusst auszubauen.