Türchen #20: Container Best Practices


Kubernetes, erst seit 2014 verfügbar, hat in den letzten Jahren eine sagenhafte Verbreitung erlangt. Man könnte auch von einem Hype sprechen.

Die Plattform für Container-Orchestrierungs wird von AWS als Service mit dem Namen EKS angeboten. Im Rahmen von EKS managed AWS die Controlplane für Kunden, die dann nur noch die sogenannten Worker-Nodes administrieren müssen. Mit Fargate für EKS wird nun EKS serverless und perspektivisch wird eine weitere Fokussierung in Richtung Container erfolgen. Hinsichtlich Container folgen nun einige Best Practices, die sich etabliert haben.

Baut kleine Images

Kleine Images haben eine ganze Reihe von Vorteilen:

  • Image pulls in Production benötigen weniger Zeit
  • weniger Angriffsfläche
  • weniger Speicherplatznutzung

Im Beitrag Docker Multistage Builds hat Michael bereits wertvolle Tipps gegeben, wie Container-Images möglichst schlank ausfallen.


Isolation: 1 Container = 1 Prozess

Früher… Früher war Hardware teuer. Früher hatten wir immer mehrere Applikationen auf einem Server und jeder, der früher Server administriert hat, kennt die unschönen Seiteneffekte.

Mit virtuellen Maschinen und mit Containern gibt es großartige Technologien um Applikationen zu isolieren und Seiteneffekte zu minimieren. Unser Tipp: Ein Container beinhaltet einen Prozess. Das macht dann auch die Healthchecks einfacher.


Kein Latest-Tag

Nutzt kein Latest-Tag, sondern ein Versions-Tag. Das Versions-Tag dient der eindeutigen Identifizierung von Images. Ansonsten riskiert ihr, dass ohne Versionsangabe immer die letzte (latest) Version gepullt wird.

Hilfreich ist meist auch, wenn in der Produktionsumgebung die Version einen eindeutigen Rückschluss auf die Version im GIT gibt.


Container-Scanning

Auch in Containern kann sich Schadecode verstecken. Um das Risiko zu minimieren und Container auf Schadcode zu kontrollieren, gibt es bereits seit geraumer Zeit clair. Eleganter ist es jedoch die Container mit AWS Bordmitteln umzusetzen: Container Scanning mit ECR


Keine Credentials in Containern

Nutzt keine Credentials in Containern. Es gibt beispielsweise die Möglichkeit, über den AWS Secrets Manager Passwörter während der Laufzeit zu erhalten.


Weiterführende Informationen

Zurück zu den Blogbeiträgen

Trainings und Workshops

Vom Kurs für Einsteiger bis hin zu Experten-Workshops mit Tiefgang können wir Euch mit technischen Trainings unterstützen. Darüber hinaus bieten wir auch Workshops mit Fokus auf Cloud-Strategie oder für die Vertriebsmannschaft an.

Mehr...