Best Practices und Richtlinien zum Starten von Containern und Kubernetes in Produktionsumgebungen


Das Ökosystem der Containerisierungstechnologien entwickelt sich rasch und verändert sich. Daher fehlen in diesem Bereich gute Arbeitspraktiken. Dennoch werden Kubernetes und Container immer häufiger verwendet - sowohl zum Upgrade alter Anwendungen als auch zur Entwicklung moderner Cloud-Anwendungen. 

Das aa.- Team von Mail.ru Kubernetes hat Prognosen, Tipps und Best Practices für Marktführer von Gartner, 451 Research, StacxRox und anderen zusammengestellt. Sie ermöglichen und beschleunigen die Bereitstellung von Containern in Produktionsumgebungen.

Wie Sie verstehen, ob Ihr Unternehmen bereit ist, Container in einer Produktionsumgebung bereitzustellen


Laut Gartner werden im Jahr 2022 mehr als 75% der Unternehmen containerisierte Anwendungen in der Produktion einsetzen. Dies ist deutlich mehr als derzeit, wenn weniger als 30% der Unternehmen solche Anwendungen verwenden. 

Laut 451 Research wird der prognostizierte Markt für den Einsatz von Containertechnologien im Jahr 2022 4,3 Milliarden US-Dollar betragen. Dies ist mehr als das Doppelte des für 2019 prognostizierten Betrags mit einer Marktwachstumsrate von 30%.

In einer Umfrage von Portworx und Aqua Security gaben 87% der Befragten an, derzeit Containertechnologie zu verwenden. Zum Vergleich: Im Jahr 2017 gab es 55% dieser Befragten. 

Trotz des wachsenden Interesses und des wachsenden Wachstums an der Einführung von Containern erfordert deren Markteinführung aufgrund technologischer Unreife und mangelnden Know-hows Schulungen. Unternehmen müssen Geschäftsprozesse, die eine Containerisierung von Anwendungen erfordern, realistisch betrachten. IT-Verantwortliche sollten bewerten, ob sie über eine Reihe von Fähigkeiten verfügen, um die Notwendigkeit einer schnellen Schulung voranzutreiben. 

Gartner-Experten glauben, dass die Fragen in der folgenden Abbildung Ihnen helfen werden zu verstehen, ob Sie bereit sind, Container in der Produktion einzusetzen:


Die häufigsten Fehler bei der Verwendung von Containern in der Produktion


Unternehmen unterschätzen häufig den Aufwand für den Betrieb von Containern in der Produktion. Gartner entdeckte mehrere häufige Fehler in Kundenskripten bei der Verwendung von Containern in Produktionsumgebungen:


So gewährleisten Sie die Sicherheit von Containern


Sicherheit kann nicht "später" behandelt werden. Es muss in den DevOps-Prozess integriert werden, sodass sogar ein spezieller Begriff aufgetaucht ist - DevSecOps. Unternehmen müssen den Schutz der Containerumgebung während des gesamten Entwicklungslebenszyklus planen , einschließlich des Montage- und Entwicklungsprozesses, der Bereitstellung und des Starts der Anwendung.

Empfehlungen von Gartner

  1. / (CI/CD). . , . — .
  2. Center for Internet Security (CIS), Docker, Kubernetes.
  3. Stellen Sie sicher, dass Sie die Zugriffskontrolle anwenden, die Aufgaben aufteilen und eine Sicherheitsverwaltungsrichtlinie implementieren. Vertrauliche Informationen wie SSL-Schlüssel (Secure Sockets Layer) oder Datenbankanmeldeinformationen werden vom Orchester oder von Verwaltungsdiensten von Drittanbietern verschlüsselt und zur Laufzeit bereitgestellt
  4. Vermeiden Sie Container mit erhöhten Berechtigungen, indem Sie Sicherheitsrichtlinien verwalten. Dadurch wird das potenzielle Risiko von Hacking verringert.
  5. Verwenden Sie Sicherheitstools, die Whitelisting, Verhaltensüberwachung und Erkennung von Anomalien ermöglichen, um böswillige Aktivitäten zu verhindern.

