What is Kubernetes?

Kubernetes ist in Bezug auf Container zum Standard in Cloud-nativer Software geworden. Tatsächlich ergab die jüngste Umfrage der Cloud Native Computing Foundation (CNCF), dass die Kubernetes-Nutzung in der Produktion auf 78 % gestiegen ist. Doch wie bei jeder Technologie, die in kurzer Zeit immer beliebter wird, herrscht große Verwirrung darüber, was Kubernetes ist und welche Sicherheitsaspekte mit Kubernetes und der Containerisierung einhergehen. Ein typisches Beispiel: In der gleichen CNCF-Umfrage nannten 40 % der Befragten die Sicherheit als Herausforderung bei der Containernutzung/Bereitstellung und 38 % bezeichneten die Komplexität als Herausforderung.

Für Sicherheitsingenieure, die mit der Härtung der Containerbereitstellung beauftragt sind, gibt es definitiv eine Lernkurve zu überwinden. Um Ihnen den Einstieg zu erleichtern, werfen wir einen Blick darauf, was Kubernetes ist, wie es funktioniert, und erkunden einige grundlegende Kubernetes-Sicherheitskonzepte.

Kostenlose Testversion Kubernetes-Sicherheitshandbuch

What is Kubernetes?

Definition

Kubernetes ist eine Plattform zur Orchestrierung und Verwaltung von Container-Workloads (z. B Docker-Container). 

Seit seiner ersten Veröffentlichung im Jahr 2014 hat sich Kubernetes – ein Open-Source-CNCF-Abschlussprojekt, dessen Wurzeln auf das Entwicklungsteam von Google zurückgehen – zu einem der beliebtesten Tools in DevOps- und Cloud-Native-Kreisen entwickelt.

Eine Voraussetzung für das Verständnis von Kubernetes ist das Verständnis von Containern. Kurz gesagt handelt es sich bei Containern um leichte Softwarepakete, die alle Abhängigkeiten enthalten, die eine Anwendung zum Ausführen benötigt. Container lösen das Problem, Anwendungen in verschiedenen Umgebungen zuverlässig auszuführen. Da sie leicht und tragbar sind, erfreuen sich Container immer größerer Beliebtheit und sind für die Entwicklung moderner Mikroservices und Webanwendungen von entscheidender Bedeutung.

Während die Verwendung eines einzelnen Containers nicht viel Verwaltung und Orchestrierung erfordert, müssen große Anwendungen skalierbar sein. Moderne Entwicklungsteams müssen in der Lage sein, den Prozess der Containerbereitstellung zu automatisieren und zu skalieren. Hier kommen Container-Workload-Management-Tools wie Kubernetes ins Spiel. Kubernetes sorgt für die fehlende Verwaltung und Orchestrierung.

Der Begriff „Management und Orchestrierung“ wird häufig verwendet, wenn es um Kubernetes geht. Das sagt uns jedoch nicht viel über die Einzelheiten. Vereinfacht ausgedrückt bedeutet dies, dass Kubernetes Lastausgleich, Konfigurationsmanagement, Konfiguration von Speicherressourcen und automatische Ressourcenzuweisung (z. B CPU und RAM pro Container) und die Skalierung der Containerbereitstellung nach oben oder unten.

Kubernetes vs Docker

Beim Thema Docker vs. Kubernetes kann es zu großer Verwirrung kommen. Dabei ist es eigentlich ganz einfach:

  • Docker ist eine Plattform zum Erstellen und Ausführen von Containern. Es ist nicht die einzige Container-Plattform, aber sie ist die beliebteste.
  • Kubernetes ist ein Tool zur Verwaltung mehrerer Container, einschließlich Docker-Containern.
  • Docker bietet ein Tool namens Swarm mit einigen der gleichen Funktionen wie Kubernetes.

Dieser letzte Punkt ist es, der zu etwas Verwirrung führen kann. Docker bietet zufällig ein Tool – Swarm – an, das ähnliche Funktionen wie Kubernetes bietet. Allerdings ist Kubernetes das bei weitem beliebtere Verwaltungs- und Orchestrierungstool.

Wichtige Kubernetes-Konzepte und -Begriffe

Neben Containern gibt es noch weitere wichtige Konzepte, die es beim Einstieg in Kubernetes zu verstehen gilt. Werfen wir einen Blick auf einige Schlüsselbegriffe:

  • K8s. Dies ist ein Synonym für Kubernetes. Entwickler erstellen manchmal Abkürzungen für beliebte Begriffe, indem sie den ersten und letzten Buchstaben eines Wortes und die Anzahl der Buchstaben dazwischen nehmen und sie zu Abkürzungen für das Wort kombinieren. Interoperabilität wird zu „i14y“, Lokalisierung wird zu „l10n“ und Kubernetes wird zu „k8s“.
  • Schoten. Dies sind die kleinsten Einheiten, die in Kubernetes bereitgestellt werden können. Ein Pod besteht aus einem oder mehreren Containern, die Speicher- und Netzwerkressourcen gemeinsam nutzen, und einer Spezifikation für die Ausführung der Container.
  • Arbeitsauslastungen. Dies sind die Anwendungen (eigentlich Pod-Sätze), die Kubernetes ausführt. Kubernetes stellt Updates bereit und skaliert Pods basierend auf den Anforderungen der konfigurierten Arbeitslast.
  • Knoten. Die Rechen-„Hardware“ (denken Sie an RAM und CPU), auf der Workloads ausgeführt werden, wird als Knoten bezeichnet. Die „Hardware“ kann alles sein, von einem Raspberry Pi über eine virtuelle Maschine bis hin zu einem physischen Server. Der Schlüssel hier ist, dass die Rechenressourcen von den Knoten stammen. Es gibt zwei Haupttypen von Knoten: Worker-/Minion-Knoten, die die Workloads ausführen, und Master-Knoten, die eine Gruppe von Worker-/Minion-Knoten verwalten.
  • Cluster. Ein Kubernetes-Cluster ist eine Gruppe von Knoten. In einem Cluster führen Workerknoten die Workloads aus, und ein Masterknoten steuert, was die Workerknoten tun.

