Herunterladen des Kubernetes-Inventarisierungsagenten von Flexera

IT-Asset-Management (Cloud)

Der Kubernetes-Inventarisierungsagent von Flexera dient dazu, die Inventarisierung in Kubernetes-Clustern, zu handhaben. Um den Kubernetes-Inventarisierungsagenten von Flexera für mindestens einen Kubernetes-Cluster einzusetzen, müssen Sie ihn in der OCI-Container-Registry (der Bibliothek oder Bibliothekensammlung, die zum Hinterlegen von Containerimages verwendet wird, die der Open Container Initiative entsprechen) verfügbar machen. Bitten Sie für den folgenden Vorgang Ihre(n) Kubernetes-Administrator(en) um Unterstützung.

Außerdem verlangt die Infrastruktur für IT-Asset-Management, dass der Kubernetes-Inventarisierungsagent von Flexera nach der Installation in der Lage ist, Inventardateien (.ndi) auf eine Inventarisierungsstation hochzuladen. Diese Inventarisierungsstation muss anschließend Dateien an den zentralen Anwendungsserver hochladen können. Legen Sie die URL der Inventarisierungsstation fest, die vom Kubernetes-Inventarisierungsagenten von Flexera in Ihrem (ersten) Kubernetes-Cluster verwendet werden soll, und halten Sie den Wert zur Verwendung im nachfolgenden Vorgang griffbereit.
Tipp: Wenn der FlexNet-Inventarisierungsagent zur Sammlung von Software-Inventar in Containern in diesen bereitgestellt wird, benötigt er keinen direkten Zugang zu einer Inventarisierungsstation. In diesem Fall werden die .ndi.Inventardateien aus den Containern herauskopiert und vom Kubernetes-Inventarisierungsagenten von Flexera zusammen mit den anderen, von ihm erzeugten .ndi-Dateien hochgeladen.

