Zum Inhalt springen Weiter zur Suche
Testversion
Blog

Die 7 wichtigsten Anforderungen für einen optimierten Verkehrsfluss und Sicherheit in Kubernetes

Laut einer Umfrage von Portworx aus dem Jahr 2018 setzen vier von fünf Unternehmen mittlerweile Container ein, und 83 Prozent davon in der Produktion. In Anbetracht der Tatsache, dass dies 2017 nur 67 Prozent taten, ist es klar, dass Container mehr als eine Modeerscheinung sind.

Angesichts der neuen Popularität von Containern haben einige Unternehmen jedoch Schwierigkeiten, einen effizienten Datenverkehr einzurichten und Sicherheitsrichtlinien in Kubernetes, einer der beliebtesten Plattformen für die Container-Orchestrierung, effektiv umzusetzen.

Als Container-Orchestrator und Cluster-Manager konzentriert sich Kubernetes auf die Bereitstellung einer fantastischen Infrastruktur und wurde daher von zahlreichen Unternehmen übernommen. Kubernetes feierte gerade sein fünfjähriges Bestehen, und ein kürzlich erschienener Forbes-Artikel nannte Kubernetes "das beliebteste Open-Source-Projekt unserer Zeit" und enthüllte, dass Kubernetes von Unternehmen wie Capital One, ING Group, Philips, VMware und Huawei verwendet wird.

Unternehmen, die eine Microservices-Architektur (MSA) für die Entwicklung von Anwendungen verwenden, finden in der Regel heraus, dass Kubernetes eine Reihe von Vorteilen bietet, wenn es um die Bereitstellung dieser Anwendungen geht.

Aus all diesen Gründen ist es wichtig, dass Unternehmen den einzigartigen Datenverkehr und die Sicherheitsanforderungen verstehen, die Kubernetes mit sich bringt. Hier erklären wir es:

  • Was Kubernetes ist.
  • Herausforderungen in der Kubernetes-Umgebung.
  • Die sieben wichtigsten Verkehrsfluss- und Sicherheitsanforderungen in Kubernetes.
  • Zusätzliche Überlegungen zur Einfachheit von Entwicklung und Betrieb.

Fangen wir an.

Was ist Kubernetes?

Kubernetes ist ein Open-Source-Container-Orchestrierungssystem. Laut eigener Definition ist Kubernetes ein portables und erweiterbares Programm zur Verwaltung von containerisierten Arbeitslasten und Diensten und bietet eine containerzentrierte Verwaltungsumgebung.

Schauen wir uns ein Diagramm an, um die grundlegende Funktionsweise von Kubernetes zu verstehen. Hier sehen Sie einen Master-Knoten und zwei Worker-Knoten. Der Master-Knoten teilt den Worker-Knoten mit, was zu tun ist, und die Worker-Knoten führen die ihnen erteilten Anweisungen aus. Zusätzliche Kubernetes-Arbeitsknoten können hinzugefügt werden, um die Infrastruktur zu erweitern.

Zusätzliche Kubernetes-Worker-Nodes können zur Skalierung der Infrastruktur hinzugefügt werden

Wenn Sie genau hinsehen, werden Sie feststellen, dass das Wort "Docker" in jedem Abschnitt vorkommt. Docker ist eine Container-Plattform, die ideal für die Ausführung von Containern auf einer einzigen Hardware oder virtuellen Maschine (VM) ist.

Wenn Sie jedoch mit Hunderten von Containern für verschiedene Anwendungen arbeiten, werden Sie sie nicht alle auf einem Rechner unterbringen wollen. Dies ist eine der Herausforderungen, die Kubernetes hervorgebracht hat.

Mit dem Overlay-Netzwerk, das im obigen Diagramm als roter Balken dargestellt ist, muss ein Container im Master-Knoten nicht wissen, dass der Container, mit dem er sprechen muss, im Worker-2-Knoten steht. Stattdessen kann er einfach mit ihm reden.

