Erkennung von Kubernetes
Der ServiceNow ITOM-Transparenz findet die Komponenten Kubernetes und OpenShift und erstellt Anwendungsservices, die sie enthalten. Discovery findet auch Kubernetes -Ereignisse und aktualisiert CMDB regelmäßig, um die dynamische Kubernetes -Umgebung widerzuspiegeln.
- Der Erweiterungsabschnitt Collect OpenShift info Kubernetes des Musters OpenShift ] erkennt die Komponenten Kubernetes der Bereitstellung []. Der Erweiterungsabschnitt OpenShift Build Config ist ab der Store-Version 1.0.53 vom Oktober 2019 verfügbar. Sie wird von Now Platform London Patch 10, Madrid Patch 5 und New Yorkunterstützt.
- Von der Service Mesh-Erweiterung werden Servicenetz-Details erkannt. Diese Informationen ermöglichen es dem Muster, Service-zu-Service-Beziehungen zu erstellen, die als Verbunden zu::Verbunden angezeigt werden. Die Service-Mesh-Erkennung erfordert die Bereitstellung von Istio in Ihrem K8s-Cluster (Kubernetes). Der Erweiterungsabschnitt „Service Mesh“ ist über Kubernetes-Erweiterungsklassenverfügbar. Sie wird ab Now Platform mit Release Madrid unterstützt.
- Von Collect Container Repository und Erweiterungsabschnitt wird nach Container-Registrierungen und Images in diesen Registrierungen gesucht.
Darüber hinaus verwendet [ Discovery das Muster Kubernetes Event, um Events für Komponenten von Kubernetes für Versionen Kubernetes, Version 1.21, zu erkennen.
Ab Release 1.0.68 auf ServiceNow Storekann Service-Mapping CI-Beziehungen verwenden, um die Komponenten Kubernetes während der Tag-basierten Erkennung zu Anwendungsservices hinzuzufügen.
- Google Cloud Platform (GCP) – Kubernetes Discovery und Zeitplanerstellung. Release-Version: 1.0.89 - April 2022.
- Amazon Web Services (AWS) – Kubernetes Discovery und Zeitplanerstellung. Release-Version: 1.0.90 – Mai 2022.
- Microsoft Azure Cloud Computing-Services Kubernetes – Discovery und Zeitplanerstellung. Release-Version: 1.0.91 - Juli 2022.
Apps im Store anfordern
Besuchen Sie die ServiceNow Store-Website, um alle verfügbaren Apps anzuzeigen und Informationen zum Senden von Anforderungen an den Store zu erhalten. Kumulative Informationen zum Release für alle veröffentlichten Apps finden Sie in den Release-Hinweisen zum ServiceNow Store-Versionsverlauf.
Voraussetzungen
- Stellen Sie die aktuelle Anwendung Discovery and Service Mapping Patterns aus dem ServiceNow Store bereit.
- Suchen Sie auf der Plattform Kubernetes nach den Parametern zum Einrichten der Erkennung von Kubernetes :
- Suchen Sie nach der URL des kubeapi-Servers:
- Führen Sie auf der Plattform Kubernetes den folgenden Befehl aus:
kubectl cluster-info - Suchen Sie in der Ausgabe nach der Zeile, die die URL des kubeapi-Servers angibt. Zum Beispiel wird die Steuerungsebene Kubernetes um ausgeführt
https://10.154.144.146:443
- Führen Sie auf der Plattform Kubernetes den folgenden Befehl aus:
- Suchen Sie den Namespace des Kubeapi-Servers:
- Führen Sie auf der Plattform Kubernetes diesen Befehl aus:
kubectl get namespaces - Suchen Sie in der Ausgabe die Zeile, die die Namespaces angibt. Beispiel:
kube-system.
- Führen Sie auf der Plattform Kubernetes diesen Befehl aus:
- Suchen Sie den Kubernetes -Benutzernamen und das Passwort:
- Führen Sie auf der Plattform Kubernetes diesen Befehl aus:
kubectl config view - Suchen Sie in der Ausgabe den Benutzernamen und das Passwort.Hinweis:Wenn der
kubectl config view-Befehl in einer bestimmten Umgebung nicht die erwarteten Details anzeigt, verwenden Sie denunterstütztenBefehl von Kubernetes admin, um den Benutzernamen und die Passwortdetails abzurufen.
- Führen Sie auf der Plattform Kubernetes diesen Befehl aus:
- Suchen Sie das gültige Bearer-Token mit den richtigen Berechtigungen:
- Wenn Sie den Standard-Tokennamen nicht haben, verwenden Sie den folgenden Befehl:
kubectl description secret. - Fürzeigt die Ausgabe alle Accounts und alle Token an. Suchen Sie das gültige Token:
Dabei ist
kubectlder generische Kubernetes -Account,beschreibenist die generische kubectl-Methode.Der Parameter
secretgibt an, dass in Ihrem Kubernetes -Cluster das Standardtoken geschützt ist, indem es im Objekt vom Typ secret enthalten ist.kubectl geheime Befehlsausgabe beschreibenist ein BASE64-codiertes Format. Wenn Sie den Standardtokennamen kennen, verwenden Sie den folgenden Befehl:
kubectl beschreiben Sie das Geheimnis default-token-g6pwcdefault-token-g6pwcspiegelt den Parameterwert des Standardtokens für g6pwc wider.- Die Ausgabe zeigt alle vorhandenen Token für dieses Konto Kubernetes.
Wählen Sie ein Token aus, das für die Konfiguration von Kubernetes -Anmeldeinformationen auf der Plattform ServiceNow verwendet werden soll.
- Wenn Sie den Standard-Tokennamen nicht haben, verwenden Sie den folgenden Befehl:
- Suchen Sie nach der URL des kubeapi-Servers:
- Stellen Sie sicher, dass der API-Server vom MID Server aus für eine erfolgreiche Kubernetes Erkennung erreichbar ist.
- Stellen Sie sicher, dass der auf der Plattform Kubernetes konfigurierte Benutzer über die Berechtigungen zum Ausführen der folgenden /api/v1-Elemente verfügt:
- https://<URL>/api/v1/namespaces/
- https://<URL>/api/v1/namespaces/<Namespace>
- https://<URL>/api/v1/namespaces/kube-system/endpoints/kube-controller-manager
- https://<URL>/api/v1/services
- https://<URL>/api/v1/pods
- https://<URL>/api/v1/nodes
- https://<url> /api/v1/replicationcontrollers
- https://<url> /apis/network.k8s.io/v1/inggresses
- https://<url> /apis/apps/v1/deployments
- https://<url> /apis/apps/v1/statefulsets
- https://<url> /apis/apps/v1/daemonsets
- https://<url> /apis/apps/v1/replicasets
- https://<url> /apis/batch/v1/cronjobs
- https://<url> /apis/batch/v1/jobs
- Um die OpenShift -Komponenten der Kubernetes -Bereitstellung zu erkennen, stellen Sie sicher, dass der auf der Plattform Kubernetes konfigurierte Benutzer über die Berechtigungen zum Ausführen der folgenden /api/v1-Elemente verfügt:
- /apis/apps.openshift.io/v1/deploymentconfigs
- /apis/build.openshift.io/v1/buildconfigs
- /apis/route.openshift.io/v1/routes
- /apis/user.openshift.io/v1/groups
- /apis/user.openshift.io/v1/users
- /apis/project.openshift.io/v1/projects
- /apis/image.openshift.io/v1/images
- /apis/image.openshift.io/v1/imagestreams
So erkennen Sie Service-Mesh-Informationen:- Stellen Sie Istio auf Ihrem K8s-Cluster bereit.
- Geben Sie die Prometheus-URL an.
- Konfigurieren Sie Prometheus, um Metriken aus Istio zu entfernen.
- Aktivieren Sie die Erweiterung „ Kubernetes-Konfigurationsdateien abrufen“ für:
- Erkennen Sie Konfigurationsdateien.
- Erstellen Sie nachverfolgte Konfigurationsdateien.
- Ordnen Sie die Arbeitsauslastungen und Services der Konfigurationsdateien einer Beziehung zu.
Hinweis:Der Inhalt nachverfolgter Dateien liegt im JSON-Format aus Version 1.0.92 und höher vor. Der Inhalt nachverfolgter Dateien liegt in Version 1.0.91 und früher im YAML-Format vor. - Erstellen Sie die Kubernetes -Anmeldeinformationen auf der ServiceNow -Plattform:
- Navigieren Sie auf der Plattform ServiceNow zu .
- Wählen Sie Neu.
- Wählen Sie Kubernetes-Anmeldeinformationen aus.
- Füllen Sie die Formularfelder aus (siehe Tabelle):
Feld Beschreibung Name Geben Sie einen eindeutigen und beschreibenden Namen für diese Anmeldeinformationen ein. Benutzername Geben Sie den zu erstellenden Benutzernamen in die Tabelle „Berechtigungsnachweise“ ein. Vermeiden Sie führende oder nachgestellte Leerzeichen in Benutzernamen. Eine Warnung wird angezeigt, wenn die Plattform führende oder nachgestellte Leerzeichen im Benutzernamen erkennt. Passwort Geben Sie das Passwort für diese Anmeldeinformationen ein. Bearertoken Geben Sie für die erweiterte Authentifizierung mit einem Bearer-Token das Bearer-Token ein, das Discovery für die Authentifizierung beim Zugriff auf Kubernetesverwendet. Verwenden Sie die Zeichenfolge als Token, z. B. 31ada4fd-adec-460c-809a-9e56ceb75269. Hinweis:Das Bearer-Token muss im BASE64-codierten Format vorliegen.Bearertoken-Authentifizierung Aktivieren Sie dieses Kontrollkästchen für die erweiterte Authentifizierung mit einem Bearer-Token. Anmeldeinformationsalias Konfigurieren Sie den Alias für die Verwendung der Anmeldeinformationen Kubernetes für andere Geräte und Anwendungen als Kubernetes. Sie verwenden diesen Alias auch zum Definieren eines serverlosen Erkennungszeitplans für die Erkennung der Kubernetes -Bereitstellung. - Wählen Sie das Vorhängeschloss-Symbol und dann das Suchsymbol aus.
- Wählen Sie im Formular „Aliasse für Verbindungen und Anmeldeinformationen“ die Option Neuaus.
- Geben Sie einen Namen für den Aliasdatensatz für Anmeldeinformationen an.
- Definieren Sie Attribute für den Alias. Legen Sie den Type auf Berechtigung fest.
- Klicken Sie mit der rechten Maustaste auf die Formularkopfzeile, und wählen Sie Speichernund dann Aktualisierenaus.
- Wählen Sie im Formular „Aliase für Verbindungen und Anmeldeinformationen“ den neu hinzugefügten Alias aus.
Der Alias wird im Feld „Anmeldeinformationsalias“ angezeigt.
- Wählen Sie im Formular Kubernetes für Anmeldeinformationen Aktualisierenaus.
- Erstellen Sie einen serverlosen Erkennungszeitplan für das Muster Kubernetes.Erstellen und definieren Sie das Ausführungsmuster ohne Server wie in der Produktdokumentation beschrieben. Konfigurieren Sie die Parameter, die für das Muster Kubernetes erforderlich sind, wie folgt:
Tabelle : 1. Attribute für Ausführungsmuster konfigurieren Feld Beschreibung URL Der Bezeichner für den Hostnamen, die IP oder der FQDN und der Port des API-Servers Kubernetes. Verwenden Sie das folgende Format: beispiel_hostname:beispiel_port oder beispiel_ip:beispiel_port. Geben Sie das richtige Protokoll (HTTP oder HTTPS) in der URL an. namespace Die Namespaces, die das System in der Discovery-Konfiguration Kubernetes übergibt. Geben Sie einen der folgenden Werte ein: - Individueller Namespace: Geben Sie den Namespace und dann „kube-system“ ein. Beispiel: dev, kube-system
- Standardwert: Geben Sie Standard kube-system ein
- Namespaces mit mehreren Stapeln: Geben Sie die Namespaces ein, trennen Sie die Werte durch ein Komma (,), und geben Sie dann „kube-system“ ein. Beispiel: Automation,Anwendung,Test,Kube-System
- Alle Namespaces: Verwenden Sie ein Sternchen (*), um alle Namespaces einzugeben
Anmeldeinformationsalias Der Alias, der den zuvor erstellten Kubernetes -Anmeldeinformationen zugeordnet ist. Clustername Der Name des Clusters Kubernetes im folgenden Format:<serviceaccountid><space><clustername> . Anbieter Cloud-Anbieter: GCP oder AWS oder Azure. - Erstellen Sie einen serverlosen Erkennungszeitplan für das Muster Kubernetes „ Event“. Konfigurieren Sie den Zeitplan so, dass er alle 5 oder 10 Minuten ausgeführt wird. Hinweis:Wenn das Muster zum ersten Mal ausgeführt wird, wird ein event_timestamp gespeichert. Später werden nur die Delta-Events basierend auf dem Zeitstempel erfasst. Je häufiger das Muster ausgeführt wird, desto weniger Updates für die CMDB-IRE sind erforderlich.
Erstellen Sie ein serverloses Ausführungsmuster für den Erkennungszeitplan, und weisen Sie es dem Muster Kubernetes „ Events“ zu. Konfigurieren Sie die Parameter, die für das Muster Kubernetes erforderlich sind, wie in Attribute für Ausführungsmuster konfigurierenbeschrieben.
- Um erkannte Komponenten in Anwendungsservices aufzunehmen, aktivieren Sie die CI-Beziehungen, die in der tagbasierten Discovery von Service-Mapping verwendet werden. Diese CI-Beziehungen sind im ServiceNow Store ab Version 1.0.68 verfügbar. Schritte zur Ausführung finden Sie unter Konfiguration der Tag-basierten Erkennung.
Voraussetzungen für die Erkennung von Kubernetes-Cloud-Infrastrukturen
Führen Sie für das Muster „Google Cloud Platform (GCP) – Kubernetes Discovery and Schedule Creator“ folgende Schritte aus:
- Richten Sie in der ServiceNow-Instanz ein Servicekonto für Google Cloud Platform (GCP) mit gültigen Anmeldeinformationen und Berechtigungen ein.
- Richten Sie in der Infrastruktur GCPMID-Server ] mit vollständigem Zugriff auf alle Cloud APIs ein: Legen Sie Cloud API-Zugriffsbereiche auf „Vollständigen Zugriff auf alle Cloud APIs zulassen“ fest. Die MID Server-Instanz kann nur auf die für das Projekt spezifischen Cluster zugreifen.
- Navigieren Sie zu
sys_properties.list, und konfigurieren Sie die folgenden Eigenschaften:- sn_itom_pattern.k8s_midserver: Geben Sie einen gültigen Namen für einen MID Server an.
- sn_itom_pattern.k8s_create_schedule_enabled: Legen Sie den Wert auf true fest.
- Um serverlose Zeitpläne mit APIs zu erstellen, importieren Sie das in KB1168613angehängte Update Set (nur für Release-Versionen vor Tokyo).
- Erstellen und ausführen Google Cloud Discovery Hinweis:
Um das Bearer-Token während der Ausführung des GKE-Zeitplans Kubernetes abzurufen, verwenden Sie den Befehl gcloud:
gcloud config config-helper --format="value(credential.access_token)"Durch die Konfiguration von gcloud in der MID Server-Instanz wird der Zugriff auf das GKE-Cluster gewährt, um das Token abzurufen.
Führen Sie für die Clustererkennung Amazon Elastic Kubernetes Service (EKS) folgende Schritte aus:
- Richten Sie in der ServiceNow-Instanz ein Servicekonto für AWS mit gültigen Anmeldeinformationen für das Verwaltungskonto sowie mit gültigen Berechtigungen ein.
- Stellen Sie sicher, dass der Cluster Amazon Elastic Kubernetes Service (EKS) über eine Clusterrolle mit schreibgeschütztem Zugriff auf alle Ressourcen verfügt.
- Erstellen Sie eine Clusterrollenbindung zwischen der Clusterrolle und einem Kubernetes-Benutzer. Beispiel: schreibgeschützter Benutzer.
- Erstellen Sie eine AWS-IAM-Rolle mit der Richtlinie EKSReadOnly.
- Ordnen Sie die IAM-Rolle dem Kubernetes-Benutzer auf eine der folgenden Arten zu:
- Bearbeiten Sie im Cluster die aws-auth ConfigMap.
- Führen Sie den folgenden Befehl aus:
eksctl create iamidentitymapping --cluster yourClusterName --arnarn:aws:iam::yourAccountID:role/yourIAMRoleName --username read-only-user
Führen Sie die Clustererkennung Amazon Elastic Kubernetes Service (EKS) auf eine von zwei Arten aus: über die AWS Command Line Interface (CLI) oder ohne die AWS CLI. Legen Sie zuerst die Systemeigenschaft sn_itom_pattern.k8s_aws_cli_to_generate_token fest, um das von Ihnen gewählte Modell zu verwenden. Diese Systemeigenschaft ist standardmäßig auf „ true “ festgelegt.
Legen Sie diese Systemeigenschaft auf „ true “ fest, um AWS CLI zum Generieren eines Token zu verwenden.
Legen Sie diese Systemeigenschaft auf „ false “ fest, um mithilfe von „Rollen übernehmen“ ein Token zu generieren.
Führen Sie die Clustererkennung Amazon Elastic Kubernetes Service (EKS)AWS mit der CLI von [] aus:
Richten Sie MID-Server mit der konfigurierten AWS -CLI ein. Durch die Konfiguration der AWS -CLI-Anmeldeinformationen wird der Zugriff auf das Amazon Elastic Kubernetes Service (EKS) -Cluster gewährt.
Hinweis:Der beim System angemeldete Benutzer muss mit dem Benutzer MID-Server identisch sein.Um das Bearer-Token zu generieren, verwenden Sie während der Ausführung des Zeitplans Amazon Elastic Kubernetes Service (EKS)AWS den CLI-Befehl []:
aws eks get-token --cluster-name<cluster_name> .Durch die Konfiguration des CLI-Benutzers bzw. der Rolle MID-ServerAWS in der Instanz [] wird Zugriff auf das Cluster Amazon Elastic Kubernetes Service (EKS) ] gewährt, um das Token zu generieren.
Führen Sie die Cluster-Erkennung Amazon Elastic Kubernetes Service (EKS) aus, ohne die CLI von AWS zu verwenden:
Hinweis:Diese Funktion wird ab Muster für Discovery und Service-Mapping Version 1.0.96 - Dezember 2022 unterstützt.
Ausführliche Anweisungen finden Sie in der folgenden KB: KB1182188: EKS-Cluster-Erkennung mit STS AssumeRoles (Ohne AWS CLI)
- Navigieren Sie zu
sys_properties.list, und konfigurieren Sie die folgenden Eigenschaften:- sn_itom_pattern.k8s_midserver: Geben Sie einen gültigen MID-Server Namen an.
- sn_itom_pattern.k8s_create_schedule_enabled: Legen Sie den Wert auf true fest.
- Um serverlose Zeitpläne mit APIs zu erstellen, importieren Sie das in KB1168613 angehängte Update Set (nur für Release-Versionen vor Tokyo).
Erstellen Sie den AWS Cloud Discovery-Zeitplan, und führen Sie diesen aus.
- Konfigurieren Sie in der Instanz ServiceNow das Azure-Servicekonto mit gültigen Anmeldeinformationen und Berechtigungen.
- Richten Sie den MID Server mit konfigurierter AZ Command Line Interface (CLI) ein. Durch die Konfiguration der Azure CLI-Anmeldeinformationen wird der Zugriff auf den AKS-Cluster gewährt.Hinweis:
- Der beim System angemeldete Benutzer muss mit dem MID Server-Benutzer identisch sein.
- Ausführliche Informationen zur Konfiguration der AKS-Clustererkennung finden Sie im Artikel Konfigurationsdetails der AKS-Clustererkennung [KB1220553] in der Knowledge Base von Now Support.
- Navigieren Sie zu
sys_properties.list, und konfigurieren Sie die folgenden Eigenschaften:- sn_itom_pattern.k8s_midserver: Geben Sie einen gültigen MID Server-Namen an.
- sn_itom_pattern.k8s_create_schedule_enabled: Legen Sie den Wert fest auf: True.
- Um serverlose Zeitpläne mit APIs zu erstellen, importieren Sie das in KB1168613 angehängte Update Set (nur für Release-Versionen vor Tokyo).
- Erstellen Sie einen Cloud-Erkennungszeitplan Azure, und führen Sie ihn aus.Hinweis:Um das Berear-Token während der Ausführung des AKS-Zeitplans Kubernetes abzurufen, verwenden Sie den folgenden AZ-CLI-Befehl:
az aks get-credentials --name<cluster_name> --overwrite-existing --resource-group<resourceGroup_name> --Datei -Die in der MID-Server-Instanz konfigurierte AZ-CLI muss Zugriff auf den AKS-Cluster haben, um ein Token zu generieren.
| Eigenschaftsname | Eigenschaftsbeschreibung | Typ | Standardwert | |
|---|---|---|---|---|
sn_itom_pattern.manifest_digest_image_id | Boolean |
false Hinweis: Bevor Sie diese Eigenschaft auf „ true “ setzen und die Erkennung ausführen: Verhindern Sie die Erstellung doppelter Datensätze, indem Sie alle Docker Bilddatensätze löschen. |
||
sn_itom_pattern.k8s_create_schedule_enabled |
Die Funktionskennzeichnung, die unter den Systemeigenschaften aktiviert/deaktiviert werden kann, die für die Steuerung der Musterausführung verantwortlich ist. |
Boolean | false | |
| MID-Server | sn_itom_pattern.k8s_midserver |
[Standard] Beispiel: Gültiger MID-Server-Name |
Zeichenfolge | |
sn_itom_pattern.k8s_<service_account_id> _midserver |
[Basierend auf Service-Account-Ebene] Beispiel: Gültiger MID-Server-Name |
Zeichenfolge | ||
sn_itom_pattern.k8s_<service_account_id> _<clustername> _midserver |
[Basierend auf Clustername] Beispiel: Gültiger MID-Server-Name |
Zeichenfolge | ||
sn_itom_pattern.kubernetes_collekt_volume |
Wenn die Eigenschaft auf Truefestgelegt ist, werden die Daten für das Kubernetes-Volume [cmdb_ci_kubernetes_volume] ausgefüllt. |
Zeichenfolge | false | |
| Anmeldeinformationsalias | sn_itom_pattern.k8s_cred_alias |
[Standard] Beispiel: Aliasname für Anmeldeinformationen |
Zeichenfolge | |
sn_itom_pattern.k8s_<service_account_id> _alias |
[Basierend auf Service-Account-Ebene] Beispiel: Gültiger Aliasname für Anmeldeinformationen. |
Zeichenfolge | ||
sn_itom_pattern.k8s_<service_account_id> _<clustername> _alias |
[Basierend auf Clustername] Beispiel: Gültiger Aliasname für Anmeldeinformationen. |
Zeichenfolge | ||
| Prometheus-URL | sn_itom_pattern.k8s_prometheusUrl |
[Standard] Beispiel: Gültige Prometheus-URL |
Zeichenfolge | |
sn_itom_pattern.k8s_<service_account_id> _prometheusUrl |
[Basierend auf Service-Account-Ebene] Beispiel: Gültige Prometheus-URL |
Zeichenfolge | ||
sn_itom_pattern.k8s_<service_account_id> _<clustername> _prometheusUrl |
[Basierend auf Clustername] Beispiel: Gültige Prometheus-URL |
Zeichenfolge | ||
sn_itom_pattern.k8s_ ausgeführt |
[Unterstützte Ausführung des Discovery-Zeitplans – Täglich, Bei Bedarf, Wochentage, Wochenenden, Letzter Tag des Monats, Kalenderquartalende] Beispiel: Täglich |
Zeichenfolge | ||
sn_itom_pattern.k8s_batch_count |
[Gibt an, wie viele Zeitpläne im Batch ausgeführt werden sollen – Standardwert ist 5] Beispiel: 5 (Anzahl der Zeitpläne, die im Batch ausgeführt werden sollen) |
Ganzzahl | 5 | |
sn_itom_pattern.k8s_schedule_batch_delay |
[verfolgt die Zeitdifferenz zwischen zwei Batch-Werten in Sekunden] Beispiel: 300 (in Sekunden) |
Ganzzahl | ||
sn_itom_pattern.k8s_run_time |
[verfolgt die aktuelle Zeit für einen Batch] Wenn diese Eigenschaft festgelegt ist, können Sie dieselbe oder unser dynamisches Timing verwenden, das 5 Minuten nach dem aktuellen System-Timing liegt. Werte im Format HH:MM:SS Beispiel: 10:11:12 (HH:MM:SS) |
Zeichenfolge |
Weitere Informationen finden Sie unter: Zeitpläne zur Erkennung von Cloud-Ressourcen in Cloud-Discovery erstellenKubernetes Erkennung ohne Anmeldeinformationen oder Erkennung mitten im Cluster
Voraussetzungen für die Erkennung ohne Anmeldeinformationen Kubernetes :
Stellen Sie den containerisierten MID Server im Cluster Kubernetes bereit. Die Konfiguration von Kubernetes -Anmeldeinformationen ist nicht erforderlich, da der MID Server im Cluster Kubernetes den API-Server automatisch erkennt und authentifiziert.
| Feld | Beschreibung |
|---|---|
| URL | Geben Sie einen der folgenden Werte in das URL-Feld ein: https://Cluster Oder https://kubernetes.default.svc |
| namespace | Die Namespaces, die das System in der Discovery-Konfiguration Kubernetes übergibt. Geben Sie einen der folgenden Werte ein:
|
| cluster_name | Geben Sie Eindeutiger Name ein. |
Von Discovery während der horizontalen Erkennung erfasste Daten
| Tabelle und Feld | Beschreibung |
|---|---|
| Kubernetes -Cluster [cmdb_ci_kubernetes_cluster] | |
| Name | Der Name des kube-Controller-Manager-Leader |
| K8s_uid | Die kube-system-Namespace-UID [unterstützte Versionen: 1.0.92 und höher] |
| ip_address | Bezeichner für host_ip des API-Servers Kubernetes. |
| port | Der Bezeichner für den API-Server-Port Kubernetes. |
| namespace | Dieser Wert zeigt die Namespaces, die das System in der Discovery-Konfiguration Kubernetes übergeben hat. |
| event_timestamp | Der Zeitstempel des letzten Events, das in diesem Kubernetes -Cluster zum Zeitpunkt der Erkennung erstellt wurde. |
| Kubernetes Knoten [cmdb_ci_kubernetes_node] | Der virtuelle Aspekt des Knotens Kubernetes. Daten, die sich auf den physischen Aspekt des Knotens Kubernetes beziehen, werden unter dem Server Linux ] gespeichert. |
| Name | Der Name des Knotens Kubernetes. Das Format kann nur der Name des Computers oder der vollständige Name sein, der aus dem Namen und dem Hostnamen besteht: <name>.<hostname>. |
| k8s_uid | Der Bezeichner für die Knoten-UUID Kubernetes. |
| Cluster | Name des Clusters, der diese Ressource enthält |
| operational_status | Betriebsstatus des Knotens Kubernetes. |
| Kubernetes -Service [cmdb_ci_kubernetes_service] | |
| Name | Der Name des Service Kubernetes. |
| selector | Eine durch Kommas getrennte Liste der in der Konfiguration Kubernetes angegebenen Bezeichnungsauswahlen, die zum Auswählen von Ziel-Pods verwendet werden. |
| namespace | Der Namespace Kubernetes, zu dem dieser Service Kubernetes gehört. |
| k8s_uid | Die Kubernetes -Service-UUID. |
| Cluster | Name des Clusters, der diese Ressource enthält |
| Kubernetes Pod [cmdb_ci_kubernetes_pod] | |
| Name | Der Name des Pods Kubernetes. |
| k8s_uid | Die Pod-UUID Kubernetes. |
| resourceVersion | Die Ressourcenversion des Pods Kubernetes |
| namespace | Der Kubernetes -Namespace, zu dem dieser Kubernetes -Pod gehört. |
| Cluster | Name des Clusters, der diese Ressource enthält |
| Status | Der Pod-Status Kubernetes : Ausstehend, Wird ausgeführt, Erfolgreich, Fehlgeschlagen und Unbekannt. |
| Kubernetes Cronjob [cmdb_ci_kubernetes_cronjob] | |
| Name | Der Name des Cronjobs Kubernetes. |
| namespace | Der Kubernetes -Namespace, zu dem dieser Kubernetes -Pod gehört. |
| k8s_uid | Die Cronjob-UUID Kubernetes. |
| Cluster | Name des Clusters, der diese Ressource enthält |
| Kubernetes Auftrag [cmdb_ci_kubernetes_job] | |
| Name | Der Name des Auftrags Kubernetes . |
| namespace | Der Kubernetes -Namespace, zu dem dieser Kubernetes -Job gehört. |
| k8s_uid | Die Auftrags-UUID Kubernetes . |
| Cluster | Der Name des Clusters, der den Auftrag Kubernetes enthält. |
| Kubernetes -Daemonset [cmdb_ci_kubernetes_daemonset] | |
| Name | Der Name des Kubernetes -DaemonSets. |
| namespace | Der Kubernetes -Namespace, zu dem dieses Kubernetes -Daemonset gehört. |
| k8s_uid | Die DaemonSet-UUID Kubernetes. |
| Cluster | Name des Clusters, der diese Ressource enthält |
| pods_avail | Die Anzahl der verfügbaren Pods. |
| pods_failed | Die Anzahl der Pods in der fehlgeschlagenen Phase. |
| pods_running | Die Anzahl der Pods in der Phase „Wird ausgeführt“ |
| pods_erfolgreich | Die Anzahl der Pods in der Phase „Erfolgreich“. |
| pods_waiting | Die Anzahl der Pods in der Wartephase. |
| Kubernetes Eingang [cmdb_ci_kubernetes_inggress] | |
| Name | Der Name des Eingangs Kubernetes . |
| namespace | Der Namespace Kubernetes, zu dem dieser Eingang Kubernetes gehört. |
| k8s_uid | Die Kubernetes Eingangs-UID |
| Cluster | Name des Clusters, der diese Ressource enthält |
Kubernetes -Bereitstellung [cmdb_ci_kubernetes_deployment] Kubernetes Replikatsatz [cmdb_ci_kubernetes_replicaset] Kubernetes Replikationscontroller [cmdb_ci_kubernetes_replicationcontroller] Kubernetes Statefulset [cmdb_ci_kubernetes_statefulset] |
|
| Name | Der Name dieser Ressource |
| namespace | Der Namespace Kubernetes, zu dem diese Ressource gehört. |
| K8s_uid | Die UID Kubernetes dieser Ressource |
| Cluster | Name des Clusters, der diese Ressource enthält |
| total_replicas | Anzahl der Replikate in dieser Ressource |
| desired_replicas | Die Anzahl der Replikate in der gewünschten Phase |
| available_replicas | Anzahl der verfügbaren Replikate |
| unavailable_replicas | Anzahl der Replikate in der nicht verfügbaren Phase |
| updated_replicas | Anzahl der aktualisierten Replikate |
| Docker-Container [cmdb_ci_docker_container] | Die Komponente, die das Docker-Image ausführt |
| container_id | Der eindeutige Bezeichner für den Docker-Container Kubernetes . In Fällen, in denen doppelte Datensätze erstellt werden, werden Deduplizierungsaufgaben angezeigt, sobald die Erkennung ausgeführt wird. Weitere Informationen zur Lösung dieser Aufgaben finden Sie im Artikel Docker-Container-Bezeichner unabhängig machen [KB1443042] in der ServiceNow® Knowledge Base. |
| namespace | Der Namespace Kubernetes, zu dem dieser Docker-Container Kubernetes gehört |
| Docker-Image [cmdb_ci_docker_image] | Ein ausführbares Paket einer Anwendung und der zugehörigen Software, das von einem Docker-Container instanziiert werden kann |
| image_id | Der Bezeichner für das Docker-Image Kubernetes . |
| Name | Der Name des Docker-Image Kubernetes. |
| image_url | Die URL für das Herunterladen des Docker-Image. |
| namespace | Der Namespace Kubernetes, zu dem dieses Docker-Image Kubernetes gehört. |
| Linux-Server [cmdb_ci_linux_server] | Der Server, der den Knoten Kubernetes hostet |
| Name | Der Name des Linux-Servers, der den Knoten Kubernetes antreibt |
| hostname | Der Hostname des Linux-Servers |
| os | Das auf diesem Linux-Server bereitgestellte Betriebssystem |
| kernel_release | Die Version des auf diesem Linux-Server bereitgestellten Linux-Kernel-Betriebssystems. |
| ram | Die Größe des auf diesem Linux-Server installierte RAM. |
| ip_address | Die IP-Adresse des Linux-Servers |
| Schlüsselwert [cmdb_key_value] | Dieses Konfigurationselement enthält Kubernetes Bezeichnungen. Bezeichnungen sind Schlüssel/Wert-Paare, die an Objekte wie Pods angehängt werden. |
| key | Der Schlüssel des Parameters Kubernetes für Pod oder Kubernetes Service Key Value. |
| Wert | Der Wert des Parameters Kubernetes pod oder Kubernetes service Key Value. |
| Kubernetes Volume [cmdb_ci_kubernetes_volume] | |
| k8s_uid | UUID des Volumes Kubernetes. |
| mount_path | Der Pfad für den Zugriff auf dieses Volume Kubernetes. |
| Name | Name des Kubernetes -Laufwerks |
| namespace | Der Namespace Kubernetes, zu dem dieses Volume Kubernetes gehört. |
| Cluster | Name des Clusters, der diese Ressource enthält |
| volume_id | ID des Kubernetes -Laufwerks |
| OpenShift Bereitgestellte Konfiguration [cmdb_ci_openshift_dep_conf] | |
| Name | Der Name der OpenShift -Bereitstellungskonfiguration |
| namespace | Der Name des Namespace, der die Bereitstellungskonfiguration enthält |
| k8s_uid | UUID des Volumes Kubernetes. |
| URL | Die URL der bereitgestellten Konfiguration OpenShift. |
| OpenShift Build-Konfiguration [cmdb_ci_openshift_build_conf] | |
| Name | Der Name der Build-Konfiguration OpenShift. |
| namespace | Der Name des Namespace OpenShift, der die Build-Konfiguration enthält. |
| k8s | UUID des Volumes Kubernetes. |
| URL | Die URL der Build-Konfiguration OpenShift. |
| OpenShift Quelle2Bild [cmdb_ci_openshift_source_2_image] | |
| Name | Der Name des OpenShift-Quell-Image |
| bis | Zugehöriges Image |
| parent_id | ID des Quell-Image OpenShift. |
| OpenShift Route [cmdb_ci_openshift_route] | |
| Name | Der Name der Route OpenShift. |
| namespace | Der Name des Namespace, der die Route OpenShift enthält. |
| k8s_uid | UUID des Volumes Kubernetes. |
| URL | Die URL der Route OpenShift. |
| host | Der Zielhost der Route OpenShift. |
| port | Der Zielport der Route OpenShift. |
| OpenShift Gruppe [cmdb_ci_openshift_group] | |
| Name | Der Name der Gruppe OpenShift. |
| k8s_uid | UUID des Volumes Kubernetes. |
| URL | Die URL der Gruppe OpenShift. |
| OpenShift Benutzer [cmdb_ci_openshift_user] | |
| Name | Der Name des Benutzers OpenShift. |
| k8s_uid | UUID des Volumes Kubernetes. |
| URL | Die URL des Benutzers OpenShift. |
| full_name | Vollständiger Name des OpenShift -Benutzers. |
| OpenShift Projekt [cmdb_ci_openshift_project] | |
| Name | Der Name des Projekts OpenShift. |
| k8s_uid | UUID des Volumes Kubernetes. |
| URL | Die URL des Projekts OpenShift. |
| OpenShift Image [cmdb_ci_openshift_images] | |
| Name | Der Name des Image OpenShift. |
| k8s_uid | UUID des Volumes Kubernetes. |
| URL | Die URL des Image OpenShift. |
| docker_image_metadata_id | Die ID des Docker-Image |
| docker_image_metadata_parent_id | Die ID der übergeordneten ID des Image |
| arch | Architektur des Image |
| size | Die Image-Größe |
| hostname | Der dem Image zugeordnete Host-Name |
| OpenShift Image-Stream [cmdb_ci_openshift_images_stream] | |
| Name | Der Name des Image-Streams OpenShift. |
| k8s_uid | UUID des Volumes Kubernetes. |
| URL | Die URL des OpenShift Image-Streams. |
| namespace | Der Name des Namespace, der den Image-Stream OpenShift enthält. |
| OpenShift Docker-Image-Repository [cmdb_ci_openshift_docker_images_repository] | |
| Name | Der Name des Docker-Image-Repository OpenShift. |
| parent_ID | Die ID des übergeordneten Systems |
| -Namespace [cmdb_ci_kubernetes_namespace] | |
| Name | Der Name des Namespace Kubernetes. |
| Status | Die Namespace-Phasen Kubernetes : Aktiv oder Wird beendet. |
| Tabelle und Feld | Beschreibung |
|---|---|
| Container-Repository [cmdb_ci_container_repository] | |
| Name [name] | Der Name des Container-Repositorys. |
| Container-Repository-Eintrag [cmdb_ci_container_repository_entry] | |
| Name [name] | Der Name des Container-Repository-Eintrags. |
| Kategorie [category] | Die Kategorie des Container-Repository-Eintrags. |
Vom Muster „Kubernetes“ erfasste CI-Beziehungen
| CI | Beziehung | CI |
|---|---|---|
| Kubernetes -Cluster [cmdb_ci_kubernetes_cluster] | Enthält::Enthalten in | Kubernetes -Service [cmdb_ci_kubernetes_service] |
| Enthält::Enthalten in | Kubernetes Pod [cmdb_ci_kubernetes_pod] | |
| Enthält::Enthalten in | Kubernetes Eingang [cmdb_ci_kubernetes_inggress] | |
| Enthält::Enthalten in | Kubernetes -Namespace [cmdb_ci_kubernetes_namespace] |
|
| Enthält::Enthalten in | [cmdb_ci_openshift_source_2_image] | |
| Enthält::Enthalten in | OpenShift Gruppe [cmdb_ci_openshift_group] | |
| Enthält::Enthalten in | OpenShift Benutzer [cmdb_ci_openshift_user] | |
| Enthält::Enthalten in | OpenShift Projekt [cmdb_ci_openshift_project] | |
| Enthält::Enthalten in | OpenShift Image [cmdb_ci_openshift_images] | |
| Enthält::Enthalten in | OpenShift Docker-Image-Repository [cmdb_ci_openshift_docker_images_repository] | |
| Cluster von::Cluster | Kubernetes Knoten [cmdb_ci_kubernetes_node] | |
| Verwaltet::Verwaltet von | Linux-Server [cmdb_ci_linux_server] | |
| Kubernetes Pod [cmdb_ci_kubernetes_pod] | Enthält::Enthalten in | Docker-Container [cmdb_ci_docker_container] |
| Enthält::Enthalten in | Docker-Image [cmdb_ci_docker_image] | |
| Enthält::Enthalten in | Kubernetes Volume [cmdb_ci_kubernetes_volume] | |
Kubernetes Arbeitsauslastung [cmdb_ci_kubernetes_workload] |
Gehostet auf::Hostet | Kubernetes -Cluster [cmdb_ci_kubernetes_cluster] |
| Kubernetes-Service [cmdb_ci_kubernetes_service] | Stellt bereit::Bereitgestellt von | Kubernetes Arbeitsauslastung [cmdb_ci_kubernetes_workload] |
Kubernetes-Bereitstellung [cmdb_ci_kubernetes_deployment] |
Besitzt::Eigentum von | Kubernetes Replikatsatz [cmdb_ci_kubernetes_replicaset] |
Kubernetes Replikatsatz [cmdb_ci_kubernetes_replicaset] |
iInstanziiert::Instanziiert von | Kubernetes Pod [cmdb_ci_kubernetes_pod] |
| Kubernetes Arbeitsauslastung [cmdb_ci_kubernetes_workload] | Bereitgestellt von::Stellt bereit für | Kubernetes -Service [cmdb_ci_kubernetes_service] |
| Kubernetes -Bereitstellung [cmdb_ci_kubernetes_deployment] | Gehostet auf::Hostet | Kubernetes -Cluster [cmdb_ci_kubernetes_cluster] |
| Kubernetes -Daemonset [cmdb_ci_kubernetes_daemonset] | Gehostet auf::Hostet | Kubernetes -Cluster [cmdb_ci_kubernetes_cluster] |
| Kubernetes Statefulset [cmdb_ci_kubernetes_statefulset] | Gehostet auf::Hostet | Kubernetes -Cluster [cmdb_ci_kubernetes_cluster] |
| Kubernetes -Namespace [cmdb_ci_kubernetes_namespace]. | Enthält::Enthalten in | OpenShift Bereitgestellte Konfiguration [cmdb_ci_openshift_dep_conf] |
| Enthält::Enthalten in | OpenShift Build-Konfiguration [cmdb_ci_openshift_build_conf] | |
| Enthält::Enthalten in | OpenShift Route [cmdb_ci_openshift_route] | |
| Enthält::Enthalten in | OpenShift Image-Stream [cmdb_ci_openshift_images_stream] | |
| Docker-Image [cmdb_ci_docker_image] | Instanziiert::Instanziiert von | Docker-Container [cmdb_ci_docker_container] |
| Linux-Server [cmdb_ci_linux_server] | Enthält::Enthalten in | Kubernetes Pod [cmdb_ci_kubernetes_pod] |
| Wird ausgeführt:Wird ausgeführt auf | Docker-Container [cmdb_ci_docker_container] | |
| Hostet::Gehostet auf | Kubernetes Knoten [cmdb_ci_kubernetes_node] | |
| OpenShift Bereitstellungskonfiguration [cmdb_ci_openshift_dep_conf] | Enthält::Enthalten in | [cmdb_ci_config_file_tracked] |
| CI | Beziehung | CI |
|---|---|---|
| Docker-Image [cmdb_ci_docker_image] | Bereitgestellt von::Bereitgestellt | Container-Repository-Eintrag [cmdb_ci_container_repository_entry] |
| Container-Repository-Eintrag [cmdb_ci_container_repository_entry] | Gehostet auf::Hostet | Container-Repository [cmdb_ci_container_repository] |
Von der Istio Service Mesh-Erweiterung erfasste CI-Beziehungen
Voraussetzungen für die Erweiterung Istio Service Mesh:
- Stellen Sie sicher, dass die Komponenten Istio Service Mesh und Prometheus im Cluster Kubernetes konfiguriert sind.
- Stellen Sie sicher, dass Prometheus die Serviceverbindungsinformationen mit dem Befehl
queryistio_requests_total erkennt. - Vergewissern Sie sich, dass die Anwendungsservices verbunden sind, und überprüfen Sie den Service-zu-Service-Datenverkehrsfluss im KIALI-Diagramm.
Weitere Informationen zur Anwendung „Bookinfo“ finden Sie unter: https://istio.io/latest/docs/examples/bookinfo/
| CI | Beziehung | CI |
|---|---|---|
| Kubernetes -Service [cmdb_ci_kubernetes_service] | Verbunden mit::Verbunden von | Kubernetes Service [cmdb_ci_kubernetes_service] |
Vom Muster Kubernetes „ Event“ erfasste CI-Beziehungen
| CI | Beziehung | CI |
|---|---|---|
| Kubernetes -Cluster [cmdb_ci_kubernetes_cluster] | Enthält::Enthalten in | Kubernetes -Service [cmdb_ci_kubernetes_service] |
| Enthält::Enthalten in | Kubernetes Pod [cmdb_ci_kubernetes_pod] | |
| Cluster von::Cluster | Kubernetes Knoten [cmdb_ci_kubernetes_node] | |
| Verwaltet::Verwaltet von | [cmdb_ci_linux_server] | |
| Kubernetes Pod [cmdb_ci_kubernetes_pod] | Enthält::Enthalten in | Docker-Container [cmdb_ci_docker_container] |
| Enthält::Enthalten in | Docker-Image [cmdb_ci_docker_image] | |
| Enthält::Enthalten in | Kubernetes Volume [cmdb_ci_kubernetes_volume] | |
| Docker-Image [cmdb_ci_docker_image] | Instanziiert::Instanziiert von | Docker-Container [cmdb_ci_docker_container] |
| Linux-Server [cmdb_ci_linux_server] | Enthält::Enthalten in | Kubernetes Pod [cmdb_ci_kubernetes_pod] |
| Wird ausgeführt:Wird ausgeführt auf | Docker-Container [cmdb_ci_docker_container] | |
| Hostet::Gehostet auf | Kubernetes Knoten [cmdb_ci_kubernetes_node] |
Daten, die von Service-Mapping während der tagbasierten Erkennung erfasst wurden
| CI | Beziehung | CI |
|---|---|---|
| Kubernetes-Service [cmdb_ci_kubernetes_service] | Enthalten in::Enthält | Kubernetes-Cluster [cmdb_ci_kubernetes_cluster] |
| OpenShift-Projekt [cmdb_ci_openshift_project] | Enthalten in::Enthält | Kubernetes-Cluster [cmdb_ci_kubernetes_cluster] |
| Kubernetes-Pod [cmdb_ci_kubernetes_pod] | Enthalten in::Enthält | Kubernetes-Cluster [cmdb_ci_kubernetes_cluster] |
| Kubernetes-Pod [cmdb_ci_kubernetes_pod] | Cluster::Cluster von | Kubernetes-Service [cmdb_ci_kubernetes_service] |
| Kubernetes-Namespace [cmdb_ci_kubernetes_namespace] | Enthält::Enthalten in | Bereitgestellte OpenShift-Konfiguration [cmdb_ci_openshift_dep_conf] |
| Kubernetes-Namespace [cmdb_ci_kubernetes_namespace] | Enthält::Enthalten in | OpenShift-Buildkonfiguration [cmdb_ci_openshift_build_conf] |
| Kubernetes-Namespace [cmdb_ci_kubernetes_namespace] | Enthält::Enthalten in | OpenShift-Route [cmdb_ci_openshift_route] |
| Kubernetes-Namespace [cmdb_ci_kubernetes_namespace] | Enthält::Enthalten in | OpenShift-Image-Stream [cmdb_ci_openshift_images_stream] |
Kubernetes-Dashboard
Nachdem Discovery die Erkennung von Komponenten der Bereitstellung von Kubernetes abgeschlossen hat, können Sie zu navigieren und zeigen die Statistiken zu erkannten Kubernetes -Komponenten an. Weitere Informationen finden Sie unter Kubernetes-Dashboard.
Problembehandlung
| Symptom | Ursache | Lösung |
|---|---|---|
| Discovery fehlgeschlagen. Die Discovery-Nachricht enthält die Informationen zu einem Fehler, der durch die REST-Zeitüberschreitung verursacht wurde. | Es gibt viele CIs, deren REST-Aufrufantwort in der Bereitstellung gesendet wird. Der MID-Server kann die REST-Aufrufantwort nicht verarbeiten, ohne dass die vom Parameter mid.sa.cloud.request_timeout gesteuerte Zeitbegrenzung überschritten wird. | Standardmäßig ist der Parameter mid.sa.cloud.request_timeout auf 30.000 Millisekunden festgelegt. Erhöhen Sie den Wert dieses Parameters auf dem entsprechenden MID-Server, und führen Sie die Discovery erneut aus. Hinweis: Wenn dieser Parameter in der zugehörigen Liste der Konfigurationsparameter für den betreffenden MID-Server nicht angezeigt wird, müssen Sie ihn möglicherweise hinzufügen. |
| Bei Musterdesigner tritt während einer Debug-Sitzung ein Fehler auf. Die Musterdesigner-Meldung enthält die Informationen zu einem Fehler, der durch eine Zeitüberschreitung verursacht wurde. | Beim Musterdesigner tritt ein Fehler aufgrund einer Zeitüberschreitung beim Muster-Debugging auf (und nicht während der Discovery). | Standardmäßig ist der Parameter sa.debugger.max_timeout auf 240 Sekunden festgelegt. Erhöhen Sie den Wert dieses Parameters auf dem betreffenden MID-Server. |
Informationen zur Ausführung des Musters Kubernetes im Debug-Modus finden Sie in KB0832567.