Empfehlungen von StacxRox :

  1. Kubernetes. , . , , . , . . 
  2. . , , , « » . , .
  3. Festlegen von Netzwerkrichtlinien: Isolieren Sie Module, um den Zugriff darauf zu beschränken. Erlauben Sie explizit den Internetzugang für diejenigen Module, die ihn benötigen, indem Sie Etiketten verwenden. Ermöglichen Sie explizit die Kommunikation zwischen den Modulen, die miteinander kommunizieren müssen. 

So organisieren Sie die Überwachung von Containern und Diensten in diesen


Sicherheit und Überwachung sind die Hauptanliegen von Unternehmen bei der Bereitstellung von Kubernetes-Clustern. Entwickler konzentrieren sich immer mehr auf die Funktionen der Anwendungen, die sie entwickeln, als auf die Überwachungsaspekte dieser Anwendungen

Empfehlungen von Gartner :

  1. Versuchen Sie, den Status der darin enthaltenen Container oder Dienste zusammen mit der Überwachung der Hostsysteme zu überwachen.
  2. Bevorzugen Sie Hersteller und Instrumente mit tiefer Integration in die Container-Orchestrierung, insbesondere Kubernetes.
  3. Wählen Sie Tools aus, die eine detaillierte Protokollierung, automatische Erkennung von Diensten und Empfehlungen in Echtzeit mithilfe von Analysen und / oder maschinellem Lernen ermöglichen.

Der SolarWinds-Blog empfiehlt :

  1. Verwenden Sie Tools, um Containermetriken automatisch zu erkennen und zu verfolgen sowie Leistungsmetriken wie Prozessor, Speicher und Betriebszeit zu korrelieren.
  2. Stellen Sie eine optimale Kapazitätsplanung sicher, indem Sie den Zeitpunkt der Kapazitätserschöpfung anhand von Containerüberwachungsindikatoren vorhersagen.
  3. , , , , .
  4. , .
  5. , , , .
  6. , (, ) , , .


Mit der Zunahme der Anzahl von Arbeitscontainern mit Statuserhaltung müssen Clients den Speicherort von Daten außerhalb des Hosts sowie die Notwendigkeit berücksichtigen, diese Daten zu schützen. 

Laut einer Umfrage von Portworx und Aqua Security steht die Datensicherheit an erster Stelle in der Liste der Sicherheitsprobleme, die von der Mehrheit der Befragten (61%) festgestellt wurden. 

Datenverschlüsselung ist die wichtigste Sicherheitsstrategie (64%). Die Befragten verwenden jedoch auch die Laufzeitüberwachung (49%), das Scannen von Registrierungsschwachstellen (49%), das Scannen von Schwachstellen in CI / CD-Pipelines (49%) und das Blockieren von Anomalien durch Laufzeitschutz (48%).

Empfehlungen von Gartner :

  1. , . , , , API, ,  .
  2. . , Kubernetes , CSI (Container Storage Interfaces).


Das traditionelle Unternehmensnetzwerkmodell, bei dem IT-Spezialisten für jedes Projekt Netzwerkumgebungen für Entwicklung, Test, Qualitätssicherung und Produktion erstellen, stimmt nicht immer gut mit dem kontinuierlichen Entwicklungsworkflow überein. Darüber hinaus erstrecken sich Containernetzwerke über mehrere Ebenen.

Der Magalix-Blog hat allgemeine Regeln zusammengestellt, denen die Implementierung einer Cluster-Netzwerklösung entsprechen muss:

  1. Pods, die auf demselben Knoten geplant sind, müssen ohne Verwendung von NAT (Network Address Translation) mit anderen Modulen kommunizieren können.
  2. Alle Systemdämonen (Hintergrundprozesse, z. B. Kubelet), die auf einem bestimmten Knoten ausgeführt werden, können mit Pods interagieren, die auf demselben Knoten ausgeführt werden.
  3. Pods, die das Host-Netzwerk verwenden, sollten in der Lage sein, mit allen anderen Pods auf allen anderen Knoten ohne Verwendung von NAT zu kommunizieren. Beachten Sie, dass das Host-Netzwerk nur auf Linux-Hosts unterstützt wird.