Eine weitere Hauptfunktion von Kubernetes ist die Bündelung von Informationen in so genannten "Pods", von denen mehrere auf demselben Knoten ausgeführt werden können. Wenn eine Anwendung aus mehreren Containern besteht, können diese Container auf diese Weise in einem Pod zusammengefasst werden, der als ein einziger startet und stoppt.

Herausforderungen in der Kubernetes-Umgebung

Wie alle anderen Container-Orchestrierungssysteme weist auch Kubernetes eine Reihe von Hindernissen auf.

Dazu gehören:

  • Interne und externe Netze sind isoliert.
  • IP-Adressen von Pods und Containern können sich ändern.
  • Keine Zugriffskontrolle zwischen Microservices.
  • Keine Sichtbarkeit der Anwendungsschicht.

Lassen Sie uns ein wenig tiefer in diese Herausforderungen eintauchen. Die Vernetzung von Kubernetes ist insofern unkonventionell, als trotz der Verwendung eines Overlay-Netzwerks die internen und externen Netzwerke voneinander getrennt sind.

Außerdem isoliert Kubernetes absichtlich fehlerhaft arbeitende oder ausfallende Knoten oder Pods, um zu verhindern, dass sie die gesamte Anwendung zum Absturz bringen. Dies kann zu häufig wechselnden IP-Adressen zwischen den Knoten führen. Dienste, die darauf angewiesen sind, die IP-Adresse eines Pods oder Containers zu kennen, müssen dann herausfinden, wie die neuen IP-Adressen lauten.

Wenn es um die Zugriffskontrolle zwischen Microservices geht, ist es für Unternehmen wichtig zu wissen, dass der Datenverkehr zwischen Kubernetes-Knoten auch zu einer externen physischen Box oder VM fließen kann. Dies kann sowohl Ressourcen verschlingen als auch die Sicherheit schwächen.

Und schließlich ist die Unfähigkeit, Informationen auf der Anwendungsebene zu untersuchen, ein großes Problem. Ohne diese Transparenz können Unternehmen wichtige Gelegenheiten zum Sammeln detaillierter Analysen und umsetzbarer Erkenntnisse verpassen.

Kubernetes und Cloud-Sicherheitsanforderungen

Bislang haben wir die grundlegenden Funktionen von Kubernetes sowie die damit verbundenen Herausforderungen erörtert. Jetzt gehen wir zu den Anforderungen von Kubernetes und der Cloud-Sicherheit über, basierend auf der 15-jährigen Erfahrung von A10 Networks.

Wir werden über sieben Anforderungen sprechen:

  1. Erweiterter Application Delivery Controller (ADC)
  2. Synchronisierung der Load Balancer (LB)-Konfiguration mit der Infrastruktur
  3. Sicherheit für den Nord-Süd-Verkehr
  4. Zentraler Controller für Großeinsätze
  5. Zugriffskontrolle zwischen Microservices
  6. Verschlüsselung für Ost-West-Verkehr
  7. Analyse des Anwendungsverkehrs

Gehen wir näher auf die einzelnen Punkte ein.

1. Erweiterter Application Delivery Controller

Implementierung von Vorab-Verkehrseingängen, die den Ökosystem-Anbietern überlassen werden

Auch wenn Unternehmen bereits einen fortschrittlichen Application Delivery Controller für andere Bereiche ihrer Infrastruktur verwenden, ist es notwendig, einen solchen auch für Kubernetes einzusetzen. Dadurch können Administratoren einen fortschrittlicheren Lastausgleich durchführen, als er bei Kubernetes standardmäßig verfügbar ist.

Kubernetes ist bereits mit einem Netzwerk-Proxy namens kube-proxy ausgestattet. Er ist für eine einfache Nutzung konzipiert und funktioniert durch die Anpassung von iptables-Regeln in Schicht drei. Er ist jedoch sehr einfach und unterscheidet sich von dem, was die meisten Unternehmen gewohnt sind.

