Détection de Kubernetes

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 26 minutes de lecture
  • L’recherche ServiceNow Visibilité ITOMKubernetes et OpenShift composant et crée des services d’application qui les contiennent. Découverte trouve Kubernetes également des événements et met fréquemment à jour le CMDB pour refléter l’environnement dynamique Kubernetes .

    Découverteutilise le modèle et ses sections d’extension pour détecter Kubernetes les Kubernetes composants de Kubernetes la version 1.21 :
    • La Collect OpenShift info section d’extension du Kubernetes modèle détecte les OpenShift composants du Kubernetes déploiement. La section d’extension OpenShift Configuration de version est disponible à partir de la version 1.0.53 du magasin.
    • L'extension Service Mesh détecte les détails du maillage de service. Ces informations permettent au modèle de créer des relations service-service, affichées sous la forme Connects to::Connected. La détection de maillage de services nécessite le déploiement d’Istio sur votre cluster K8s (Kubernetes). La section d’extension Service Mesh est disponible dans les classes d’extension Kubernetes. Il est pris en charge lors de l’utilisation de la Madrid version ou d’une Now Platform version ultérieure.
    • Collect Container Repository et la section d'extension recherchent des registres de conteneurs et des images dans ces registres.

    En outre, Découverte utilise le modèle Event pour détecter des événements pour Kubernetes les composants pour les Kubernetes versions Kubernetes 1.21.

    À partir de la version ServiceNow StoreMappage des services 1.0.68, vous pouvez utiliser des relations CI pour ajouter des composants aux services d’application lors de la détection basée sur les Kubernetes balises.

    Découverte utilise les modèles suivants pour détecter l’intégralité Kubernetes de l’infrastructure déployée sur GCP, AWS et Azure :
    • Google Cloud Platform (GCP) : obtenir Kubernetes des grappes.
    • Amazon Web Services (AWS) : obtenir Kubernetes des grappes.
    • Services de cloud computing Microsoft Azure : obtenir Kubernetes des grappes.
    Ces modèles interrogent le cloud, collectent des données sur tous les clusters Kubernetes, et créent un calendrier sans serveur pour chaque cluster. Lorsque la grappe est supprimée, le calendrier est marqué comme inactif. Cette fonctionnalité élimine les frais généraux de création et de gestion de plusieurs informations d'identification et calendriers de détection sans serveur par cluster. Les modèles d'infrastructure dans le cloud sont déclenchés via la détection standard dans le cloud.

    Demander des applications dans l'App Store

    Visitez le site Web ServiceNow Store pour découvrir toutes les applications disponibles et pour obtenir des informations sur la procédure à suivre pour soumettre des demandes à la boutique. Pour obtenir des informations sur les notes de publication cumulatives pour toutes les applications publiées, consultez les ServiceNow Storenotes de publication relatives à l'historique des versions.

    Prérequis

    Remarque :
    Pour connaître les conditions préalables à Kubernetes la détection de l’infrastructure dans le cloud, consultez la rubrique ci-dessous.
    Remarque :
    L’exécution automatique des calendriers sans Kubernetes serveur récupère le jeton Bearer. Il n’est pas nécessaire d’ajouter des informations d’identification.
    Effectuez les étapes suivantes pour vous assurer que Découverte le modèle peut être utilisé pour réussir à rechercher Kubernetes.
    1. Déployez la dernière version de l'application Discovery and Service Mapping Patterns à partir de ServiceNow Store.
    2. Sur la Kubernetes plateforme, recherchez les paramètres pour configurer Kubernetes Discovery :
      • Rechercher l'URL du serveur kubeapi :
        1. Sur la Kubernetes plateforme, exécutez la commande suivante :

          kubectl cluster-info

        2. Dans la sortie, recherchez la ligne qui indique l'URL du serveur kubeapi. Par exemple, Kubernetes le plan de contrôle s’exécute à

          https://10.154.144.146:443

      • Recherchez les espaces de noms du serveur kubeapi :
        1. Sur la Kubernetes plateforme, exécutez cette commande :

          kubectl get namespaces

        2. Dans la sortie, recherchez la ligne qui indique les espaces de noms. Par exemple, kube-system.
      • Trouvez le nom d’utilisateur et le Kubernetes mot de passe :
        1. Sur la Kubernetes plateforme, exécutez cette commande :

          kubectl config view

        2. Dans la sortie, recherchez le nom d'utilisateur et le mot de passe.Localisez les lignes qui contiennent des informations sur le mot de passe et le nom d'utilisateur.
          Remarque :
          Si dans un certain environnement, la commande kubectl config view n’affiche pas les détails attendus, utilisez la commande prise en charge par l’administrateur Kubernetes pour récupérer les détails du nom d’utilisateur et du mot de passe.
      • Recherchez le jeton Bearer valide avec les autorisations appropriées :
        1. Si vous n’avez pas le nom du jeton par défaut, utilisez la commande : kubectl describe secret.
        2. Lasortie affiche tous les comptes et tous les jetons. Recherchez le jeton valide :

          kubectl est le compte générique Kubernetes , describe est la méthode générique kubectl.

          Le paramètre secret reflète le fait que dans votre Kubernetes cluster, le jeton par défaut est protégé en le contenant à l’intérieur de l’objet de type secret .

          kubectl décrire la sortie de la commande secrète est au format codé BASE64.

        3. Si vous connaissez le nom du jeton par défaut, utilisez la commande suivante : kubectl describe secret default-token-g6pwc

          Le default-token-g6pwc reflète la valeur de paramètre du jeton par défaut pour g6pwc.

        4. La sortie affiche tous les jetons existants pour ce Kubernetes compte.

          Choisissez un jeton à utiliser pour configurer Kubernetes les informations d’identification sur la ServiceNow plateforme.

    3. Assurez-vous que le serveur d’API est accessible à partir du serveur MID pour une détection réussie Kubernetes .
    4. Assurez-vous que l’utilisateur configuré sur la Kubernetes plateforme dispose des autorisations nécessaires pour exécuter les éléments /api/v1 suivants :
      • 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/networking.k8s.io/v1/ingresses
      • 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
    5. Pour détecter les OpenShift composants du Kubernetes déploiement, assurez-vous que l’utilisateur configuré sur la Kubernetes plateforme dispose des autorisations pour exécuter les éléments /api/v1 suivants :
      • /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
      Pour détecter les informations de maillage de service :
      • Déployez Istio sur votre grappe K8s.
      • Fournir l’URL de Prometheus.
      • Configurez Prometheus pour extraire les mesures à partir d'Istio.
    6. Activez l’extension Obtenir les fichiers de configuration Kubernetes pour :
      • Détecter les fichiers de configuration.
      • Créez des fichiers de configuration suivis.
      • Mappez les fichiers de configuration, les charges de travail et les services avec une relation.
      Remarque :
      Le contenu des fichiers suivis est au format JSON à partir de la version 1.0.92. Le contenu des fichiers suivis est au format YAML dans la version 1.0.91 et les versions antérieures.
    7. Créez les informations d’identification Kubernetes sur la ServiceNow plateforme :
      1. Sur la ServiceNow plateforme, accédez à Tout > Découverte > Informations d'identification.
      2. Sélectionnez Nouveau.
      3. Sélectionnez les informations d’identification Kubernetes.
      4. Configurez les champs de formulaire (voir table) :
        Champ Description
        Nom Entrez un nom unique et descriptif pour ces informations d'identification.
        Noms d'utilisateur Entrez le nom d'utilisateur ou créez-le dans la table Informations d'identification. Évitez les espaces blancs dans les noms d'utilisateur. Un avertissement apparaît si la plateforme détecte des espaces blancs dans le nom d'utilisateur.
        Mot de passe Entrez le mot de passe de ces informations d'identification.
        Jeton de porteur Pour une authentification avancée à l’aide d’un jeton Bearer, saisissez le jeton Bearer utilisé pour l’authentification Découverte lors de l’accès à Kubernetes. Utilisez la séquence de caractères en tant que jeton, par exemple, 31ada4fd-adec-460c-809a-9e56ceb75269.
        Remarque :
        Le jeton Bearer doit être au format codé BASE64.
        Authentification de jeton de porteur Pour une authentification avancée à l’aide d’un jeton Bearer, cochez cette case.
        Alias d'informations d'identification Configurez l’alias pour l’utilisation des informations d’identification pour les Kubernetes appareils et applications autres que Kubernetes. Vous utilisez également cet alias pour définir une planification de détection sans serveur afin de détecter le Kubernetes déploiement.
        1. Sélectionnez l’icône de cadenas, puis l’icône de recherche.
        2. Dans le formulaire Alias de connexion et d’informations d’identification, sélectionnez Nouveau.
        3. Spécifiez un nom pour l'enregistrement d'alias d'informations d'identification.
        4. Définissez des attributs pour l'alias. Définissez Type sur Informations d'identification.
        5. Cliquez avec le bouton droit sur l’en-tête du formulaire et sélectionnez Enregistrer, puis Mettre à jour.
        6. Dans le formulaire Alias de connexion et d’informations d’identification, sélectionnez l’alias que vous venez d’ajouter.

          L'alias apparaît dans le champ Alias d'informations d'identification.

      5. Dans le formulaire Informations d’identification Kubernetes , sélectionnez Mettre à jour.
    8. Créez un calendrier de détection sans serveur pour le Kubernetes modèle.
      Créez et définissez le modèle d'exécution sans serveur conformément à la description de la documentation du produit. Configurez les paramètres requis par le Kubernetes modèle comme suit :
      Tableau 1. Configurer des attributs de modèle d'exécution
      Champ Description
      URL L’identificateur du nom d’hôte, de l’adresse IP ou du nom de domaine complet et le port du serveur API Kubernetes . Utilisez le format suivant : example_hostname:example_port ou xample_ip:example_port. Fournissez le protocole correct (HTTP ou HTTPS) dans l'URL.
      espace de noms Les espaces de noms que le système transmet dans la Kubernetes configuration de Découverte. Saisissez l'une des valeurs suivantes :
      • Espace de noms individuel : entrez dans l’espace de noms, puis dans « kube-system ». Par exemple : dev,kube-system
      • La valeur par défaut : entrez la valeur par défaut, kube-system
      • Espaces de noms multipile : entrez les espaces de noms, utilisez une virgule (,) pour séparer les valeurs, puis entrez « kube-system ». Par exemple : automatisation, application, test, kube-system
      • Tous les espaces de noms : utilisez un astérisque (*) pour saisir tous les espaces de noms
      alias d'informations d'identification Alias associé aux informations d’identification créées Kubernetes précédemment.
      nom du cluster Nom de la Kubernetes grappe, au format suivant : <serviceaccountid><space><clustername>.
      fournisseur Le fournisseur du cloud : GCP, AWS ou Azure.
      cluster_resource_id Exemple d’ID de ressource de grappe :
      • Grappes Azure Kubernetes : ID de ressource.
      • AWS : ARN de la grappe.
      • GCP : nom global de la grappe.
    9. Créez un calendrier de détection sans serveur pour le modèle d’événement Kubernetes . Configurez l'exécution du calendrier toutes les 5 ou 10 minutes.
      Remarque :
      lorsque le modèle est exécuté pour la première fois, il stocke un élément event_timestamp. Plus tard, il collecte uniquement les événements delta en fonction de l'horodatage. Plus la fréquence d'exécution du modèle est élevée, moins les mises à jour de CMDB IRE sont nécessaires.

      Créez un modèle d’exécution sans serveur pour le calendrier de détection et affectez-le au modèle d’événements Kubernetes . Configurez les paramètres requis par le modèle, comme décrit à la Kubernetes section Configurer des attributs de modèle d'exécution.

    10. Pour inclure les composants détectés dans les services d'application, activez les relations CI utilisées dans la détection basée sur les balises par Mappage des services. Ces relations CI sont disponibles à partir de la version 1.0.68 sur ServiceNow Store. Pour les étapes opérationnelles, consultez la rubrique Configuration de la détection basée sur les balises.

    Prérequis pour la détection d'infrastructure dans le cloud Kubernetes

    Pour le Google Cloud Platform (GCP) modèle – Obtenir Kubernetes des grappes, procédez comme suit :

    1. Dans l'instance ServiceNow, configurez un compte de service Google Cloud Platform (GCP) avec des informations d'identification et des autorisations valides.
    2. Sur l’infrastructure, configurez le avec un accès complet à toutes les API dans le cloud : définissez les périmètres d’accès de l’API Serveur MID dans le cloud sur « Autoriser l’accès complet à toutes les API dans le GCP cloud ». L’instance de Serveur MID ne peut accéder qu’aux grappes spécifiques au projet.
    3. Accédez à sys_properties.list et configurez les propriétés suivantes :
      • sn_itom_pattern.k8s_midserver : spécifiez un nom de MID Server valide.
      • sn_itom_pattern.k8s_create_schedule_enabled : définissez la valeur sur vrai.
    4. Créer et exécuter Google Cloud Découverte
      Remarque :

      Pour récupérer le jeton Bearer, tout en exécutant le calendrier GKE Kubernetes , utilisez la commande gcloud :

      gcloud config config-helper --format="value(credential.access_token) »

      La configuration de gcloud dans l’instance du MID Server accorde l’accès à la grappe GKE pour récupérer le jeton.

    Pour la détection de Amazon Elastic Kubernetes Service (EKS) grappe, procédez comme suit :

    1. Dans l'instance ServiceNow, définissez un compte de service AWS avec des informations d'identification et des autorisations de compte de gestion valides.
      1. Assurez-vous que la grappe dispose d’un Amazon Elastic Kubernetes Service (EKS) rôle de grappe avec un accès en lecture seule à toutes les ressources.
      2. Créez une liaison de rôle de cluster entre le rôle de cluster et un utilisateur Kubernetes. Par exemple, utilisateur en lecture seule.
      3. Créez un rôle AWS IAM avec la politique EKSReadOnly.
      4. Associez le rôle IAM à l'utilisateur Kubernetes de l'une des façons suivantes :
        • Dans le cluster, modifiez aws-auth ConfigMap.
        • Exécutez la commande suivante :

          eksctl create iamidentitymapping --cluster yourClusterName --arnarn:aws:iam::yourAccountID:role/yourIAMRoleName --username read-only-user

    2. Exécutez Amazon Elastic Kubernetes Service (EKS) la détection de grappe de l’une des deux façons suivantes : à l’aide de l’interface AWS de ligne de commande (CLI) ou sans utiliser l’interface de ligne de AWS commande. Commencez par définir la propriété système sn_itom_pattern.k8s_aws_cli_to_generate_token pour utiliser le modèle que vous choisissez. Par défaut, cette propriété système est définie sur true .

      • Définissez cette propriété système sur vrai pour utiliser AWS l’interface de ligne de commande afin de générer un jeton.

      • Définissez cette propriété système sur faux pour utiliser les rôles d’endossement afin de générer un jeton.

      1. Exécutez la Amazon Elastic Kubernetes Service (EKS) détection de grappe à l’aide de l’interface de ligne de AWS commande :

        1. Configurez le Serveur MID avec l’interface de ligne de AWS commande configurée. La configuration AWS des informations d’identification CLI accorde l’accès à la Amazon Elastic Kubernetes Service (EKS) grappe.

          Remarque :
          L’utilisateur connecté au système doit être le même que l’utilisateur Serveur MID .
        2. Pour générer le jeton Bearer, lors de l’exécution du Amazon Elastic Kubernetes Service (EKS) calendrier, utilisez la AWS commande CLI : aws eks get-token --cluster-name <cluster_name>.

          La configuration de l’utilisateur/du AWS rôle CLI dans l’instance accorde l’accès Serveur MID à la Amazon Elastic Kubernetes Service (EKS) grappe pour générer le jeton.

      2. Exécuter la Amazon Elastic Kubernetes Service (EKS) découverte de grappe sans utiliser l’interface de ligne de AWS commande :

        Remarque :

        Cette fonctionnalité est prise en charge à partir de la Modèles de détection et de mappage des services version 1.0.96 - décembre 2022.

        Consultez la base de connaissances suivante pour obtenir des instructions détaillées : KB1182188 : détection de grappe EKS à l’aide de STS AssumeRoles (sans AWS CLI)

    3. Accédez à sys_properties.list et configurez les propriétés suivantes :
      • sn_itom_pattern.k8s_midserver: spécifiez un nom valide Serveur MID .
      • sn_itom_pattern.k8s_create_schedule_enabled : définissez la valeur sur vrai.
    4. Créez et exécutez un calendrier de détection dans le cloud AWS.

    Pour Microsoft Azure Kubernetes Services (AKS) : Kubernetes détection de grappes, procédez comme suit :
    Remarque :
    Le modèle prend en charge la Kubernetes détection des versions de grappes AKS antérieures à la version 1.24.
    1. Effectuez une mise à jour vers la dernière Modèles de détection et de mappage des services version.
    2. Dans l’instance ServiceNow , configurez le compte de Azure service avec des informations d’identification et une autorisation valides Azure .
    3. Accédez à sys_properties.list et configurez les propriétés suivantes :
      • sn_itom_pattern.k8s_midserver : spécifiez un nom de serveur MID valide.
      • sn_itom_pattern.k8s_create_schedule_enabled : définir la valeur sur vrai.
      • sn_itom_pattern.aks_fetch_local_ad_token : cette propriété est définie sur vrai par défaut. Si vous n’avez pas de comptes locaux avec Kubernetes RBAC, vous pouvez définir cette propriété sur False pour augmenter l’efficacité du modèle.
    4. Exécutez une planification de détection dans le Azure cloud.
    5. Configurez les Serveur MID dans les Découverte calendriers en fonction du type de compte de grappe. Si vous n’avez pas de comptes locaux avec RBAC, vous pouvez ignorer cette étape.

      Type de compte de grappe Découverte horaire Serveur MID

      Authentification MS Entra ID avec Kubernetes RBAC.

      N’importe quel Serveur MIDfichier .

      Authentification MS Entra ID avec Azure RBAC.

      N’importe quel Serveur MIDfichier .

      Comptes locaux avec Kubernetes RBAC.

      Sélectionnez le Serveur MID avec l’interface de ligne de Azure commande (CLI) configurée. La configuration des informations d’identification Azure CLI accorde l’accès au cluster AKS.

      Pour récupérer le jeton Bearer lors de l’exécution du calendrier AKS Kubernetes , utilisez la Azure commande CLI : az aks get-credentials --name <cluster_name> --overwrite-existing --resource-group <resourceGroup_name> --file -.

      Remarque :
    Tableau 2. Autre configuration système prise en charge
    Nom de la propriété Description de la propriété Type Valeur par défaut

    sn_itom_pattern.manifest_digest_image_id

    Booléen

    faux

    Remarque :
    Avant de définir cette propriété sur vrai et d’exécuter la découverte : empêchez la création d’enregistrements en double en supprimant tous les Docker enregistrements d’images.

    sn_itom_pattern.k8s_create_schedule_enabled

    Marqueur de fonctionnalité activable/désactivé dans les propriétés système, qui est chargé de contrôler l’exécution du modèle. Lorsqu’elle est activée, elle crée des calendriers de détection malgré la nouvelle valeur de propriété.

    Booléen faux
    sn_itom_k8s_run_cloud_discovery Lorsqu’elle est activée, cette propriété exécute des modèles k8s dans le cloud, détectant les grappes k8s sans créer de calendriers automatiques. Booléen faux
    MID Server

    sn_itom_pattern.k8s_midserver

    [Par défaut]

    Exemple : nom de serveur MID valide

    Chaîne

    sn_itom_pattern.k8s_<service_account_id>_midserver

    [En fonction du niveau du compte de service]

    Exemple : nom de serveur MID valide

    Chaîne

    sn_itom_pattern.k8s_<service_account_id>_<clustername>_midserver

    [Basé sur le nom de la grappe]

    Exemple : nom de serveur MID valide

    Chaîne

    sn_itom_pattern.kubernetes_collect_volume

    Lorsque la propriété est définie sur Vrai, les données du volume Kubernetes [cmdb_ci_kubernetes_volume] sont renseignées.

    Chaîne faux
    Alias d'informations d'identification

    sn_itom_pattern.k8s_ cred_alias

    [Par défaut]

    Exemple : nom de l’alias d’informations d’identification

    Chaîne

    sn_itom_pattern.k8s_<service_account_id>_alias

    [En fonction du niveau du compte de service]

    Exemple : nom d’alias d’informations d’identification valide.

    Chaîne

    sn_itom_pattern.k8s_<service_account_id>_<clustername>_alias

    [Basé sur le nom de la grappe]

    Exemple : nom d’alias d’informations d’identification valide.

    Chaîne
    URL de Prométhée

    sn_itom_pattern.k8s_ prometheusUrl

    [Par défaut]

    Exemple : URL Prometheus valide

    Chaîne

    sn_itom_pattern.k8s_<service_account_id>_prometheusUrl

    [En fonction du niveau du compte de service]

    Exemple : URL Prometheus valide

    Chaîne

    sn_itom_pattern.k8s_<service_account_id>_<clustername>_prometheusUrl

    [Basé sur le nom de la grappe]

    Exemple : URL Prometheus valide

    Chaîne

    sn_itom_pattern.k8s_ exécuter

    [Exécution du calendrier de découverte prise en charge : quotidien, sur demande, jours de la semaine, week-ends, dernier jour du mois, fin de trimestre civil]

    Exemple : Quotidien

    Chaîne

    sn_itom_pattern.k8s_batch_count

    [Fait référence au nombre de calendriers à exécuter par lots ; valeur par défaut définie sur 5]

    Exemple : 5 (nombre de calendriers à exécuter par lot)

    Entier 5

    sn_itom_pattern.k8s_schedule_batch_delay

    [Effectue le suivi de la différence de temps entre deux valeurs de lots contenues en secondes]

    Exemple : 300 (en secondes)

    Entier

    sn_itom_pattern.k8s_run_time

    [Effectue le suivi de l’heure actuelle d’un lot]

    Si cette propriété est définie, vous pouvez utiliser la même chose ou vous pouvez utiliser notre synchronisation dynamique, qui sera de 5 minutes après la synchronisation actuelle du système. Valeurs contenues au format HH :MM :SS

    Exemple : 10:11:12 (HH :MM :SS)

    Chaîne
    Remarque :
    <service_account_id> s’agit du nom de l’ID de compte sous Comptes de service dans le cloud. Pour plus d’informations, voir : Créer des calendriers pour la détection des ressources dans le cloud dans Détection dans le cloud

    Kubernetes Discovery sans informations d’identification ou au milieu de la grappe

    Conditions préalables pour Kubernetes la détection sans informations d’identification :

    Déployez le serveur MID conteneurisé sur la Kubernetes grappe. Il n’est pas nécessaire de configurer Kubernetes les informations d’identification, car le serveur MID de Kubernetes la grappe détecte automatiquement le serveur d’API et s’authentifie.

    Tableau 3. Configuration des attributs de modèle d’exécution pour la détection sans informations d’identification
    Champ Description
    URL

    Entrez l’une des valeurs suivantes dans le champ URL :

    https://cluster

    Ou

    https://kubernetes.default.svc

    espace de noms

    Les espaces de noms que le système transmet dans la Kubernetes configuration de Découverte. Saisissez l'une des valeurs suivantes :

    • Espace de noms individuel : entrez dans l’espace de noms, puis dans « kube-system ». Par exemple : dev,kube-system
    • Valeur par défaut. Entrer :default,kube-system
    • Espaces de noms multipile : entrez les espaces de noms, utilisez une virgule (,) pour séparer les valeurs, puis entrez « kube-system ». Par exemple : automatisation, application, test, kube-system
    • Tous les espaces de noms : utilisez un astérisque (*) pour saisir tous les espaces de noms.
    cluster_name Entrez un nom unique.

    Données collectées par Découverte lors d'une détection horizontale

    Table et champ Description
    Kubernetes Grappe [cmdb_ci_kubernetes_cluster]
    Nom Le nom du leader kube-controller-manager.
    K8s_uid UID de l’espace de noms kube-system [versions prises en charge : 1.0.92 et ultérieures]
    ip_address L’identificateur de l’host_ip du serveur API Kubernetes .
    port

    L’identificateur du port du Kubernetes serveur API.

    espace de noms Cette valeur indique les espaces de noms transmis par le système dans la configuration de Découverte Kubernetes .
    event_timestamp Horodatage du dernier événement créé sur cette Kubernetes grappe au moment de la détection.
    Kubernetes Nœud [cmdb_ci_kubernetes_node] L’aspect virtuel du Kubernetes nœud. Les données relatives à l’aspect physique du nœud sont stockées sous Linux le Kubernetes serveur.
    name Nom du Kubernetes nœud. Le format ne peut être que le nom de l'ordinateur ou le nom complet composé du nom et du nom d'hôte : <name>.<hostname> .
    k8s_uid Identificateur de l’UUID Kubernetes du nœud.
    grappe Nom de la grappe qui contient cette ressource.
    operational_status État opérationnel du Kubernetes nœud.
    Kubernetes Service [cmdb_ci_kubernetes_service]
    name Le nom du Kubernetes service.
    sélecteur Liste séparée par des virgules des sélecteurs d’étiquettes spécifiés dans la Kubernetes configuration qui sont utilisés pour sélectionner les pods cibles.
    espace de noms Espace Kubernetes de noms auquel ce Kubernetes service appartient.
    k8s_uid UUID Kubernetes du service.
    grappe Nom de la grappe qui contient cette ressource.
    Kubernetes Pod [cmdb_ci_kubernetes_pod]
    name Nom du Kubernetes pod.
    k8s_uid L’UUID Kubernetes du pod.
    resourceVersion Version de ressource du Kubernetes pod.
    espace de noms Espace Kubernetes de noms auquel ce Kubernetes pod appartient.
    grappe Nom de la grappe qui contient cette ressource.
    État

    État du Kubernetes pod : En attente, En cours d’exécution, Réussi, Échoué et Inconnu.

    Kubernetes Cronjob [cmdb_ci_kubernetes_cronjob]
    name Le nom de la Kubernetes tâche cronjob
    espace de noms Espace Kubernetes de noms auquel ce Kubernetes pod appartient.
    k8s_uid L’UUID Kubernetes cronjob.
    grappe Nom de la grappe qui contient cette ressource.
    Kubernetes Tâche [cmdb_ci_kubernetes_job]
    name Nom de la Kubernetes tâche
    espace de noms Espace Kubernetes de noms auquel cette Kubernetes tâche appartient.
    k8s_uid L’UUID Kubernetes de la tâche
    grappe Nom de la grappe qui contient Kubernetes la tâche.
    Kubernetes DaemonSet [cmdb_ci_kubernetes_daemonset]
    name Le nom du Kubernetes démonset.
    espace de noms Espace Kubernetes de noms auquel ce Kubernetes DaemonSet appartient.
    k8s_uid UUID Kubernetes Daemonset.
    grappe Nom de la grappe qui contient cette ressource.
    pods_avail Nombre de pods disponibles.
    pods_failed Nombre de pods en phase d’échec.
    pods_running Nombre de pods dans la phase d’exécution.
    pods_succeeded Nombre de pods dans la phase Réussi.
    pods_waiting Nombre de pods dans la phase En attente.
    Kubernetes Entrée [cmdb_ci_kubernetes_ingress]
    name Nom de l’entrée Kubernetes
    espace de noms Espace Kubernetes de noms auquel cette Kubernetes entrée appartient.
    k8s_uid UID Kubernetes d’entrée
    grappe Nom de la grappe qui contient cette ressource.

    Kubernetes Déploiement [cmdb_ci_kubernetes_deployment]

    Kubernetes Ensemble de répliques [cmdb_ci_kubernetes_replicaset]

    Kubernetes Contrôleur de réplication [cmdb_ci_kubernetes_replicationcontroller]

    Kubernetes Statefulset [cmdb_ci_kubernetes_statefulset]

    name Nom de cette ressource
    espace de noms Espace Kubernetes de noms auquel cette ressource appartient.
    K8s_uid UID Kubernetes de cette ressource
    grappe Nom de la grappe qui contient cette ressource.
    total_replicas Nombre de répliques dans cette ressource
    desired_replicas Nombre de répliques dans la phase souhaitée
    available_replicas Nombre de répliques disponibles
    unavailable_replicas Nombre de répliques en phase indisponible
    updated_replicas Nombre de répliques mises à jour
    Conteneur Docker [cmdb_ci_docker_container] Le composant qui exécute l'image Docker.
    container_id L’identificateur unique du Kubernetes conteneur Docker

    Dans les cas où des enregistrements en double sont créés, les tâches de déduplication apparaissent une fois la détection exécutée. Pour plus d’informations sur la résolution de ces tâches, consultez l’article Rendre l’identificateur de conteneur Docker indépendant [KB1443042] dans le ServiceNow® Base de connaissances.

    espace de noms Espace Kubernetes de noms auquel ce Kubernetes conteneur Docker appartient
    Image de Docker [cmdb_ci_docker_image] Package exécutable d’une application et de ses logiciels connexes qui peuvent être instanciés par un conteneur Docker
    image_id L’identificateur de l’image de Docker Kubernetes
    name Le nom de l’image Kubernetes Docker.
    image_url L'URL pour le téléchargement de l'image Docker.
    espace de noms Espace Kubernetes de noms auquel cette Kubernetes image Docker appartient.
    Serveur Linux [cmdb_ci_linux_server] Le serveur qui héberge le Kubernetes nœud.
    name Le nom du serveur Linux alimentant le Kubernetes nœud.
    hostname Le nom d'hôte du serveur Linux.
    os Le système d'exploitation déployé sur ce serveur Linux.
    kernel_release La version du système d'exploitation du noyau Linux déployée sur ce serveur Linux.
    ram La taille de la RAM installée sur ce serveur Linux.
    ip_address L'adresse IP du serveur Linux.
    Valeur clé [cmdb_key_value] Cet élément de configuration contient Kubernetes des étiquettes. Les étiquettes sont des paires clé/valeur qui sont associées à des objets, tels que des pods.
    key Clé du pod ou Kubernetes paramètre Kubernetes de serviceKey Value.
    valide Valeur du pod ou Kubernetes du Kubernetes paramètre de serviceKey Value.
    Kubernetes Volume [cmdb_ci_kubernetes_volume]
    k8s_uid UUID Kubernetes de volume.
    mount_path Chemin d’accès à ce Kubernetes volume.
    name Nom du Kubernetes volume.
    espace de noms Espace Kubernetes de noms auquel ce Kubernetes volume appartient.
    grappe Nom de la grappe qui contient cette ressource.
    volume_id ID du Kubernetes volume.
    OpenShift Configuration déployée [cmdb_ci_openshift_dep_conf]
    name Nom de la OpenShift configuration du déploiement.
    espace de noms Le nom de l'espace de noms contenant la configuration du déploiement.
    k8s_uid UUID Kubernetes de volume.
    URL URL de la OpenShift configuration déployée.
    OpenShift Configuration de la version [cmdb_ci_openshift_build_conf]
    name Nom de la configuration de build OpenShift .
    espace de noms Le nom de l’espace OpenShift de noms contenant la configuration de build.
    k8s UUID Kubernetes de volume.
    URL URL de la configuration de build OpenShift .
    OpenShift Image Source2 [cmdb_ci_openshift_source_2_image]
    name Le nom de l'image source OpenShift.
    à Image connexe.
    parent_id ID de l’image OpenShift source.
    OpenShift Acheminement [cmdb_ci_openshift_route]
    name Nom de l’itinéraire OpenShift .
    espace de noms Nom de l’espace de noms contenant l’itinéraire OpenShift .
    k8s_uid UUID Kubernetes de volume.
    URL L’URL de l’itinéraire OpenShift .
    hôte L’hôte cible de l’itinéraire OpenShift .
    port Port cible de l’itinéraire OpenShift .
    OpenShift Groupe [cmdb_ci_openshift_group]
    name Le nom du OpenShift groupe.
    k8s_uid UUID Kubernetes de volume.
    URL L’URL du OpenShift groupe.
    OpenShift Utilisateur [cmdb_ci_openshift_user]
    name Le nom de l’utilisateur OpenShift .
    k8s_uid UUID Kubernetes de volume.
    URL L’URL de l’utilisateur OpenShift .
    full_name Le nom complet de l’utilisateur OpenShift .
    OpenShift Projet [cmdb_ci_openshift_project]
    name Le nom du OpenShift projet.
    k8s_uid UUID Kubernetes de volume.
    URL L’URL du OpenShift projet.
    OpenShift Image [cmdb_ci_openshift_images]
    name Nom de l’image OpenShift .
    k8s_uid UUID Kubernetes de volume.
    URL L’URL de l’image OpenShift .
    docker_image_metadata_id L'ID de l'image Docker.
    docker_image_metadata_parent_id L'ID parent de l'image.
    arch Architecture de l'image.
    size La taille de l'image.
    hostname Le nom d'hôte associé à l'image.
    OpenShift Flux d’images [cmdb_ci_openshift_images_stream]
    name Nom du OpenShift flux d’images.
    k8s_uid UUID Kubernetes de volume.
    URL URL du flux d’imagesOpenShift.
    espace de noms Le nom de l’espace de noms contenant le flux d’images OpenShift .
    OpenShift Référentiel d’images Docker [cmdb_ci_openshift_docker_images_repository]
    name Le nom du OpenShift référentiel d’images Docker.
    parent_id L'ID du système parent.
    Espace de noms [cmdb_ci_kubernetes_namespace]
    name Nom de l’espace Kubernetes de noms.
    État

    Les Kubernetes phases de l’espace de noms : Actif ou Fin d’exécution.

    Ces données sont collectées par la section d'extension Collect Container Repository.
    Table et champ Description
    Référentiel du conteneur [cmdb_ci_container_repository]
    Nom [name] Le nom du référentiel de conteneur.
    Entrée du référentiel du conteneur [cmdb_ci_container_repository_entry]
    Nom [name] Le nom de l'entrée du référentiel du conteneur.
    Catégorie [category] Catégorie de l'entrée du référentiel du conteneur.
    Le graphique illustre les CI qui font partie de la Kubernetes détection.
    Remarque :
    cette carte Vue des dépendances a été simplifiée pour plus de clarté. Vos Kubernetes déploiements peuvent contenir beaucoup plus de CI.
    Figure 1. Composants du Kubernetes déploiement

    Composants du déploiement Kubernetes
    Figure 2. Composants du Kubernetes déploiement, y compris OpenShift

    Composants du déploiement Kubernetes, y compris OpenShift

    Relations CI collectées par le modèle Kubernetes

    Ces relations sont créées par Kubernetes modèle :
    CI Relation CI
    Kubernetes Grappe [cmdb_ci_kubernetes_cluster] Contient::Contenu par

    Kubernetes Service [cmdb_ci_kubernetes_service]

    Contient::Contenu par Kubernetes Pod [cmdb_ci_kubernetes_pod]
    Contient::Contenu par Kubernetes Entrée [cmdb_ci_kubernetes_ingress]
    Contient::Contenu par

    Kubernetes Espace de noms [cmdb_ci_kubernetes_namespace]

    Contient::Contenu par [cmdb_ci_openshift_source_2_image]
    Contient::Contenu par OpenShift Groupe [cmdb_ci_openshift_group]
    Contient::Contenu par OpenShift Utilisateur [cmdb_ci_openshift_user]
    Contient::Contenu par OpenShift Projet [cmdb_ci_openshift_project]
    Contient::Contenu par OpenShift Image [cmdb_ci_openshift_images]
    Contient::Contenu par OpenShift Référentiel d’images Docker [cmdb_ci_openshift_docker_images_repository]
    Cluster of::Cluster Kubernetes Nœud [cmdb_ci_kubernetes_node]
    Manages::Managed by Serveur Linux [cmdb_ci_linux_server]
    Contenu par::Contient Groupe de ressources [cmdb_ci_resource_group]
    Kubernetes Pod [cmdb_ci_kubernetes_pod] Contient::Contenu par Conteneur Docker [cmdb_ci_docker_container]
    Contient :: Contenu par Image de Docker [cmdb_ci_docker_image]
    Contient::Contenu par Kubernetes Volume [cmdb_ci_kubernetes_volume]

    Kubernetes Charge de travail [cmdb_ci_kubernetes_workload]

    Hébergé sur::Hôtes Kubernetes Grappe [cmdb_ci_kubernetes_cluster]
    Service Kubernetes [cmdb_ci_kubernetes_service] Fournit ::P fourni par

    Kubernetes Charge de travail [cmdb_ci_kubernetes_workload]

    Déploiement Kubernetes [cmdb_ci_kubernetes_deployment]

    Possède ::Propriété de

    Kubernetes Ensemble de répliques [cmdb_ci_kubernetes_replicaset]

    Kubernetes Ensemble de répliques [cmdb_ci_kubernetes_replicaset]

    iInstanciation :: Instancié par Kubernetes Pod [cmdb_ci_kubernetes_pod]
    Kubernetes Charge de travail [cmdb_ci_kubernetes_workload] Provided By::Provides To Kubernetes Service [cmdb_ci_kubernetes_service]
    Kubernetes Déploiement [cmdb_ci_kubernetes_deployment] Hébergé sur::Hôtes Kubernetes Grappe [cmdb_ci_kubernetes_cluster]
    Kubernetes DaemonSet [cmdb_ci_kubernetes_daemonset] Hébergé sur::Hôtes Kubernetes Grappe [cmdb_ci_kubernetes_cluster]
    Kubernetes Statefulset [cmdb_ci_kubernetes_statefulset] Hébergé sur::Hôtes Kubernetes Grappe [cmdb_ci_kubernetes_cluster]
    Kubernetes Espace de noms [cmdb_ci_kubernetes_namespace] Contient::Contenu par OpenShift Configuration déployée [cmdb_ci_openshift_dep_conf]
    Contient::Contenu par OpenShift Configuration de la version [cmdb_ci_openshift_build_conf]
    Contient::Contenu par OpenShift Acheminement [cmdb_ci_openshift_route]
    Contient::Contenu par OpenShift Flux d’images [cmdb_ci_openshift_images_stream]
    Image de Docker [cmdb_ci_docker_image] Instantiates::Instantiated by Conteneur Docker [cmdb_ci_docker_container]
    Serveur Linux [cmdb_ci_linux_server] Contient::Contenu par Kubernetes Pod [cmdb_ci_kubernetes_pod]
    Runs::Runs on Conteneur Docker [cmdb_ci_docker_container]
    Hosts::Hosted on Kubernetes Nœud [cmdb_ci_kubernetes_node]
    OpenShift Configuration du déploiement [cmdb_ci_openshift_dep_conf] Contient::Contenu par [cmdb_ci_config_file_tracked​]
    La section d'extension Collect Container Repository du modèle Kubernetes identifie les relations suivantes.
    CI Relation CI
    Image de Docker [cmdb_ci_docker_image] Mis en service à partir de::Mis en service Entrée du référentiel du conteneur [cmdb_ci_container_repository_entry]
    Entrée du référentiel du conteneur [cmdb_ci_container_repository_entry] Hébergé sur::Hôtes Référentiel du conteneur [cmdb_ci_container_repository]

    Relations CI collectées par l’extension Istio Service Mesh

    Conditions préalables pour l’extension Istio Service Mesh :

    • Assurez-vous que les composants Istio Service Mesh et Prometheus sont configurés sur la Kubernetes grappe.
    • Assurez-vous que Prometheus détecte les informations de connexion de service à l’aide de la commande queryistio_requests_total .
    • Assurez-vous que les services d’application sont connectés et vérifiez le flux de trafic de service à service dans le graphique Kiali.

    Pour plus d’informations sur l’application Bookinfo, voir : https://istio.io/latest/docs/examples/bookinfo/

    CI Relation CI
    Kubernetes Service [cmdb_ci_kubernetes_servi ce] Se connecte à ::Connecté par Kubernetes Service [cmdb_ci_kubernetes_servi ce]

    Relations CI collectées par le modèle d’événement Kubernetes

    Ces relations sont créées pour prendre en charge la détection d’événements Kubernetes :
    CI Relation CI
    Kubernetes Grappe [cmdb_ci_kubernetes_cluster] Contient::Contenu par

    Kubernetes Service [cmdb_ci_kubernetes_service]

    Contient::Contenu par Kubernetes Pod [cmdb_ci_kubernetes_pod]
    Cluster of::Cluster Kubernetes Nœud [cmdb_ci_kubernetes_node]
    Manages::Managed by [cmdb_ci_linux_server]
    Kubernetes Pod [cmdb_ci_kubernetes_pod] Contient::Contenu par Conteneur Docker [cmdb_ci_docker_container]
    Contient :: Contenu par Image de Docker [cmdb_ci_docker_image]
    Contient::Contenu par Kubernetes Volume [cmdb_ci_kubernetes_volume]
    Image de Docker [cmdb_ci_docker_image] Instantiates::Instantiated by Conteneur Docker [cmdb_ci_docker_container]
    Serveur Linux [cmdb_ci_linux_server] Contient::Contenu par Kubernetes Pod [cmdb_ci_kubernetes_pod]
    Runs::Runs on Conteneur Docker [cmdb_ci_docker_container]
    Hosts::Hosted on Kubernetes Nœud [cmdb_ci_kubernetes_node]

    Données collectées par Mappage des services lors de la détection basée sur les balises

    Mappage des servicesutilise la détection basée sur les balises pour créer des cartes de service d’application, y compris les composants. Mappage des services est livré avec les relations CI préconfigurées suivantes utilisées pour la détection basée sur les Kubernetes balises. Ces relations CI sont disponibles à partir de la version 1.0.68 sur ServiceNow Store.
    CI Relation CI
    Service Kubernetes [cmdb_ci_kubernetes_service] Contenu par::Contient Grappe Kubernetes [cmdb_ci_kubernetes_cluster]
    Projet OpenShift [cmdb_ci_openshift_project] Contenu par::Contient Grappe Kubernetes [cmdb_ci_kubernetes_cluster]
    Pod Kubernetes [cmdb_ci_kubernetes_pod] Contenu par::Contient Grappe Kubernetes [cmdb_ci_kubernetes_cluster]
    Pod Kubernetes [cmdb_ci_kubernetes_pod] Grappe::Grappe de Service Kubernetes [cmdb_ci_kubernetes_service]
    Espace de noms Kubernetes [cmdb_ci_kubernetes_namespace]​ Contient::Contenu par Configuration déployée OpenShift [cmdb_ci_openshift_dep_conf​]
    Espace de noms Kubernetes [cmdb_ci_kubernetes_namespace]​ Contient::Contenu par Configuration de la version OpenShift [cmdb_ci_openshift_build_conf]
    Espace de noms Kubernetes [cmdb_ci_kubernetes_namespace]​ Contient::Contenu par Route OpenShift [cmdb_ci_openshift_route]
    Espace de noms Kubernetes [cmdb_ci_kubernetes_namespace]​ Contient::Contenu par Flux d'images OpenShift [cmdb_ci_openshift_images_stream]

    Tableau de bord de Kubernetes

    Une fois Découverte la Kubernetes détection des composants du déploiement terminée, vous pouvez accéder à Tout > Configuration > Kubernetes et affichez les statistiques sur les composants détectés Kubernetes . Pour plus d’informations, consultez Tableau de bord Kubernetes.

    Après la mise à niveau vers Espace de travail de l'administrateur de Découverte version 1.3.1 (Store août 2024), vous pouvez accéder à Espaces de travail > Espace de travail administrateur de découverte > Aperçu et utiliser le tableau de bord amélioré.

    Dépannage

    Si le processus de mappage ne se déroule pas comme prévu, suivez les suggestions ci-après.
    Symptôme Cause Solution
    Échec de la détection. Le message de détection fait état d'une erreur liée au délai d'expiration de REST. De nombreux CI envoient la réponse d'appel REST dans le déploiement. Le Serveur MID ne peut pas traiter la réponse d'appel REST sans dépasser la limite de temps contrôlée par le paramètre mid.sa.cloud.request_timeout. Par défaut, le paramètre mid.sa.cloud.request_timeout est défini sur 30 000 millisecondes.
    Augmentez la valeur de ce paramètre sur le Serveur MID pertinent et relancez la détection.
    Remarque :
    Si la liste connexe Paramètres de configuration pour le Serveur MID pertinent n'affiche pas ce paramètre, vous devrez peut-être l'ajouter.
    Concepteur de modèle échoue lors d'une session de débogage. Le message de Concepteur de modèle fait état d'une erreur liée au délai d'expiration. Concepteur de modèle échoue en raison d'un délai d'expiration pendant le débogage du modèle (et non pendant la détection). Par défaut, le paramètre sa.debugger.max_timeout est défini sur 240 secondes.

    Augmentez la valeur de ce paramètre sur le Serveur MID pertinent.

    Pour exécuter le modèle en mode de débogage, reportez-vous à KB0832567Kubernetes pour obtenir des informations opérationnelles.