Netzwerklösungen müssen eng in die Grundelemente und Richtlinien von Kubernetes integriert sein. IT-Manager sollten einen hohen Grad an Netzwerkautomatisierung anstreben, Entwicklern die richtigen Tools und ausreichende Flexibilität bieten.

Empfehlungen von Gartner :

  1. Finden Sie heraus, ob Ihre CaaS- (Container as a Service) oder SDN-Netzwerke (Software Defined Network) von Kubernetes unterstützt werden. Wenn dies nicht der Fall ist oder die Unterstützung nicht ausreicht, verwenden Sie das Container Network Interface (CNI) für Ihre Container, das die erforderlichen Funktionen und Richtlinien unterstützt.
  2. , CaaS PaaS ( ) / , . , service mesh.
  3. Linux , .


Für eine automatisierte und unterbrechungsfreie Anwendungsbereitstellung müssen Sie die Container-Orchestrierung durch andere Automatisierungstools ergänzen, z. B. Infrastrukturprodukte wie Code (IaC). Dazu gehören Chef, Puppet, Ansible und Terraform. 

Außerdem sind Automatisierungstools zum Zusammenstellen und Ausrollen von Anwendungen erforderlich (siehe „Der magische Quadrant zum Orchestrieren der Anwendungsfreigabe “). Container bieten auch Erweiterungsfunktionen, die denen ähneln, die beim Bereitstellen von virtuellen Maschinen (VMs) vorhanden waren. Daher müssen IT-Manager über Tools zur Verwaltung des Containerlebenszyklus verfügen .

Empfehlungen von Gartner :

  1. , .
  2. , , .
  3. CaaS , .


Die wichtigsten Funktionen zum Bereitstellen von Containern werden auf Orchestrierungs- und Planungsebene bereitgestellt. Bei der Planung werden Container auf den optimalsten Hosts im Cluster platziert, wie dies durch die Anforderungen der Orchestrierungsstufe vorgeschrieben ist. 

Kubernetes ist zum De-facto-Standard für die Container-Orchestrierung mit einer aktiven Community geworden, die von den meisten führenden kommerziellen Anbietern unterstützt wird. 

Empfehlungen von Gartner :

  1. Definieren Sie die grundlegenden Anforderungen für Sicherheitskontrollen, Überwachung, Richtlinienverwaltung, Datenspeicherung, Netzwerkverwaltung und Containerlebenszyklus.
  2. Wählen Sie basierend auf diesen Anforderungen das Tool aus, das Ihren Anforderungen und Verwendungsszenarien am besten entspricht.
  3. Gartner (. « Kubernetes»), Kubernetes .
  4. , , .


Gartner ist der Ansicht, dass das Interesse an der Bereitstellung von Containern in der öffentlichen IaaS-Cloud aufgrund der Verfügbarkeit vorgefertigter CaaS-Angebote sowie der engen Integration dieser Angebote mit anderen von Cloud-Anbietern angebotenen Produkten wächst.

IaaS-Clouds bieten On-Demand-Ressourcenverbrauch, schnelle Skalierbarkeit und Service-Management , um die Notwendigkeit einer gründlichen Kenntnis der Infrastruktur und ihrer Wartung zu vermeiden. Die meisten Cloud-Anbieter bieten Container-Management-Services an, und einige bieten verschiedene Orchestrierungsoptionen an. 

Die wichtigsten Cloud-Anbieter von Managed Services sind in der folgenden Tabelle aufgeführt: 