Viele Leute platzieren einen ADC oder Load Balancer über ihrer Cloud. Dies bietet die Möglichkeit, eine virtuelle IP zu erstellen, die statisch und für jeden verfügbar ist, und alles dynamisch zu konfigurieren.

Beim Start von Pods und Containern können die ADCs dynamisch konfiguriert werden, um den Zugriff auf die neue Anwendung zu ermöglichen, während gleichzeitig Netzwerksicherheitsrichtlinien implementiert und in einigen Fällen Geschäftsdatenregeln durchgesetzt werden. Dies wird in der Regel durch den Einsatz eines "Ingress-Controllers" erreicht, der die neuen Pods und Container beim Start sieht und entweder einen ADC konfiguriert, um den Zugriff auf die neue Anwendung zu ermöglichen, oder einen anderen "Kubernetes-Controller"-Knoten über die Änderung informiert.

2. Synchronisierung der Load Balancer-Konfiguration mit der Infrastruktur

Load Balancer-Konfiguration im Einklang mit der Infrastruktur

Da sich innerhalb der Kubernetes-Wolke alles ständig ändern kann, gibt es für die darüber liegende Box einfach keine praktische Möglichkeit, alles im Blick zu behalten. Es sei denn, Sie haben so etwas wie die oben abgebildete lila Box.

Dieser lila Kasten wird im Allgemeinen als Ingress-Controller bezeichnet. Wenn ein Container startet oder stoppt, wird ein Ereignis in Kubernetes erzeugt. Dann identifiziert der Ingress-Controller dieses Ereignis und reagiert entsprechend darauf.

In dem oben dargestellten Beispiel erkennt der Ingress-Controller, dass ein Container gestartet wurde und daher zum Lastausgleichspool gehen muss. Auf diese Weise wird der Anwendungscontroller, egal ob er sich oberhalb oder innerhalb der Cloud befindet, auf dem neuesten Stand gehalten.

Dies entlastet die Administratoren erheblich und ist wesentlich effizienter als eine manuelle Verwaltung.

3. Sicherheit für den Nord-Süd-Verkehr

Sicherheit für den Nord-Süd-Verkehr

Nord-Süd und Ost-West sind beides allgemeine Begriffe, die die Richtung des Datenverkehrsflusses beschreiben. Im Fall von Nord-Süd-Verkehr fließt der Verkehr in die und aus der Kubernetes-Cloud.

Wie bereits erwähnt, benötigen Unternehmen etwas, das über der Kubernetes-Cloud platziert ist, um den Datenverkehr zu überwachen. Zum Beispiel eine Firewall, ein DDoS-Abwehrsystem oder etwas anderes, das bösartigen Datenverkehr abfangen kann.

Diese Dinge sind auch im Hinblick auf das Verkehrsmanagement nützlich. Wenn es also Verkehr gibt, der an bestimmte Orte geleitet werden muss, ist dies der ideale Ort, um dies zu tun. Der Ingress Controller ist auch in diesem Bereich hilfreich.

Wenn Unternehmen diese Art von Funktionalität mit einer vereinheitlichten Lösung automatisieren können, können sie dies erreichen:

  • Vereinfachte Abläufe
  • Bessere Anwendungsleistung
  • Point-of-Control, der Back-End-Änderungen ohne Unterbrechung des Front-Ends ermöglicht
  • Automatisierte Sicherheitsrichtlinien

4. Zentraler Controller für große Einsätze

Zentraler Controller für große Einsätze

Die Skalierung ist ein weiterer Aspekt, den Unternehmen berücksichtigen müssen, insbesondere im Hinblick auf die Sicherheit.

Wie im obigen Diagramm zu sehen ist, ist der Ingress-Controller (dargestellt durch das lila Kästchen) immer noch da, aber dieses Mal verwaltet er mehrere Kubernetes-Knoten und beobachtet den gesamten Kubernetes-Cluster.

