In diesem Blog werden wir folgende Themen behandeln:
Containerisierung
What is a Behälter?
- A Container is a basic software unit that packages up code and all its dependencies so an application can run smoothly in any environment. Each container is made up of a hardware, an operating system, a container engine, libraries, and dependency’s and finally the application. Everything the application needs to run is inside the container which means it can be created and deleted quickly using automation.
- Bis 2025 werden 85 % der Unternehmen weltweit containerisierte Anwendungen im Produktivbetrieb einsetzen1
Container-Orchestrierung
- Container-Orchestrierung bezeichnet die Automatisierung containerisierter Workloads. Sie spielt bei der Arbeit mit Containern eine zentrale Rolle, da sie es ermöglicht, dieselbe Anwendung in verschiedenen Umgebungen bereitzustellen, ohne dass eine Neugestaltung erforderlich ist.
Kubernetes
Was ist Kubernetes (auch bekannt als K8s)?
- Kubernetes is an open-source container orchestration software designed for deploying, managing, and scaling containers. So, what does that mean? Essentially it eliminates much of the manual processes that needs to be done during deploying and scaling containerized workloads, even across various types of physical, virtual, and cloud environments.
- Laut einer aktuellen Umfrage der Cloud Native Computing Foundation nutzen oder prüfen 96 % der 3.800 befragten Unternehmen Kubernetes2
Wusstest du schon?
- The name Kubernetes comes Greek word κυβερνήτης (kubernḗtēs) which means pilot or helmsman therefore the Kubernetes logo is a ship’s steering wheel. Kubernetes is often abbreviated as K8s because there are 8 letters in between ‘K’ and ‘S’
- Kubernetes wurde ursprünglich von Google-Ingenieuren entwickelt und konzipiert und später, im Jahr 2015, an die CNCF übergeben.
Wie funktioniert das?
- Kubernetes is a concept made up of several different components, and, while there are several elements and use-cases in the implementation of Kubernetes, the main concepts to understand are: the Control Plane, Pods, and Nodes.
- The Control Plane consists of elements and API processes which coordinate workloads and communications, allowing for the smooth flow of information and resource allocation across the environment.
- Pods are the base element in Kubernetes. A Pod consists of one or more containers and are co-located on the same node.
- A Node (also known as a minion, or worker)is a machine on which containers are deployed. Each node must run a container runtime such as Docker, CoreOS rkt, Containerd, etc. Multiple Nodes can be grouped into Clusters.
Ihre IT-Umgebung und Kubernetes
- Aufgrund der Veränderungen in der modernen IT-Praxis erwarten Nutzer, dass Anwendungen rund um die Uhr verfügbar sind, und von Entwicklern wird mitunter erwartet, dass sie mehrmals täglich neue Versionen der Anwendungen bereitstellen können. Zudem werden IT-Umgebungen zunehmend hybrider und basieren auf Multi-Cloud-Ansätzen, bei denen lokale Ressourcen mit öffentlichen oder privaten Clouds verschiedener Anbieter integriert werden. Zwar ermöglichten Containersysteme den Entwicklern, Software portabler zu gestalten und alle für den Betrieb eines Dienstes erforderlichen Pakete zu bündeln, doch waren sie nach wie vor durch den manuellen Aufwand eingeschränkt, der für die Bereitstellung und Änderung jedes einzelnen Containers in einer Umgebung erforderlich war.
- Kubernetes kann Unternehmen dabei helfen, ihre Workloads besser zu verwalten und Risiken zu reduzieren. Kubernetes ist in der Lage, Vorgänge im Container-Management zu automatisieren und die Nutzung von IT-Ressourcen zu optimieren. Es kann sogar verwaistete Container neu starten, nicht genutzte Container herunterfahren und sie neu erstellen. Kubernetes automatisiert die Bereitstellung von Containern, ohne dass das DevOps-Team alle Schritte manuell selbst durchführen muss. Dadurch können Entwickler neue Versionen bestimmter Anwendungen häufiger bereitstellen und diese ohne Ausfallzeiten veröffentlichen und aktualisieren – sogar über mehrere Umgebungen hinweg (z. B. Dev, Test, Prod).
Vorteile von Kubernetes
- Die wichtigsten Vorteile von Kubernetes lassen sich wie folgt zusammenfassen: verkürzte Entwicklungs- und Release-Zeiten für Anwendungen, Optimierung der IT-Kosten, erhöhte Skalierbarkeit und Verfügbarkeit der Software, Flexibilität in Multi-Cloud-Umgebungen sowie Cloud-Portabilität.
- Portable Workloads
- Because Kubernetes is an open source your workloads become portable take advantage of on-prem, hybrid, and multiple cloud environment— all while maintaining consistency across each environment.
- Flexibilität
- Unabhängig davon, wo Sie Kubernetes einsetzen, bietet es Flexibilität in Hybrid- und Multi-Cloud-Umgebungen und ermöglicht so den reibungslosen Betrieb all unserer Anwendungen in jeder öffentlichen oder privaten Umgebung.
- Echte
- Kubernetes kann containerisierte Umgebungen automatisieren, indem es als deren Betriebssystem fungiert. Dies geschieht durch die Echte der Betriebsanforderungen containerisierter Workloads.
- Skalierbarkeit und Verfügbarkeit
- Mit Kubernetes lassen sich komplexe containerisierte Anwendungen definieren und über Servercluster hinweg bereitstellen. Während Kubernetes Anwendungen entsprechend dem von Ihnen gewünschten Zustand skaliert, überwacht und gewährleistet es automatisch den ordnungsgemäßen Betrieb der Container.
Kubernetes Architecture
- Kubernetes-Control-Plane: Auch als „Master-Rechner“ bezeichnet, ist dies die Container-Orchestrierungsschicht, die die API und Schnittstellen bereitstellt, um den Lebenszyklus von Containern sowie der Knoten, auf denen die containerisierten Anwendungen laufen, zu definieren, bereitzustellen und zu verwalten. Sie stellt sicher, dass jeder Cluster im gewünschten Zustand gehalten wird.
Die Komponenten der Steuerungsebene
- API-Server: Die Anwendungsprogrammierschnittstelle (Application Programming Interface), auch als API bekannt, ist das Frontend von Kubernetes. Hier stellen Clients eine erste Anfrage nach einem Objekt oder einer Sammlung, und der API-Server prüft, ob die Anfrage gültig ist, und verarbeitet sie anschließend. Der API-Server dient außerdem dazu, Daten innerhalb von K8-Clustern zu übertragen, zu erstellen und zu konfigurieren.
- K8s-Scheduler: Der Scheduler überwacht und verwaltet neu erstellte Pods und weist sie einem Knoten zu, damit sie dort reibungslos ausgeführt werden können.
- Controller-Manager: Innerhalb der Control Plane gibt es mehrere Controller. Dabei handelt es sich um Regelkreise, die den Zustand Ihres Clusters überwachen und bei Bedarf Änderungen vornehmen oder anfordern.
- Etcd: Ist eine Datenbank, in der Ihr gesamter Container-Speicher abgelegt ist. Es handelt sich um einen stark konsistenten, verteilten Schlüssel-Wert-Speicher, der die für den Betrieb der Systeme erforderlichen kritischen Informationen enthält und verwaltet.
- Cluster
- KNOTEN: (auch als „Minion“ oder „Worker“ bezeichnet) ist ein Rechner, auf dem Container bereitgestellt werden. Auf jedem Knoten muss eine Container-Laufzeitumgebung wie Docker, CoreOS rkt, Containerd usw. ausgeführt werden. Mehrere Knoten können zu Clustern zusammengefasst werden.
- Pod: are the base element in Kubernetes. A Pod consists of one or more containers and are co-located on nodes.
- Hier werden alle Ihre wichtigen Informationen gespeichert
Modernisierung mit Kubernetes
- Kubernetes ermöglicht es, die Migration von Anwendungen aus einer lokalen Umgebung in öffentliche oder private Clouds beliebiger Anbieter zu vereinfachen und zu beschleunigen. Die Migration von Anwendungen in die Cloud kann mithilfe verschiedener Methoden erfolgen:
- die einfache Portierung der Anwendung ohne jegliche Änderungen am Code (Lift & Shift);
- die minimalen Änderungen, die erforderlich sind, damit die Anwendung in neuen Umgebungen funktioniert (Replatforming);
- die umfassende Überarbeitung der Struktur und Funktionalität der Anwendung (Refactoring).
- Modernisieren Sie Ihre Umgebung mit der Einführung von Kubernetes reibungsloser als je zuvor. Sie müssen sich nicht mehr fragen, wo sich Ihre Daten befinden – alle Ihre Daten werden an einem Ort gespeichert. Der Speicher bei Kubernetes basiert auf Volumes. Die Volumes können entweder persistent oder nicht-persistent sein. Innerhalb der Pods fordern Container zusätzlichen Speicherplatz an.
- Kubernetes can be built once and then is able to be deployed anywhere. This means no matter where you build your cluster whether it is on prem or in the cloud you don’t need to rebuild the solution you just have to deploy a different cluster.
Herausforderung
- Kubernetes clusters can be prone to ransomware attacks, like any other workload. In some cases, a hacker can gain access to what is inside of your pod – potentially receiving critical information about your organization. Therefore, backing up and having data protection for your clusters is vital when it comes to moving your workloads around.
Kubernetes-Sicherung
- Hierbei handelt es sich um den Prozess der Sicherung aller Komponenten, die auf einer Kubernetes-Orchestrierungsplattform ausgeführt werden, darunter alle containerisierten Anwendungen des Unternehmens. Da ein Kubernetes-Cluster aus so vielen Komponenten besteht – Pods, Knoten, Control Plane und Volumes –, benötigt jede einzelne davon ein gewisses Maß an Schutz. Der Schutz ist für einen Cluster von entscheidender Bedeutung, insbesondere da Unternehmen zunehmend auf Kubernetes setzen. Die Sicherung eines Kubernetes-Clusters stellt sicher, dass die Daten, Konfigurationen und Dateien vor Angriffen geschützt sind. Aus diesem Grund benötigen Sie eine Lösung, die in der Lage ist, Ihren gesamten Cluster zu sichern.
- Zu den wichtigsten Phasen der Kubernetes-Sicherung gehören:
- Die Erfassung
- Discovery.
- Identifizierung von Ressourcen
- Laut dem „State of Kubernetes Security Report 2022“ von Red Hat hatten 93 % der Befragten in den letzten 12 Monaten mindestens einen Sicherheitsvorfall in ihren Kubernetes-Umgebungen zu verzeichnen, was in einigen Fällen zu Umsatz- oder Kundenverlusten führte.³
Commvault and Metallic’s Kubernetes Backup
Commvault und Kubernetes-Datensicherung
- Commvault has the ability to back up your entire cluster unlike most solutions that can only back up your containers. Commvault provides data protection for persistent storage in your stateful applications. Commvault’s solution automates back up of this data all from a single platform that increases the visibility and management capabilities of your entire environment. Our solution gives you the flexibility to migrate and deploy containers from on-prem to cloud, cloud to cloud and even back on- prem seamlessly with ease. It also offers broad support for VMs, data services and cloud services in a single platform. It is also compatible with all CNCF- certified distributions and integrated with CSI for snapshot-based backups.
- Commvault has been recognized by the 2022 GigaOm report as a “leader and outperformer” in Kubernetes data protection for our flexible deployment architecture and single interface across multiple deployments. The report also states that our security and ransomware controls are extensive which makes it suitable for larger enterprises.
So macht es Commvault
- Commvault plant einen Pod mit temporären Mitarbeitern ein, um die Datenübertragung durchzuführen. In den Einstellungen wird eine private Container-Registry angegeben, in der Sie ein Image speichern, das Commvault herunterladen kann. Auf diese Weise können Sie Cluster konsolidieren, die clusterübergreifende Migration vereinfachen und das Lebenszyklusmanagement von Clustern optimieren.
Herausforderungen für Commvault
- Vor der Einführung von Commvault mussten Unternehmen sich mit einer zunehmenden Anzahl von Clustern auseinandersetzen, deren Lebenszyklen verwalten und Cluster konsolidieren. Commvault hilft bei der Bewältigung dieser Herausforderungen, indem es Ihnen ermöglicht, Ihre Kubernetes-Anwendungen mühelos in jede beliebige Cloud zu migrieren.
Metallic- und Kubernetes Backup
- Metallic bietet VM & Kubernetes Backup an. Dies ist der einzige SaaS-Datensicherungsdienst, der eine umfassende Abdeckung hybrider Workloads bietet und so gewährleistet, dass Ihre Container stets geschützt sind.
- „VM & Kubernetes Backup by Metallic“ ist eine Lösung, mit der Sie Ihre Infrastruktur ganz einfach auf Container ausweiten können, um Anwendungen sicher zu modernisieren und gleichzeitig herkömmliche Anwendungen zu schützen. Ganz gleich, ob Sie on-premise oder in der Cloud arbeiten – Metallic unterstützt alle von der Cloud Native Computing Foundation zertifizierten Kubernetes-Distributionen wie Azure Kubernetes Service (AKS), Amazon EKS, VMware, Rancher und viele weitere.
- Metallic kann Cloud- oder lokale Datenbanken, Quellcode-Verwaltungssysteme, Image-Registerstellen und cloud-native Objektspeicher schützen.
- Dank der unübertroffenen Flexibilität, der ultimativen Sicherheit und der unkomplizierten Verwaltung dieser Lösung sind alle Ihre Workloads bestens abgedeckt.
Schlussfolgerung
Kubernetes ist die Zukunft – jetzt ist es an der Zeit, sicherzustellen, dass alle Ihre Workloads geschützt sind und sicher in die Cloud migriert werden können. Commvault ist die naheliegende Wahl. Im GigaOm-Bericht 2022 zum Thema Kubernetes-Datensicherheit wurden wir aufgrund unserer umfassenden Workload-Unterstützung, der Kompatibilität mit CNCF-zertifizierten Distributionen und unserer umfangreichen Ransomware-Schutzmaßnahmen als „Leader“ und „Outperformer“ ausgezeichnet. Also packen Sie Ihre Koffer – das Schiff sticht noch heute in See, Richtung Cloud.
Referenzen
1. Best Practices for Running Containers and Kubernetes in Production – 4 Aug 2020 – Gartner ID G00730344 – 2. CNCF 2021, Annual Survey – 3. Red Hat 2022, State of Kubernetes Security Report