Redakteur – Dieser Beitrag ist Teil einer 10-teiligen Serie:
Sie können den kompletten Blogsatz auch als kostenloses E-Book herunterladen: Kubernetes vom Test zur Produktion bringen .
2020 war ein Jahr, das nur wenige von uns jemals vergessen werden. Durch die abrupte Schließung von Schulen, Unternehmen und öffentlichen Diensten waren wir plötzlich von unseren Gemeinden isoliert und in Ungewissheit über unsere Sicherheit und finanzielle Stabilität gestürzt. Stellen Sie sich nun für einen Moment vor, dies wäre im Jahr 2000 oder sogar 2010 passiert. Was wäre anders? Technologie . Ohne die hochwertigen digitalen Dienste, die für uns selbstverständlich sind – Gesundheitsversorgung, Video-Streaming, Tools für die Remote-Zusammenarbeit – wäre eine Pandemie eine ganz andere Erfahrung. Was unterscheidet die Technologie des Jahres 2020 von der der vergangenen Jahrzehnte? Container und Microservices .
Microservices- Architekturen – die im Allgemeinen Container und Kubernetes nutzen – fördern Geschäftswachstum und Innovation, indem sie die Markteinführungszeit für digitale Erlebnisse verkürzen. Ob neben herkömmlichen Architekturen oder als eigenständige Lösung – diese modernen App-Technologien ermöglichen überlegene Skalierbarkeit und Flexibilität, schnellere Bereitstellungen und sogar Kosteneinsparungen.
Wir stellten fest, dass die meisten unserer Kunden bereits vor 2020 damit begonnen hatten, Microservices als Teil ihrer Strategie zur digitalen Transformation einzuführen, aber die Pandemie hat die App-Modernisierung wirklich beschleunigt. Unsere Umfrage unter NGINX-Benutzern im Jahr 2020 ergab, dass 60 % der Befragten Microservices in der Produktion verwenden (gegenüber 40 % im Jahr 2019) und dass Container mehr als doppelt so beliebt sind wie andere moderne App-Technologien.
Kubernetes ist der De-facto-Standard für die Verwaltung containerisierter Apps, wie die Umfrage der Cloud Native Computing Foundation (CNCF) aus dem Jahr 2020 zeigt. Diese ergab, dass 91 % der Befragten Kubernetes verwenden – 83 % davon in der Produktion. Bei der Einführung von Kubernetes bereiten sich viele Unternehmen auf umfangreiche Änderungen in der Architektur vor, sind dann aber überrascht, welche organisatorischen Auswirkungen der Einsatz moderner App-Technologien im großen Maßstab für sie hat. Wenn Sie Kubernetes einsetzen, sind Sie wahrscheinlich schon auf alle drei dieser geschäftskritischen Hindernisse gestoßen:
Die CNCF Cloud Native Interactive Landscape ist ein gutes Beispiel für die Komplexität der Infrastruktur, die zur Unterstützung von auf Microservices basierenden Anwendungen erforderlich ist. Unternehmen müssen sich mit einer großen Bandbreite unterschiedlicher Technologien vertraut machen. Dies kann zu Infrastrukturabhängigkeit, Schatten-IT, Tool-Wildwuchs und einem steilen Lernprozess für die mit der Wartung der Infrastruktur beauftragten Personen führen.
Wie bei den meisten organisatorischen Problemen liegt die Antwort zur Bewältigung der Herausforderungen von Kubernetes in einer Kombination aus Technologie und Prozessen. Im weiteren Verlauf dieses Beitrags konzentrieren wir uns auf die Technologiekomponente. Halten Sie aber Ausschau nach zukünftigen Blogs zu Prozessen und anderen Themen.
Da Kubernetes eine Open-Source-Technologie ist, gibt es zahlreiche Möglichkeiten, sie zu implementieren. Während einige Organisationen es vorziehen, ihr eigenes Vanilla-Kubernetes zu entwickeln, schätzen viele die Kombination aus Flexibilität, Vorgabemäßigkeit und Support, die von Diensten wie Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE), Microsoft Azure Kubernetes Service (AKS), Red Hat OpenShift Container Platform und Rancher bereitgestellt wird.
Kubernetes-Plattformen können die Inbetriebnahme erleichtern, ihr Schwerpunkt liegt jedoch eher auf der Breite der Dienste als auf der Tiefe. Sie erhalten zwar möglicherweise alle benötigten Dienste an einem Ort, diese bieten jedoch wahrscheinlich nicht den Funktionsumfang, den Sie für eine echte Produktionsbereitschaft im großen Maßstab brauchen. Ihr Schwerpunkt liegt nämlich nicht auf erweiterten Netzwerkfunktionen und Sicherheit. Und genau in diesem Punkt enttäuscht Kubernetes viele Kunden.
Um Kubernetes produktionsreif zu machen, müssen Sie drei weitere Komponenten in dieser Reihenfolge hinzufügen:
Eine skalierbare Ingress-Egress-Ebene, um den Datenverkehr in den Cluster und aus ihm heraus zu leiten
Dies wird mit einem Ingress-Controller erreicht, einem speziellen Lastenausgleich, der die Komplexität der Kubernetes-Netzwerke abstrahiert und eine Brücke zwischen Diensten innerhalb und außerhalb eines Kubernetes-Clusters schlägt. Diese Komponente erreicht Produktionsqualität, wenn sie Funktionen enthält, die die Ausfallsicherheit erhöhen (z. B. erweiterte Integritätsprüfungen und Prometheus-Metriken), eine schnelle Skalierbarkeit ermöglichen (dynamische Neukonfiguration) und Self-Service unterstützen (rollenbasierte Zugriffskontrolle [RBAC]).
Integrierte Sicherheit zum Schutz vor Bedrohungen im gesamten Cluster
Während außerhalb des Clusters eine „grobkörnige“ Sicherheit ausreichen könnte, ist innerhalb des Clusters eine „feinkörnige“ Sicherheit erforderlich. Abhängig von der Komplexität Ihres Clusters gibt es drei Stellen, an denen Sie möglicherweise eine flexible Web Application Firewall (WAF) bereitstellen müssen: auf dem Ingress-Controller, als Proxy pro Dienst und als Proxy pro Pod. Dank dieser Flexibilität können Sie bei sensiblen Apps – wie etwa bei der Abrechnung – strengere Kontrollen anwenden und bei Apps mit geringerem Risiko lockerere Kontrollen.
Eine skalierbare Ost-West-Verkehrsebene zur Optimierung des Verkehrs innerhalb des Clusters
Diese dritte Komponente wird benötigt, sobald Ihre Kubernetes-Anwendungen eine Komplexität und Skalierung erreicht haben, die mit einfachen Tools nicht mehr zu bewältigen ist. In dieser Phase benötigen Sie ein Service Mesh , ein Orchestrierungstool, das den Anwendungsdiensten innerhalb des Clusters ein noch feineres Verkehrsmanagement und mehr Sicherheit bietet. Ein Service Mesh ist typischerweise dafür verantwortlich, das Anwendungsrouting zwischen Containeranwendungen zu verwalten, autonome mTLS -Richtlinien (Mutual TLS) zwischen Diensten bereitzustellen und durchzusetzen und Einblick in die Anwendungsverfügbarkeit und -sicherheit zu geben.
Achten Sie bei der Auswahl dieser Komponenten auf Portabilität und Sichtbarkeit. Plattformunabhängige Komponenten verringern die Komplexität und verbessern die Sicherheit. Ihre Teams müssen weniger Tools erlernen und sichern und die Arbeitslasten lassen sich basierend auf Ihren Geschäftsanforderungen einfacher verlagern. Die Bedeutung von Sichtbarkeit und Überwachung kann kaum hoch genug eingeschätzt werden. Durch die Integration mit gängigen Tools wie Grafana und Prometheus wird eine einheitliche „Single Pane of Glass“-Ansicht Ihrer Infrastruktur erstellt, die sicherstellt, dass Ihr Team Probleme erkennt, bevor sie von Ihren Kunden entdeckt werden. Darüber hinaus gibt es weitere ergänzende Technologien, die für produktionsreifes Kubernetes nicht unbedingt erforderlich sind, jedoch integraler Bestandteil der modernen App-Entwicklung sind. Wenn Unternehmen beispielsweise bereit sind, herkömmliche Apps zu modernisieren, besteht einer der ersten Schritte darin, Microservices mit einem API-Gateway zu erstellen .
Unsere Kubernetes-Lösungen sind plattformunabhängig und umfassen die drei Komponenten, die Sie zur Aktivierung von Kubernetes in Produktionsqualität benötigen: NGINX Ingress Controller als Ingress-Egress-Ebene, NGINX App Protect als WAF und NGINX Service Mesh als Ost-West-Ebene.
Diese Lösungen können Kubernetes zu Ihrem besten Freund machen, indem sie Sie in vier Schlüsselbereichen unterstützen:
NGINX Ingress Controller ist als kostenlose 30-Tage-Testversion verfügbar und enthält NGINX App Protect zum Schutz Ihrer Container-Apps. Wir empfehlen, das stets kostenlose NGINX Service Mesh (zum Download unter f5.com verfügbar) hinzuzufügen, um Ihre Testversion optimal zu nutzen. Heute können Sie Ihre eigene Lizenz (BYOL) in die Cloud Ihrer Wahl mitbringen.
„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."