In diesem Dokument werden die Vorteile und Einschränkungen der Knotenisolierung in einem Kubernetes-Cluster mit Air Gap in Google Distributed Cloud (GDC) erläutert. Die Knotenisolierung mit dedizierten Knotenpools verbessert die Clustersicherheit, da Sie genau steuern können, wo bestimmte Pods im Cluster ausgeführt werden.
Die Arbeitslastisolation bietet einige Vorteile, z. B.:
- Geringeres Risiko von Angriffen auf die Rechteausweitung in Ihrem Kubernetes-Cluster.
- Mehr Kontrolle über Pods, die zusätzliche Ressourcen benötigen
In diesen Fällen sollten Sie Ihre Containerarbeitslasten in dedizierten Knotenpools isolieren, um mehr Kontrolle und Optimierung zu ermöglichen. Berücksichtigen Sie auch die Einschränkungen, damit Sie eine fundierte Entscheidung über die zusätzlichen Wartungskosten treffen können, die durch die Knotenisolierung entstehen.
Dieses Dokument richtet sich an Zielgruppen wie IT-Administratoren in der Gruppe der Plattformadministratoren, die für die Verwaltung der Knotenpools eines Kubernetes-Clusters verantwortlich sind, und Anwendungsentwickler in der Gruppe der Anwendungsoperatoren, die für die Verwaltung von Containerarbeitslasten verantwortlich sind. Weitere Informationen finden Sie in der Dokumentation zu Zielgruppen für GDC-Air-Gap-Umgebungen.
Warum sollte ich meine Arbeitslasten isolieren?
Es ist zwar nicht zwingend erforderlich, Knotenpools bestimmten Containerarbeitslasten zuzuweisen, aber dadurch können potenzielle Probleme vermieden werden. Dieser Ansatz erfordert jedoch mehr Verwaltungsaufwand und ist oft nicht erforderlich.
Kubernetes-Cluster verwenden privilegierte GDC-verwaltete Arbeitslasten, um bestimmte Clusterfunktionen und -features wie das Erfassen von Messwerten zu aktivieren. Diese Arbeitslasten haben spezielle Berechtigungen, damit sie ordnungsgemäß im Cluster ausgeführt werden können.
Arbeitslasten, die Sie auf Ihren Knoten bereitstellen, können möglicherweise von einer bösartigen Entität kompromittiert werden. Die Ausführung dieser Arbeitslasten neben privilegierten, von GDC verwalteten Arbeitslasten bedeutet, dass ein Angreifer, der aus einem kompromittierten Container ausbricht, die Anmeldedaten der privilegierten Arbeitslast auf dem Knoten verwenden kann, um die Berechtigungen in Ihrem Cluster zu erweitern.
Dedizierte Knotenpools sind auch nützlich, wenn Sie Pods planen müssen, die mehr Ressourcen benötigen als andere, z. B. mehr Arbeitsspeicher oder mehr lokalen Speicherplatz.
Mit den folgenden Methoden können Sie Ihre Arbeitslasten in einem dedizierten Knotenpool planen:
- Knotenmarkierungen: Weisen Ihren Kubernetes-Cluster an, Arbeitslasten ohne entsprechende Toleranz nicht auf bestimmten Knoten einzuplanen.
- Knotenaffinität: Damit wird Ihr Kubernetes-Cluster angewiesen, bestimmte Pods auf dedizierten Knoten zu planen.
Die Knotenisolation ist ein erweiterter Mechanismus mit gestaffelten Sicherheitsebenen, den Sie nur neben anderen Isolationsfunktionen wie Containern mit minimalen Rechten und Dienstkonten verwenden dürfen. Die Knotenisolation deckt möglicherweise nicht alle Eskalationspfade ab und darf niemals als primäre Sicherheitsgrenze verwendet werden.
Funktionsweise der Knotenisolation
So implementieren Sie die Knotenisolation für Ihre Arbeitslasten:
Markieren Sie einen Knotenpool für Ihre Arbeitslasten und versehen Sie ihn mit einem Label.
Aktualisieren Sie Ihre Arbeitslasten mit der entsprechenden Toleranz- und Knotenaffinitätsregel.
In dieser Anleitung wird davon ausgegangen, dass Sie mit einem Knotenpool in Ihrem Cluster beginnen. Die Verwendung der Knotenaffinität ist neben Knotenmarkierungen nicht obligatorisch, es wird jedoch empfohlen, da Sie von einer besseren Kontrolle über die Planung profitieren.
Empfehlungen und Best Practices
Nachdem Sie die Knotenisolation eingerichtet haben, sollten Sie Folgendes tun:
Verhindern Sie beim Erstellen neuer Knotenpools, dass die meisten von GDC verwalteten Arbeitslasten auf diesen Knoten ausgeführt werden. Fügen Sie dazu diesen Knotenpools eine eigene Markierung hinzu.
Prüfen Sie bei der Bereitstellung neuer Arbeitslasten in Ihrem Cluster, z. B. bei der Installation von Drittanbietertools, die Berechtigungen, die die Pods benötigen. Vermeiden Sie nach Möglichkeit die Bereitstellung von Arbeitslasten, die erhöhte Berechtigungen für gemeinsam genutzte Knoten verwenden.
Beschränkungen
Für Pods, die in einem isolierten Knotenpool ausgeführt werden, gelten die folgenden Einschränkungen:
Angreifer können weiterhin DoS-Angriffe (Denial of Service) über den manipulierten Knoten initiieren.
Wenn Sie
DaemonSet
-Ressourcen bereitstellen, die erhöhte Berechtigungen haben und jede Markierung tolerieren können, sind diese Pods möglicherweise ein Pfad für die Rechteausweitung von einem manipulierten Knoten.Manipulierte Knoten können weiterhin viele Ressourcen lesen, einschließlich aller Pods und Namespaces im Cluster.
Manipulierte Knoten können auf Secrets und Anmeldedaten zugreifen, die von jedem auf diesem Knoten ausgeführten Pod verwendet werden.
Gefährdete Knoten können weiterhin Netzwerkrichtlinien für ausgehenden Traffic umgehen.
Wenn Sie einen separaten Knotenpool verwenden, um Ihre Arbeitslasten zu isolieren, kann sich dies auf die Kosteneffizienz, das Autoscaling und die Ressourcennutzung auswirken.
Einige von GDC verwaltete Arbeitslasten müssen auf jedem Knoten in Ihrem Cluster ausgeführt werden und so konfiguriert sein, dass sie alle Markierungen tolerieren.
Nächste Schritte
- Containerarbeitslasten in dedizierten Knotenpools isolieren
- Übersicht über Kubernetes-Cluster
- Containerarbeitslasten in GDC