Best Practices zum Container-Management

München, Starnberg, 03. Febr. 2023 - Container-Orchestrierung bringt richtig eingesetzt, für den Betrieb eine Reihe von Vorteilen; mehr dazu auch im Kommentar von Consol...

Zum Hintergrund: Cloud-native Architekturen ermöglichen es, skalierbare Anwendungen zu dynamischen Umgebungen für öffentlichen, privaten und-/oder hybriden Clouds zu erstellen und auszuführen. So entstehen lose gekoppelte Systeme, die sowohl robust als auch zentral verwaltbar sind. In Kombination mit einer robusten Automatisierung lassen sich mit minimalem Aufwand im laufenden Betrieb Änderungen vorzunehmen. Darüber hinaus hat der Betrieb von Kubernetes in Cloud-Umgebungen auch positive Auswirkungen auf die Serverauslastung und die CO2-Emissionsintensität.

Kein Wunder also, dass Container-Technologien und somit auch die Container-Orchestrierung weiter an Bedeutung gewinnt. Kein Softwareprojekt gleicht aber dem anderen und das gilt selbstverständlich auch im Zeitalter von Cloud- und Container-Technologie. Eine Standardformel für das Container-Management gibt es daher nicht. Dennoch gibt es Best Practices, an die sich Entwickler und Administratoren halten sollten. Als Docker im März 2013 veröffentlicht wurde, waren Container in der Linux-Community schon mehr als zehn Jahre im Einsatz. Dennoch hat die Nutzerfreundlichkeit und Funktionsvielfalt von Docker Container erst in den Mainstream gebracht. Eine Erfolgsgeschichte, die über die Zeit so einige „Learnings" und Best Practices hervorgebracht hat. IT-Dienstleister Consol stellt für uns die aus seiner Sicht fünf wichtigsten Vorgehensweisen vor (1):

1. Mandanten- und Verantwortungsmodell sorgfältig planen

Die Frage nach der Menge der eingesetzten logischen Cluster wird bei der Container-Orchestrierung oft zur Gretchenfrage: Während manche Administratoren meinen, ein großer Cluster für alle Projekte reiche aus, sind andere der Auffassung, dass pro Projekt ein Cluster genüge. Eine einheitliche Antwort auf die Frage gibt es nicht, da die Lösung von individuellen Bedürfnissen oder Vorlieben abhängig ist – und von den eingesetzten Tools und deren Eigenschaften. Wichtig ist eine frühzeitige und sorgfältige Planung des Verantwortungsmodells. IT-Abteilungen müssen festlegen, für welchen Bestandteil der Infrastruktur und welche Aufgaben die jeweiligen Projektteams zuständig sind und ob diese Domäne sich überhaupt eindeutig isolieren lässt. Falls sich Zuständigkeiten überschneiden, müssen die Verantwortlichen sie zu Projektbeginn klar an alle möglichen Stakeholder kommunizieren, um Missverständnissen vorzubeugen.

2. Ressourcen-Verwaltung forcieren

Container-Orchestrierungstools wie Kubernetes trennen streng zwischen der zu betreibenden Software und der Hardware, auf der sie läuft. Sie nehmen Instruktionen zum Scheduling von Workloads daher erst einmal pauschal an – egal ob die notwendigen Hardwareressourcen für die Prozesse zur Verfügung stehen. Das erschwert die Kapazitätsplanung seitens der Administratoren. Es ist daher unbedingt notwendig, dass die jeweiligen Workloads die für sie benötigten Ressourcen explizit deklarieren. Nur auf diese Weise können Orchestrierungstools die Ressourcen optimal verteilen. Das ist vor allem für den Schutz regulär laufender Container wichtig: Container ohne deklarierten Ressourcenbedarf sind potenziell gefährlich für alle anderen Workloads, die auf derselben Hardware laufen.

3. Automatisierung nutzen

Container-Orchestrierung hat viele Vorteile, zum Beispiel einen sehr flexiblen und zuverlässigen Betrieb. Ein wichtiger Aspekt ist allerdings auch, dass die Entwickler von Kubernetes und anderen Tools besonders die Automatisierung im Blick hatten. Daher sind heute unter anderem die Infrastrukturverwaltung über Infrastructure as Code, containerisierte Continuous-Integration-Pipelines sowie Deployments über GitOps möglich. Die verschiedenen Automatisierungsmöglichkeiten reduzieren nicht nur den manuellen Aufwand, sondern verbessern auch die Zuverlässigkeit – auf lange Sicht sogar die Nachvollziehbarkeit von Konfigurationen und deren Änderungen im Betrieb. Daher ist die klare Empfehlung, soviel zu automatisieren, wie sinnvoll möglich ist.

4. Die Sicherheit im Auge behalten

Container Images enthalten nicht nur die auszuführende Software, sondern auch diverse Komponenten für deren Funktionalität wie beispielsweise Bibliotheken. Das ist ein großer Vorteil und erleichtert vieles, allerdings geht damit auch eine Verantwortung einher: Administratoren müssen diese Komponenten, wie die Software selbst, auf dem aktuellen Stand halten – nicht nur in deren Basis- oder Muster-Images, sondern auch in den aktiven Images, die sich gerade in Produktion befinden. Nur so können sie möglicherweise existierende Sicherheitslücken schließen und Bugs ausmerzen. Es ist daher unabdingbar, dass IT-Teams Prozesse definieren, die sie über notwendige Updates informieren, und festlegen, wie der Rollout von Updates vonstatten geht.

5. Öffentliche Image-Registries mit Vorsicht genießen

Registries wie der Docker Hub sind beliebte Quellen für alle möglichen Container-Images – dort wurden und werden viele bahnbrechende Ideen getestet und entwickelt. Allerdings sollten gerade Unternehmen diese öffentlich zugänglichen Sammlungen mit Open-Source-Software mit Vorsicht verwenden, denn das Qualitätsspektrum ist breit. Neben hochprofessionellen Images von Softwareherstellern gibt es auch fragwürdige Pakete, die besser unbeachtet bleiben. Eine private Image-Registry, die Mitarbeiter mit Expertenwissen auf dem Gebiet kuratieren, ist eine bessere Alternative zur Verwendung von Images aus öffentlichen Quellen.

 

Container-Management stellt Administratoren oft vor neue Herausforderungen. Beim Aufbau von Container-Plattformen und ihrer Verwaltung sollten Unternehmen sich daher an etablierten Best Practices orientieren. (Quelle: iStock)

„Das Container-Management stellt Administratoren oft vor neue Herausforderungen“, so Oliver Weise, Principal Software Engineer bei Consol. „Sie ergeben sich überwiegend aus den speziellen Eigenarten des Container-Betriebs. Beim Aufbau von Container-Plattformen und ihrer Verwaltung sollten Unternehmen sich daher an etablierten Best Practices orientieren: So können sie von den Praxiserfahrungen anderer Plattform-Teams profitieren.“

(1) Quelle und weitere Informationen unter: https://www.consol.de/software-engineering/ci-cd

 

Querverweis:

Unser Blogpost > Einsatzkriterien für Persistenten Speicher unter Kubernetes & Co.

Unser Beitrag > Mit Software und Containern zu mehr Energieeffizienz im Rechenzentrum