Scanne Deinen Kubernetes Cluster

kubernetes

Liebe JDisc Freunde,

mit dem Release Build 5198 für unseren Netzwerkscanner JDisc Discovery haben wir die Art und Weise, wie wir Kubernetes-Cluster scannen, komplett geändert. Bisher konnten Benutzer Standard-Zugangs-Tokens für Kubernetes-Cluster definieren, die gegen den Cluster ausprobiert wurden, wenn wir einen gefunden haben. Dieser Ansatz ist nicht wirklich sinnvoll, da keine zwei Cluster das gleiche Token haben werden.
Eine weitere Schwierigkeit könnte sein, dass der Clusterknoten, der die API anbietet, auffindbar sein muss. Das heißt, er sollte zumindest anpingbar sein. In vielen Fällen antworten die Installationen in der Cloud jedoch nicht einmal auf einen Ping. Nur der Port, der die API anbietet, ist für Anfragen offen.

Die von uns vorgenommenen Änderungen ähneln der Art und Weise, wie wir Cloud-Umgebungen scannen. PaaS (Platform as a Service) ist ein neuer Bereich innerhalb der Discovery-Konfiguration. Der erste Eintrag ist Kubernetes. Später werden wir CloudFoundry hinzufügen.

Kubernetes Cluster Configuration

Es gibt zwei Möglichkeiten, den Zugriff auf den Kubernetes-Cluster zu ermöglichen:

  • Service Account Token
  • eine kube.conf-Datei

 

Hinzufügen des Kubernetes-Zugriffs über ein Service Account Token

In Kubernetes können Administratoren Dienstkonten erstellen und ein dauerhaftes Zugriffstoken für diese erstellen. Klicken Sie auf die Schaltfläche Hinzufügen, um den Zugang zu neuen Kubernetes-Clustern hinzuzufügen.

AddTokenBasedAccess

Geben Sie einen beschreibenden Namen und einen Kommentar ein, wählen Sie den Zugangsberechtigungstyp Service Account Token, geben Sie die Cluster-IP oder den Hostnamen, den Port und schließlich das Service Account Token ein.

Adding Kubernetes Access mittels eines Kube.conf File

Die zweite Option für die Gewährung des Zugriffs auf einen Kubernetes-Cluster ist eine kube.conf-Datei. Diese Datei enthält alle Informationen (Adresse, Anmeldeinformationen, Zertifikate), die für den Zugriff auf den Kubernetes-Cluster erforderlich sind.

AddKubeConfAccess

Zugriff Testen

Clicken Sie auf den Test button um den Zugriff auf Ihren Kubernetes Cluster zu testen.

Required Permissions

JDisc Discovery liest die folgenden Bestandteile eines Kubernetes Clusters ein:

  • Namespaces
  • Services
  • Nodes
  • Pods
  • Container
  • Replicasets
  • Daemonsets
  • Container images

Deshalb benötigen wir mindestens die Zugriffsrechte für die Verben

  • get
  • list

Falls Sie die Liste der installierten Software eines Containers ermitteln möchten, dann benötigen Sie zusätzlich Rechte für die Verben

  • pod/exec

Anwendungen innerhalb eines Containers abrufen

Wir haben unseren Code auch erweitert, um die Liste der in einem Container laufenden Anwendungen abzurufen. Beachten Sie, dass wir die POD/EXEC-Berechtigung benötigen, um Befehle innerhalb eines Containers auszuführen, der Teil eines PODs ist.

Allerdings stehen wir derzeit vor einer Herausforderung. Wir müssen noch einen Weg finden, um diese Berechtigungen einem Dienstkonto (und seinem Token) zu geben. Es ist wichtig zu wissen, dass Dienstkonten pro Namespace gelten und daher keine Berechtigungen für andere Namespaces und deren Pods haben.

Die einzige Möglichkeit, POD/EXEC-Berechtigungen für alle PODs und alle Namespaces zu erhalten, ist die Verwendung einer kube.conf-Datei mit einem gewöhnlichen Benutzer und seiner richtigen Cluster-Rollenzuweisung mit den erforderlichen Berechtigungen.

Erstellen eines Auftrags zum Scannen von Kubernetes-Clustern

Schließlich können wir einen Erkennungsauftrag erstellen, der für die PaaS-Erkennung aller konfigurierten Kubernetes-Cluster zuständig ist.

CreateJob

Erstellen Sie einen Suchauftrag über das Kontextmenü in der linken Liste der Suchaufträge. Geben Sie einen Namen und eine Beschreibung ein und wählen Sie ihn nach einem Klick auf Ok aus. Weisen Sie dem Job keine Gruppe zu; wählen Sie auf der Registerkarte Einstellungen als einzige Option Synchronize PaaS. Wenn der Job startet, wird er sich nur mit den konfigurierten PaaS-Einträgen verbinden und die Umgebungen scannen.

Wir hoffen, dass unser neuer Ansatz Ihr Leben einfacher und übersichtlicher macht und freuen uns wie immer über Feedback und Ihre Ideen.

About The Author

Thomas Trenz
I own and manage JDisc and its network inventory and discovery products. Before I started JDisc, I worked quite a long time for Hewlett-Packard developing software for network assessments and inventory projects. Feel free to contact me on Linked-In or Xing.

Leave A Comment