Cloud-AnbieterArt der LeistungProdukt / Dienstleistung
AlibabaNative Cloud-ServiceAlibaba Cloud Container Service, Alibaba Cloud Container Service for Kubernetes
Amazon Web Services (AWS)Native Cloud ServiceAmazon Elastic Container Services (ECS), Amazon ECS for Kubernetes (EKS), AWS Fargate
Giant SwarmMSPGiant Swarm Managed Kubernetes Infrastructure
GoogleNative Cloud ServiceGoogle Container Engine (GKE)
IBMNative Cloud ServiceIBM Cloud Kubernetes Service
MicrosoftNative Cloud ServiceAzure Kubernetes Service, Azure Service Fabric
OracleNative Cloud ServiceOCI Container Engine for Kubernetes
Platform9MSPManaged Kubernetes
Red HatHosted ServiceOpenShift Dedicated & Online
VMwareHosted ServiceCloud PKS (Beta)
Mail.ru Cloud Solutions*Native Cloud ServiceMail.ru Cloud Containers

* Lassen Sie es uns nicht verbergen, wir haben uns hier während der Übersetzung hinzugefügt :)

Anbieter von öffentlichen Clouds fügen auch neue Funktionen hinzu und veröffentlichen lokale Produkte. In naher Zukunft werden Cloud-Anbieter Unterstützung für Hybrid-Clouds und Multi-Cloud-Umgebungen entwickeln. 

Empfehlungen von Gartner :

  1. Bewerten Sie objektiv die Fähigkeit Ihres Unternehmens, die entsprechenden Tools bereitzustellen und zu verwalten, und ziehen Sie alternative Cloud-Container-Verwaltungsdienste in Betracht.
  2. Wählen Sie Ihre Software sorgfältig aus und verwenden Sie nach Möglichkeit Open Source.
  3. Wählen Sie Anbieter mit einzelnen Betriebsmodellen in Hybridumgebungen, die eine integrierte Clusterverwaltung über ein einziges Dashboard bieten, sowie Anbieter, die die unabhängige Verwendung von IaaS vereinfachen.

Einige Tipps zur Auswahl eines Kubernetes aaS-Anbieters aus dem Replex-Blog :

  1. Es lohnt sich, nach Distributionen zu suchen, die eine sofortige Hochverfügbarkeit unterstützen. Dies umfasst die Unterstützung mehrerer Kernarchitekturen, Hochverfügbarkeits-etcd-Komponenten sowie das Sichern und Wiederherstellen.
  2. Für die Mobilität in Kubernetes-Umgebungen ist es am besten, Cloud-Anbieter zu wählen, die eine Vielzahl von Bereitstellungsmodellen unterstützen: von lokal über Hybrid bis hin zu Multi-Cloud. 
  3. Anbieterangebote sollten ebenfalls evaluiert werden, um die einfache Einrichtung, Installation und Clustererstellung sowie Aktualisierungen, Überwachung und Fehlerbehebung zu berücksichtigen. Grundvoraussetzung ist die Unterstützung vollautomatischer Cluster-Updates ohne Ausfallzeiten. Die von Ihnen gewählte Lösung sollte es Ihnen auch ermöglichen, Updates manuell auszuführen. 
  4. , . , Kubernetes , . RBAC .
  5. , , , CNI, Flannel, Calico, kube-router OVN.

Die Einführung von Containern in die Produktion wird zum Schwerpunkt, wie die Ergebnisse einer Umfrage belegen, die auf der Gartner-Sitzung zu Infrastruktur, Betrieb und Cloud-Strategien (IOCS) im Dezember 2018 durchgeführt wurde:


Wie Sie sehen, verwenden 27% der Befragten bereits Container in ihrer Arbeit, und 63% werden dies tun.

In einer Umfrage von Portworx und Aqua Security gaben 24% der Befragten an, mehr als eine halbe Million Dollar pro Jahr in Containertechnologie zu investieren, und 17% der Befragten geben mehr als eine Million Dollar pro Jahr dafür aus. 

Dieser Artikel wurde vom Mail.ru Cloud Solutions- Team der Cloud-Plattform erstellt .

Was gibt es sonst noch zu diesem Thema zu lesen :

  1. Best Practices für DevOps: DORA-Bericht .
  2. Kubernetes .
  3. - Kubernetes.


All Articles