Oberhalb des Ingress-Controllers befindet sich der blaue Kreis, der in diesem Fall die A10 Networks Harmony Controller. Ein solcher Controller ermöglicht eine effiziente Lastverteilung und kann Informationen schnell an die richtige Stelle weiterleiten.

Bei einem zentralen Controller wie diesem ist es zwingend erforderlich, einen zu wählen, der die Skalierung nach innen und außen mit wenig oder gar keiner zusätzlichen Konfiguration bei bestehenden Lösungen bewältigen kann.

5. Zugriffskontrolle zwischen Microservices

Zugriffskontrolle zwischen Microservices

Im Gegensatz zum Nord-Süd-Verkehr, der in die und aus der Kubernetes-Cloud fließt, fließt der Ost-West-Verkehr zwischen den Kubernetes-Knoten. Im obigen Diagramm können Sie sehen, wie der Ost-West-Verkehr in vielen Organisationen funktioniert.

Wenn Verkehr zwischen Kubernetes-Knoten fließt, kann dieser Verkehr über physische Netzwerke, virtuelle oder Overlay-Netzwerke oder beides gesendet werden. Die Überwachung des Verkehrsflusses von einem Pod oder Container zu einem anderen kann ohne eine Möglichkeit zur Überwachung dieser Ost-West-Verkehrsflüsse recht komplex werden.

Außerdem kann sie ein ernsthaftes Sicherheitsrisiko darstellen: Angreifer, die sich Zugang zu einem Container verschaffen, können sich Zugriff auf das gesamte interne Netz verschaffen.

Glücklicherweise können Unternehmen ein sogenanntes "Service Mesh" wie das A10 Secure Service Mesh implementieren. Dieses kann den Ost-West-Verkehr sichern, indem es als Proxy zwischen Containern fungiert, um Sicherheitsregeln zu implementieren, und ist außerdem in der Lage, bei der Skalierung, dem Lastausgleich, der Dienstüberwachung und mehr zu helfen.

Außerdem kann ein Service-Mesh innerhalb der Kubernetes-Cloud funktionieren, ohne dass Datenverkehr an eine physische Box oder VM gesendet wird. Hier sehen Sie, wie der Ost-West-Verkehr mit einem effizienten Service-Mesh aussehen kann:

Ost-West-Verkehr mit effizientem Servicenetz

Mit dieser Art von Lösung können Unternehmen wie Finanzinstitute Informationen problemlos dort aufbewahren, wo sie sein sollten, ohne die Sicherheit zu gefährden.

6. Verschlüsselung für Ost-West-Verkehr

Verschlüsselung für Ost-West-Verkehr

Ohne angemessene Verschlüsselung können unverschlüsselte Informationen von einem physischen Kubernetes-Knoten zu einem anderen fließen. Dies stellt ein ernstes Problem dar, insbesondere für Finanzinstitute und andere Unternehmen, die mit besonders sensiblen Daten umgehen.

Aus diesem Grund ist es für Unternehmen wichtig, bei der Evaluierung eines Cloud-Sicherheitsprodukts ein Produkt zu wählen, das den Datenverkehr verschlüsselt, wenn er einen Knoten verlässt, und ihn entschlüsselt, wenn er ihn betritt.

Es gibt zwei Möglichkeiten, wie Anbieter diese Art von Schutz bieten:

Einsatz von Seitenwagen- oder Nabenspeichen-Proxys

Die erste Option, der Einsatz von Sidecar-Proxys, ist wohl die beliebteste.

Mit einem solchen Deployment können Administratoren Kubernetes mitteilen, dass beim Starten eines bestimmten Pods auch ein oder mehrere andere Container in diesem Pod gestartet werden sollen.

In der Regel handelt es sich bei dem anderen Container um eine Art Proxy, der den aus dem Pod fließenden Datenverkehr verwalten kann.

Der Nachteil des Sidecar-Proxy-Einsatzes besteht darin, dass er, wie Sie im obigen Diagramm sehen können, mehrere Instanzen oder Sidecars erfordert und daher eine gewisse Menge an Ressourcen beansprucht.