Wofür wird Kubernetes verwendet?

Kubernetes kann überall dort effektiv nützlich sein, wo ein Infrastructure-as-Code-Ansatz für die Containerbereitstellung nützlich sein kann. Das bedeutet, dass agile Entwicklungsteams und Teams mit Fokus auf DevOps-Praktiken häufig Kubernetes verwenden, um ihre CI/CD-Pipelines (Continuous Integration/Continuous Delivery) zu automatisieren. Darüber hinaus kann Kubernetes bei der automatischen Skalierung cloudnativer Anwendungen helfen, indem es den Zustand der Knoten und die Ressourcennutzung überwacht und je nach Bedarf hoch- oder herunterskaliert.

Wichtige Kubernetes-Sicherheitskonzepte

Natürlich bietet Kubernetes zwar einen Mehrwert aus Sicht der Automatisierung und Skalierbarkeit, bringt aber auch neue Herausforderungen für Sicherheitsteams mit sich. Wie können Sie sicherstellen, dass Ihre Anwendungen und Dienste sicher bereitgestellt werden? Wie immer beginnt dies mit dem Verständnis Ihres Bedrohungsmodells und Ihrer Risikobereitschaft, aber es gibt ein paar Grundlagen, die Ihnen den Einstieg erleichtern.

  • Die 4Cs der Cloud-nativen Sicherheit– Kubernetes bezeichnet einen vierstufigen Ansatz für Cloud-native-Sicherheit, der als 4Cs bekannt ist: Code , Container , Clusterund Cloud/Co-Standort/Unternehmensrechenzentrum . Auf jeder Ebene müssen Sie sicherstellen, dass Best Practices für die Sicherheit befolgt werden. Das bedeutet auf verschiedenen Ebenen unterschiedliche Dinge. Stellen Sie beispielsweise sicher, dass der Code die Verschlüsselung von Daten während der Übertragung erzwingt und den Zugriff nur auf wichtige Netzwerk-Ports beschränkt, privilegierte Benutzer in Containern verbietet, konfigurierbare Kubernetes-Clusterkomponenten härtet und die bewährten Sicherheitsmethoden Ihres Cloud-Dienstanbieters befolgt.
  • Pod-Sicherheitsrichtlinien. Bei Kubernetes-Pods gibt es drei grundlegende Sicherheitsrichtlinien. Um Ihre Umgebung ordnungsgemäß zu schützen, müssen Sie die Kompromisse zwischen Benutzerfreundlichkeit und Sicherheit verstehen und entsprechend handeln.
    • Privilegiert. Die breiteste Ebene von Berechtigungen. Bekannte Rechteausweitungen sind mit dieser Richtlinie möglich.
    • Baseline/Standard. Der Mittelweg zwischen privilegiert und eingeschränkt. Verhindert bekannte Rechteausweitungen.
    • Eingeschränkt. Basierend auf den Best Practices für die Kubernetes-Pod-Härtung ist dies die restriktivste der drei Basisrichtlinien.
  • Pod-Sicherheitskontexte. Der Sicherheitskontext eines Pods konfiguriert seine Sicherheitseinstellungen zur Laufzeit. Dies umfasst Aspekte wie Zugriffskontrolle, Ausführen als privilegiert oder nicht, Mounten von schreibgeschützten Dateisystemen usw. Sie denken vielleicht, dass dies sehr nach Pod-Sicherheitsrichtlinien klingt, und in der Tat sind sie verwandt. Sicherheitskontexte sind das, was zur Laufzeit geschieht, während Sicherheitsrichtlinien es Ihnen ermöglichen, Parameter dafür zu definieren, welche Kontexte innerhalb eines Clusters verwendet werden.
  • Geheimnisse. Das Infrastructure-as-Code-Tool ist großartig, aber Sie möchten wahrscheinlich nicht, dass sich OAuth-Token oder Kennwörter in einer YAML-Datei befinden. Geheimnisse sind die Kubernetes-Methode zum Speichern dieser Art vertraulicher Informationen.

Es ist außerdem wichtig, einen Plan für die Container-Sichtbarkeit und Schwachstelle-Scanning-to-Scanning zu haben, um sicherzustellen, dass die Problembehebung schnell erfolgt und Sie alle relevanten Standards einhalten. Um mit dem Scannen von Container-Schwachstellen und der Bewertung der Sicherheitslage zu beginnen, empfehlen wir die Lektüre von Continuous Container Visibility and Compliance (PDF).

Nächste Schritte mit Kubernetes

Nachdem Sie nun verstanden haben, wie Kubernetes auf hoher Ebene funktioniert – die Containerbereitstellung automatisch steuern und verwalten – können Sie die nächsten Schritte unternehmen, um k8s sicher bereitzustellen. Für einen tieferen Einblick in die Implementierung von Sicherheit mit Containern, Kubernetes und serverloser Infrastruktur melden Sie sich für das kostenlose Webinar „How to Layer Security into Modern Cloud Application“ an, das vom Cloud-Sicherheitsexperten Hillel Solow präsentiert wird.

×
  Feedback
Diese Website verwendet Cookies für ihre Funktionalität sowie für Analyse- und Marketingzwecke. Durch die weitere Nutzung dieser Website erklären Sie sich mit der Verwendung von Cookies einverstanden. Für weitere Informationen lesen Sie bitte unseren Hinweis zu Cookies.
OK