So gehen Sie vor, um den Kubernetes-Inventarisierungsagenten von Flexera herunterzuladen und zu installieren:

  1. Melden Sie sich bei einem Gerät an, das:
    • eine unterstützte Linux-Version ausführt
    • über einen Web-Browser mit Netzwerkzugriff auf den Webanwendungsserver für IT-Asset-Management verfügt, wo Ihr Konto über Operatorrechte verfügen muss, um die entsprechende Seite einsehen zu können
    • eine laufende Docker-Instanz aufweist
    • entweder eine OCI-Container-Registry hostet oder Netzwerkzugriff auf eine OCI-Container-Registry hat, die in Ihrem Kubernetes-Cluster verfügbar ist
    Tipp: Der Vorgang ist einfacher, wenn Sie sich bei diesem Gerät mit einem Konto anmelden, das über administrative Berechtigungen für Ihre OCI-Container-Registry und auch für den Kubernetes-Cluster verfügt (anderenfalls müssen Sie während des Vorgangs Daten zwischen verschiedenen Konten verschieben). Während der Installation muss das Konto Berechtigungen zum Erstellen der folgenden Arten von Ressourcen aufweisen:
    • Namespace
    • ServiceAccount
    • ClusterRole
    • ClusterRoleBinding
    • Deployment
    Der Installationsvorgang erstellt die Konten und Berechtigungen, die zum Betreiben des Kubernetes-Inventarisierungsagenten von Flexera und (wenn es aufgerufen wird, um Inventar innerhalb eines Containers zu erfassen) ndtrack.sh benötigt werden.
  2. Wechseln Sie auf die Seite Inventarisierungseinstellungen.
    Die Seite Inventarisierungseinstellungen wird aufgerufen.
  3. Erweitern Sie den Abschnitt Inventarisierungsagent zum Herunterladen.
  4. Klicken Sie auf Kubernetes-Inventarisierungsagent von Flexera herunterladen und speichern Sie die heruntergeladene Archivdatei an einem geeigneten Ort.
  5. Extrahieren Sie aus dem heruntergeladenen Archiv das Image für den Kubernetes-Inventarisierungsagenten von Flexera zum Beispiel mit der folgenden Befehlszeile (ersetzen Sie den Platzhalter x.y.z durch die entsprechenden Versionsnummern – bei der Version 2021 R1.4 sind dies die Ziffern 1.3.0):
    tar xzf flexera-krm-operator-x.y.z.tar.gz
    Hinweis: Die Versionsnummern in diesem Befehl sind die Versionsnummern für den Kubernetes-Inventarisierungsagenten von Flexera, den Sie heruntergeladen haben, was sich im Namen des heruntergeladenen Archivs widerspiegelt. Denken Sie daran, dass das heruntergeladene Image auch die Kerninventarisierungskomponente des FlexNet-Inventarisierungsagenten (ndtrack.sh) enthält, die ihre eigene abweichende Versionsnummer hat. Wenn der Pod des Kubernetes-Inventarisierungsagenten von Flexera zum ersten Mal in einem Kubernetes-Knoten ausgeführt wird, fragt er als Erstes die ihm zugewiesene Inventarisierungsstation nach der neuesten Richtlinie mit Ihren Einstellungen im Bereich Inventarisierungsagent für automatische Bereitstellung > Bereitzustellende Version der Seite Inventarisierungseinstellungen. Wenn Ihre für den FlexNet-Inventarisierungsagenten ausgewählte Version nicht mit der aus dem heruntergeladenen Image übereinstimmt, lädt der Pod die angegebene Version herunter und verwendet anschließend diese Version von ndtrack.sh zur Erfassen von Software-Inventar von anderen Pods auf dem Knoten. (Wenn Sie nicht möchten, dass sich der Kubernetes-Inventarisierungsagent von Flexera an Ihre Einstellungen auf der Weboberfläche hält, sondern wenn er stattdessen die Version von ndtrack.sh verwenden soll, die im archivierten Image enthalten ist, das Sie gerade heruntergeladen haben, bitten Sie Ihren Kubernetes-Administrator, die Voreinstellung von downloadFromBeacon wie unter Erweiterte Attribute für den Kubernetes-Inventarisierungsagenten von Flexera beschrieben zu ändern.)
  6. Gehen Sie in das Verzeichnis, das aus dem Archiv extrahiert wurde:
    cd flexera-krm-operator-x.y.z
    Tipp: Das extrahierte Image enthält mehrere grundlegende YAML-Dateien, das Skript generate.sh zum Erstellen Ihrer eigenen YAML-Datei mit der Definition Ihrer Installation und das Shell-Skript install.sh, das später zur Installation des sich ergebenden Operators in einem Kubernetes-Cluster benötigt wird.
  7. Importieren Sie das extrahierte Image in Docker:
    docker load < flexera-krm-x.y.z.tar
  8. Setzen Sie neue Tags im Image für Ihre Registry.
    Tipp: Wenn Sie mehrere Container-Registrys haben, führen Sie den Vorgang für jede einzelne zu Ende und kehren Sie dann zurück, um den Vorgang ab diesem Punkt für die nächste Registry zu wiederholen.
    In diesen Beispielen wird die OCI-Container-Registry mit images.example.com dargestellt, was Sie durch die URL Ihrer eigenen Registry ersetzen.
    Wichtig: Der Image-Namensbbestandteil flexera/krm darf nicht geändert werden. Setzen Sie wie gezeigt Ihre Registry-URL einfach vor diese Zeichenfolge.
    docker tag flexera/krm:x.y.z images.example.com/flexera/krm:x.y.z
  9. Vergewissern Sie sich, dass Sie bei Ihrer OCI-Container-Registry angemeldet sind und ein Konto nutzen, das über administrative Rechte verfügt.
  10. Schieben Sie das Image für den Kubernetes-Inventarisierungsagenten von Flexera in Ihre Registry:
    docker push images.example.com/flexera/krm:x.y.z
    Es ist nur ein Containerimage erforderlich, da dieses vom Controller und allen Komponenten des Kubernetes-Inventarisierungsagenten von Flexera gemeinsam genutzt wird.
    Tipp: Wenn sich das Containerimage in der OCI-Container-Registry befindet, kann der Controller übereinstimmende Container im Kubernetes-Cluster instanziieren. Wenn das Image vor der Installation jedoch nicht in eine zugängliche Registry geschoben wurde, wird eine Bereitstellung der Controller-Pods (am Ende dieses Vorgangs) scheitern. Abhilfe: Wenn dieser Fehler auftritt, können Sie das Containerimage auch noch nach Bereitstellung des Controllers in die Registry schieben. Der Pod wird in regelmäßigen Abständen versuchen, das Image erneut zu holen. Sie können den Vorgang beschleunigen, indem Sie den Pod selbst löschen. Das ReplicaSet, das den Pod automatisch verwaltet, erstellt den Pod neu und beginnt sofort erneut damit, das Image zu holen.
  11. Legen Sie fest, wie Sie permanenten Speicherplatz für den Kubernetes-Inventarisierungsagenten von Flexera bereitstellen möchten.
    Das vom Kubernetes-Inventarisierungsagenten von Flexera verwendete StatefulSet erfordert einen PersistentVolumeClaim (PVC), der seine Speicherkonfiguration definiert. Es gibt folgende Voraussetzungen für den Speicher:
    • Das Volume bleibt auch bei Neustarts und Upgrades des Kubernetes-Pods, der den Kubernetes-Inventarisierungsagent von Flexera enthält, bestehen (es ist beständig/verlässlich).
    • Das Volume wird nicht gemeinsam mit anderen Ressourcen im Cluster genutzt.
    • Ein Minimum von 2 GB Speicherplatz ist verfügbar.
    • Der Zugriffsmodus muss ReadWriteOnce lauten (dies ist der Standardwert für Controller).
    • Der Volume-Modus muss Filesystem lauten (ebenfalls der Standardwert für Controller).
    Alle Konfigurationen, die diese Voraussetzungen erfüllen, sind gültig. Als Nächstes deklarieren Sie das Ergebnis Ihrer Speicherentscheidung in der YAML-Datei. Weitere Informationen zum Festlegen des permanenten Speichers finden Sie unter https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims.
  12. Konfigurieren Sie kubectl korrekt, um sich unter Verwendung des entsprechenden Kontos mit administrativen Rechten für den Cluster mit dem richtigen Cluster zu verbinden. Beispiel:
    kubectl config set-context cluster-one --user=administrator
    Dies konfiguriert kubect1 so, dass sich nachfolgende Befehle (insbesondere der Befehl kubectl apply, der später vom Installationsskript verwendet wird) auf den Cluster beziehen, der vom cluster-one-Kontext definiert wurde, und den administrator-Benutzer verwenden.
  13. Suchen Sie im erweiterten Archiv, das Sie zuerst heruntergeladen haben, das Skript install.sh.

    Das Installationsskript verwendet den Befehl kubectl zur Kommunikation mit dem Kubernetes-Cluster.

    Wenn das Installationsskript ausgeführt wird, erstellt es den Operator für den Kubernetes-Inventarisierungsagenten von Flexera.
    Tipp: In Kubernetes ist ein Operator ein Controller, der das Kubernetes-API mithilfe von benutzerdefinierten Ressourcen erweitert, um eine Anwendung und ihre Komponenten zu verwalten.
    Dazu erstellt das Installationsskript die folgenden Ressourcen im Kubernetes-Cluster:
    1. die krms.agents.flexera.com CustomResourceDefinition
    2. den flexera Namespace
    3. einen ServiceAccount im flexera Namespace für den Controller
    4. einen ServiceAccount im flexera Namespace für den Kubernetes-Inventarisierungsagenten von Flexera
    5. eine ClusterRole, die die vom Controller benötigten Berechtigungen definiert, und eine ClusterRoleBinding, um diese ClusterRole mit dem ServiceAccount des Controllers zu verbinden
    6. eine ClusterRole, die die vom Kubernetes-Inventarisierungsagenten von Flexera benötigten Berechtigungen definiert
    7. ClusterRoleBindings, die die Agenten-ClusterRole und die integrierte Ansichts-ClusterRole mit dem ServiceAccount des Agenten verbinden
    8. eine Bereitstellung (Deployment) der Controller-Anwendung im flexera Namespace.
  14. Führen Sie das Skript install.sh mit den entsprechenden (hier beschriebenen) Parametern aus, um den Kubernetes-Operator zu installieren.
    Es gibt einen Pflichtparameter und zwei bedingte Parameter für das Installationsskript.
    • Obligatorisch: Die --registry-Option identifiziert Ihre OCI-Container-Registry für diesen Kubernetes-Cluster und lässt das Installationsskript die YAML-Datei aktualisieren, indem es die aktuelle Registry der Spezifikation des Containerimage voranstellt (genau wie beim Image-Import weiter oben). (Ohne dass dieser Parameter an das Installationsskript übergeben wird, schlägt die Bereitstellung des Controller-Pods später im Vorgang fehl). Beispiel für eine Befehlszeile mit dem gleichen Platzhalter wie vorher:
      ./install.sh --registry images.example.com
    • Bedingt: Wenn Sie möchten, dass sich Ihr Kubernetes-Inventarisierungsagent von Flexera mit dem IBM-Lizenzservice integriert, insbesondere zur Verwaltung der VPC- und PVU-Sub-Capacity-Lizenzierung für eigenständige Produkte oder Pakete (Bundles) wie IBM Cloud Paks, müssen Sie den Parameter --ibm-licensing aufnehmen. Kumulative Musterbefehlszeile:
      ./install.sh --registry images.example.com --ibm-licensing
    • Bedingt: Wenn Sie möchten, dass Ihr Kubernetes-Inventarisierungsagent von Flexera auf der OpenShift-Plattform (von Red Hat) ausgeführt wird, müssen Sie den Parameter --openshift aufnehmen. Auf dieser Plattform muss der Container für den Kubernetes-Inventarisierungsagenten von Flexera als Root-Benutzer ausgeführt werden. Diese Option erstellt einen geeigneten SecurityContextConstraints-Eintrag und verknüpft diesen mit dem ServiceAccount für den Kubernetes-Inventarisierungsagenten von Flexera. Kumulative Musterbefehlszeile:
      ./install.sh --registry images.example.com --ibm-licensing -–openshift
    Wenn sich Ihre Situation für diesen Kubernetes-Cluster ändert, können Sie das Installationsskript mit den dann geltenden Parametern erneut ausführen. Dadurch wird Ihre vorherige Installation durch eine neue überschrieben, die Ihre neuen Anforderungen erfüllt.
    Weitere Informationen finden Sie in der Hilfe, die für das Installationsskript zur Verfügung gestellt wird.
    ./install.sh -–help
    Sie können auch in der README.md-Datei nachsehen, die im heruntergeladenen Archiv für den Kubernetes-Inventarisierungsagenten von Flexera enthalten ist.
  15. Führen Sie aus dem erweiterten Archiv, das Sie zuerst heruntergeladen haben, das Skript generate.sh aus.
    ./generate.sh
    Die ist ein interaktives Skript, das alle Optionen für eine YAML-Datei zur Definition der von Ihnen benötigten Konfiguration des Kubernetes-Inventarisierungsagenten von Flexera präsentiert. Für jede Option können Sie, nachdem Sie sich die Beschreibung durchgelesen haben, entscheiden, ob Sie den Standardwert akzeptieren oder Ihren eigenen bevorzugten Wert zur Konfiguration des entsprechenden Elements eingeben. Diese Werte werden vom Controller gelesen und verwendet, um den Kubernetes-Inventarisierungsagenten von Flexera sowohl bei der ersten Bereitstellung als auch nach eventuell erforderlichen Korrekturen am Laufstatus korrekt zu konfigurieren. Für die meisten Werte in der YAML-Datei gibt es sinnvolle Voreinstellungen, sodass nur zwei Änderungen wie hier beschrieben verpflichtend sind.
    Hinweis: Derzeit wird nur ein einziger Kubernetes-Inventarisierungsagent von Flexera für einen bestimmten Cluster unterstützt. Das bedeutet Folgendes: Wenn in einem Cluster bereits ein Kubernetes-Inventarisierungsagent von Flexera aktiv ist, müssen Sie die Konfigurationsdetails für den Agenten in Ihre vorhandene Konfiguration übernehmen, anstatt einfach nur eine neue YAML-Datei anzulegen. Sie können den Bearbeitungsvorgang manuell abschließen, wenn Sie wissen wie. Die Nutzung des Skripts generate.sh ist nicht verpflichtend. Weitere Informationen zur Konfigurationsstruktur und den optionalen Attributen finden Sie unter Ändern der Konfiguration für den Kubernetes-Inventarisierungsagenten von Flexera.
    Die beiden kundenspezifischen Pflichtwerte sind:
    1. Die URL der Inventarisierungsstation, auf die die beiden Agenten in diesem Kubernetes-Cluster zugreifen.
      Attribut spec.monitor.beaconURL
      Typ String
      Beispiel https://beacon.example.org
    2. Die Konfiguration, die Sie für den permanenten Speicher für den Kubernetes-Inventarisierungsagenten von Flexera wählen:
      Attribut spec.monitor.storage
      Typ PersistentVolumeClaimSpec
      Tipp: Wenn Sie zuvor entweder den Zugriffsmodus oder den Volume-Modus den eigenen Vorgaben entsprechend angepasst haben, stellen Sie auch für diese die Standardwerte wie oben beschrieben wieder her.
      Wenn die Bearbeitung abgeschlossen ist, speichern Sie die YAML-Datei an einem Ort, an dem der Befehl kubectl darauf zugreifen kann (nächstes Thema). Sie können einen bevorzugten Namen vergeben, wie z. B. fkia.yaml, nur müssen Sie im nächsten Schritt auf den korrekten Namen verweisen. (Der Vorgabewert krm.yaml steht für „Kubernetes-Ressourcen-Monitor“.)
  16. Wenden Sie Ihre vorbereitete YAML-Datei auf den Cluster an (setzen Sie im Befehl den von Ihnen gewählten Namen der YAML-Datei ein):
    kubectl apply -f fkia.yaml
Wenn dieser Vorgang einen Erfolg meldet, ist Ihr Kubernetes-Inventarisierungsagent von Flexera installiert und in diesem Cluster einsatzbereit. Außerdem ist der Controller initialisiert, um den gewünschten Zustand beizubehalten. Wiederholen Sie für weitere Kubernetes-Cluster diesen Vorgang und modifizieren Sie dabei dem jeweiligen Cluster entsprechend die Parameter.

IT-Asset-Management (Cloud)

Current