Auf der anderen Seite können sich Unternehmen für die Hub-Spoke-Proxy-Bereitstellung entscheiden. Bei dieser Art der Bereitstellung wickelt ein Proxy den Verkehr ab, der von jedem Kubernetes-Knoten ausgeht. Infolgedessen sind weniger Ressourcen erforderlich.

7. Analyse des Anwendungsverkehrs

Analyse des Anwendungsverkehrs

Nicht zuletzt ist es von entscheidender Bedeutung, dass Unternehmen die Details des Datenverkehrs auf der Anwendungsebene verstehen.

Mit den Fluglotsen, die sowohl den Nord-Süd- als auch den Ost-West-Verkehr überwachen, gibt es bereits zwei ideale Punkte, um Verkehrsinformationen zu sammeln.

Dies kann sowohl zur Optimierung der Anwendung als auch zur Sicherheit beitragen und ermöglicht mehrere verschiedene Funktionen. Von den einfachsten bis zu den fortgeschrittensten können diese Funktionen Folgendes ermöglichen:

  • Leistungsüberwachung durch deskriptive Analysen. Die meisten Anbieter bieten dies an.
  • Schnellere Fehlerbehebung durch diagnostische Analysen. Eine kleinere Anzahl von Anbietern bietet dies an.
  • Einblicke durch prädiktive Analysen, die von maschinellen Lernsystemen generiert werden. Noch weniger Anbieter bieten dies an.
  • Adaptive Kontrollen durch präskriptive Analysen, die durch wirklich intuitive KI generiert werden. Das bieten nur die besten und fortschrittlichsten Anbieter.

Wenn Unternehmen also mit Anbietern sprechen, müssen sie unbedingt feststellen, welche dieser Vorteile ihre Produkte bieten können.

Mit Produkten wie unseren von A10 Networks ist es möglich, sowohl die Gesamtanalyse als auch die einzelnen Pakete, Protokolleinträge oder Transaktionen zu sehen, um die es geht. Produkte mit dieser Art von Granularität sind diejenigen, nach denen Unternehmen suchen sollten.

Zusätzliche Überlegungen zur Vereinfachung von Entwicklung und Ops

Lassen Sie uns abschließend einen Blick auf die Dinge werfen, auf die Unternehmen in Bezug auf den Verkehrsfluss und die Sicherheit in Kubernetes achten sollten. All diese Überlegungen haben auch den Vorteil, dass sie die Arbeit von Entwicklungs- und Betriebsteams drastisch vereinfachen:

  • Eine einfache Architektur mit einer einheitlichen Lösung.
  • Zentrale Verwaltung und Kontrolle für einfache Analysen und Fehlerbehebung.
  • Gängige Konfigurationsformate wie YAML und JSON, die auch von Kubernetes verwendet werden.
  • Keine Änderung des Anwendungscodes oder der Konfiguration, um Sicherheit zu implementieren und analytische Informationen zu sammeln.
  • Automatisierte Anwendung von Sicherheitsrichtlinien.

Wenn Unternehmen diesen Punkten Priorität einräumen, können sie von einem optimierten, automatisierten und sicheren Datenfluss innerhalb von Kubernetes profitieren. Das ist etwas, das Ihre Hardware, Ihr Endergebnis und Ihre Betriebsteams zu schätzen wissen werden.

In einem kürzlich abgehaltenen Webinar von A10 Networksging John Allen, Senior Systems Engineer, auf dieses Thema näher ein. Klicken Sie hier, um das vollständige Webinar anzusehen.

Kategorien:


Almas Raza
|
August 13, 2019

Almas Raza, Senior Technical Marketing Engineer bei A10, verfügt über 17 Jahre Erfahrung in den Bereichen Unternehmenssicherheit und Netzwerke. Bevor er zu A10 kam, arbeitete Almas Raza für mehrere Sicherheitsunternehmen... Lesen Sie mehr