Kubernetes Découverte à l’aide de schémas
Le recherche Kubernetes et les composants à l’aide de modèles et crée des services d’application qui les contiennent. Découverte recherche également des Kubernetes événements et les met fréquemment à jour pour CMDB refléter l’environnement dynamiqueKubernetes.OpenShiftServiceNow Visibilité ITOM
- La Collect OpenShift info section d’extension du Kubernetes modèle détecte les OpenShift composants du Kubernetes déploiement. La OpenShift section d’extension Build Config est disponible à partir de la version 1.0.53 du Store.
- L’extension Service Mesh découvre les détails du maillage de service. Ces informations permettent au schéma de créer des relations de service à service, affichées comme suit : Se connecte à ::Connected. La découverte de maillage de services nécessite le déploiement d’Istio sur votre cluster K8s (Kubernetes). La section d’extension Service Mesh est disponible à partir des classes d’extension Kubernetes. Il est pris en charge sur la version ou une Now PlatformMadrid version ultérieure.
- La Collect Container Repository section et extension trouve des registres de conteneurs et des images dans ces registres.
En outre, Découverte utilise le modèle d’événement pour détecter les Kubernetes événements pour Kubernetes les composants.
À partir de la version ServiceNow Store1.0.68, peut Mappage des services utiliser des relations de CI pour ajouter les composants aux services d’application lors de la détection basée sur les Kubernetes balises.
- Google Cloud Platform (GCP) – Obtenir Kubernetes des grappes.
- Amazon AWS Cloud - Obtenez Kubernetes des grappes.
- Microsoft Azure - Obtenez Kubernetes des grappes.
Versions prises en charge
| Plateforme/modèle | Version validée |
|---|---|
| Sur sites Kubernetes | 1.34 |
| Google Kubernetes Engine (GKE) | 1.34 |
| Azure Kubernetes Engine (AKS) | 1.34 |
| Amazon Elastic Kubernetes Service (EKS) | 1.34 |
| Kubernetes Schémas d’événements | 1.34 |
| OpenShift | 4.19.20 |
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 Store notes de publication relatives à l'historique des versions.
Prérequis
- Déployer la dernière Schémas de découverte et de mappage des services application à partir de ServiceNow Store.
- Sur la Kubernetes plateforme, recherchez les paramètres pour configurer Kubernetes la détection :
- Recherchez l’URL du serveur kubeapi :
- Sur la Kubernetes plateforme, exécutez la commande suivante :
kubectl cluster-info - Dans la sortie, recherchez la ligne qui indique l’URL du serveur kubeapi. Par exemple, le Kubernetes plan de contrôle s’exécute à
https://10.154.144.146:443
- Sur la Kubernetes plateforme, exécutez la commande suivante :
- Recherchez les espaces de noms du serveur kubeapi :
- Sur la Kubernetes plateforme, exécutez cette commande :
Kubectl Obtenir des espaces de noms - Dans la sortie, recherchez la ligne qui indique les espaces de noms. Par exemple,
kube-system.
- Sur la Kubernetes plateforme, exécutez cette commande :
- Trouvez le nom d’utilisateur et le Kubernetes mot de passe :
- Sur la Kubernetes plateforme, exécutez cette commande :
Vue de configuration Kubectl - Dans la sortie, recherchez le nom d’utilisateur et le mot de passe.Remarque :Si, dans un environnement donné,
la commande kubectl config viewn’affiche pas les détails attendus, utilisez la commandeprise en chargede l’administrateur Kubernetes pour récupérer les détails du nom d’utilisateur et du mot de passe.
- Sur la Kubernetes plateforme, exécutez cette commande :
- Trouvez le jeton de porteur valide avec les autorisations appropriées :
-
Si vous connaissez le nom du jeton par défaut, utilisez la commande au format suivant :
kubectl describe secret <default-token-token name>.Par exemple :
kubectl describe secret default-token-g6pwc. - Si vous ne connaissez pas le nom du jeton par défaut, utilisez la commande :
kubectl describe secret.
-
- Recherchez l’URL du serveur kubeapi :
- Vérifiez que le serveur d’API est accessible à partir de pour Serveur MID une découverte réussie Kubernetes .
- Vérifiez que l’utilisateur configuré sur la Kubernetes plateforme dispose des autorisations GET 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
- Pour détecter les OpenShift composants du Kubernetes déploiement, vérifiez que l’utilisateur configuré sur la Kubernetes plateforme dispose des autorisations GET 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écouvrir les informations de maillage de services :- Déployez Istio sur votre cluster K8s.
- Fournissez l’URL de Prometheus.
- Configurez Prometheus pour extraire les mesures d’Istio.
- Activez l’extension Obtenir les fichiers de configuration Kubernetes sur :
- 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 de la JSON version 1.0.92. Le contenu des fichiers suivis est au format YAML dans les versions 1.0.91 et antérieures. - Créez les informations d’identification Kubernetes sur la ServiceNow plateforme :
- Dans le Now Platform, accédez à .
- Sélectionnez Nouveau.
- Sélectionnez les informations d’identification Kubernetes.
- Remplissez les champs du formulaire.
Champ Description Nom Nom unique et descriptif pour cet identifiant. Nom d'utilisateur Nom d’utilisateur associé à cet identifiant. Les espaces de début ou de fin doivent être évités ; Si l’un des éléments est détecté, un avertissement s’affiche. Une seule méthode d’authentification doit être utilisée : soit un nom d’utilisateur et un mot de passe, soit un jeton Bearer. N’utilisez pas les deux.
Mot de passe Mot de passe associé à cet identifiant. Une seule méthode d’authentification doit être utilisée : soit un nom d’utilisateur et un mot de passe, soit un jeton Bearer. N’utilisez pas les deux.
Authentification de jeton porteur Cette option permet une authentification avancée à l’aide d’un jeton de porteur. Lorsque la case est cochée, le champ Jeton de porteur s’affiche.
Jeton porteur Découverte utilise le jeton de porteur pour une authentification avancée lors de l’accès à Kubernetes. Le jeton Bearer doit être au format codé BASE64, en utilisant la séquence de caractères comme jeton. Par exemple : 31ada4fd-adec-460c-809a-9e56ceb75269.
Une seule méthode d’authentification doit être utilisée : soit un nom d’utilisateur et un mot de passe, soit un jeton Bearer. N’utilisez pas les deux.
Alias d'identification Un alias est configuré pour utiliser les informations d’identification pour les Kubernetes appareils et les applications autres que Kubernetes. Cet alias est également utilisé lors de la définition d’une planification de découverte sans serveur pour détecter le Kubernetes déploiement. - Sélectionnez l’icône du cadenas, puis l’icône de recherche.
- Dans le formulaire Alias de connexion et d’informations d’identification, sélectionnez Nouveau.
- Spécifiez un nom pour l’enregistrement d’alias d’informations d’identification.
- Définissez les attributs de l’alias. Définir sur Informations d’identificationType
- Sélectionnez et maintenez enfoncé (ou cliquez avec le bouton droit de la souris) l’en-tête du formulaire, puis sélectionnez Enregistrer, puis sélectionnez Mettre à jour.
- 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.
- Sur le formulaire Informations d’identification Kubernetes , sélectionnez Mettre à jour.
- Créez un calendrier de découverte sans serveur pour le Kubernetes schéma.Créez et définissez le modèle d’exécution sans serveur tel que décrit dans la documentation du produit. Configurez les paramètres requis par le Kubernetes modèle comme suit :
Tableau 2. Configuration des attributs de modèle d’exécution Champ Description URL Identificateur du nom d’hôte, adresse IP ou FQDN et port du serveur d’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 Espaces de noms que le système transmet dans la Kubernetes Découverte configuration. Entrez l’une des valeurs suivantes : - Espace de noms individuel : entrez l’espace de noms, puis « kube-system ». Par exemple : dev,kube-system
- Valeur par défaut : entrez 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 entrer tous les espaces de noms
Alias d’informations d’identification Alias associé aux informations d’identification créées Kubernetes précédemment. Nom de grappe Nom de la Kubernetes grappe, au format suivant : <serviceaccountid><space><clustername>. fournisseur Fournisseur de cloud : ou AWS ou AzureGCP . cluster_resource_id Exemple d’ID de ressource de grappe : - Azure Kubernetes grappes : ID de ressource.
- AWS- ARN de la grappe.
- GCP- Nom global de la grappe.
- Créez une planification de découverte sans serveur pour le modèle d’événement Kubernetes . Configurez le calendrier pour qu’il s’exécute toutes les 5 ou 10 minutes. Remarque :Lorsque le schéma est exécuté pour la première fois, il stocke une event_timestamp. Plus tard, il collecte uniquement les événements delta en fonction de l’horodatage. Plus le schéma est exécuté souvent, moins il est nécessaire de mettre à CMDB IRE jour.
Créez un modèle d’exécution serverless pour le calendrier de découverte et affectez-le au schéma d’événements Kubernetes . Configurez les paramètres requis par le Kubernetes modèle comme décrit dans .Configuration des attributs de modèle d’exécution
- Pour inclure les composants détectés dans les instances de service, activez les relations CI utilisées dans la découverte 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 découverte basée sur les balises.
Conditions préalables à Kubernetes la découverte d’infrastructures dans le cloud
Pour le Google Cloud Platform (GCP) schéma – Get Clusters (Obtenir Kubernetes des grappes ), procédez comme suit :
- Dans l’instance, configurez un compte de service avec des Google Cloud Platform (GCP) informations d’identification et des ServiceNow autorisations valides.
- Sur l’infrastructure, configurez le Serveur MID avec un accès complet à toutes les API dans le GCP cloud : définissez les périmètres d’accès à l’API dans le cloud sur « Autoriser un accès complet à toutes les API dans le cloud ». L’instance Serveur MID ne peut accéder qu’aux grappes spécifiques au projet.
- Accédez à
sys_properties.listet 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éfinir la valeur sur vrai.Remarque :L'activation de la propriété sn_itom_pattern.k8s_create_schedule_enabled crée automatiquement un calendrier sans serveur pour vos clusters dans le cloud, éliminant ainsi le besoin de planification manuelle. Si disposez déjà d'un calendrier manuel et souhaitez le convertir en calendrier automatique, activez la propriété. Votre calendrier manuel sera mis à jour et aucun autre calendrier ne sera créé.
- Créer et exécuter Google Cloud Découverte Remarque :
Pour extraire le jeton Bearer, lors de l’exécution de la planification GKE Kubernetes , utilisez la commande gcloud :
gcloud config helper --format="valeur(credential.access_token) »La configuration de gcloud dans l’instance accorde l’accès Serveur MID à la grappe GKE pour extraire le jeton.
Pour la détection de grappe Amazon Elastic Kubernetes Service (EKS) , procédez comme suit :
- Dans l’instance ServiceNow , définissez un compte de service avec des informations d’identification et des AWS autorisations de compte de gestion valides.
- Vérifiez 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.
- Créez une liaison de rôle de grappe entre le rôle de grappe et un Kubernetes utilisateur. Par exemple, utilisateur en lecture seule.
- Créez un AWS rôle IAM avec la politique EKSReadOnly.
- Associez le rôle IAM à l’utilisateur de l’une Kubernetes des façons suivantes :
- Dans la grappe, modifiez la ConfigMap aws-auth.
- Exécutez la commande :
eksctl create iamidentitymapping --cluster yourClusterName --arnarn :aws :iam ::yourAccountID :role/yourIAMRoleName --username read-only-user
-
Exécutez Amazon Elastic Kubernetes Service (EKS) la découverte de grappe de deux manières : à l’aide de l’interface AWS de ligne de commande (CLI) ou sans utiliser l’interface de ligne AWS de commande. Commencez par définir la propriété sn_itom_pattern.k8s_aws_cli_to_generate_token système pour utiliser le modèle que vous choisissez. Cette propriété système est définie sur true par défaut.
-
Définissez cette propriété système sur vrai pour utiliser l’interface AWS de ligne de commande afin de générer un jeton.
-
Définissez cette propriété système sur faux pour utiliser Endosser les rôles pour générer un jeton.
-
Exécutez la Amazon Elastic Kubernetes Service (EKS) découverte de grappe à l’aide de l’interface AWS de ligne de commande :
-
Configurez avec Serveur MID l’interface de AWS ligne de commande configurée. La configuration des AWS 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 . -
Pour générer le jeton de porteur, 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 rôle CLI AWS dans l’instance Serveur MID accorde l’accès à la Amazon Elastic Kubernetes Service (EKS) grappe pour générer le jeton.
-
-
Exécuter Amazon Elastic Kubernetes Service (EKS) la découverte de grappe sans utiliser l’interface AWS de ligne de commande :
Remarque :Cette fonctionnalité est prise en charge à partir de la Schémas de découverte et de mappage des services version 1.0.96 - décembre 2022.
Reportez-vous à la base de connaissances suivante pour obtenir des instructions détaillées : KB1182188 : découverte de grappe EKS à l’aide de STS AssumeRoles (sans interface de ligne de commande AWS)
-
- Accédez à
sys_properties.listet 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éfinir la valeur sur vrai.Remarque :L'activation de la propriété sn_itom_pattern.k8s_create_schedule_enabled crée automatiquement un calendrier sans serveur pour vos clusters dans le cloud, éliminant ainsi le besoin de planification manuelle. Si disposez déjà d'un calendrier manuel et souhaitez le convertir en calendrier automatique, activez la propriété. Votre calendrier manuel sera mis à jour et aucun autre calendrier ne sera créé.
-
Créez et exécutez un AWS Découverte dans le cloud calendrier.
Pour Microsoft Azure Kubernetes Services (AKS) : Kubernetes détection de grappes, procédez comme suit :
- Mettez à jour vers la dernière Schémas de découverte et de mappage des services version.
- Dans l’instance, configurez le compte de service avec des ServiceNowAzure informations d’identification et une autorisation valides Azure .
- Accédez à
sys_properties.listet 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éfinir la valeur sur vrai.Remarque :.L'activation de la propriété sn_itom_pattern.k8s_create_schedule_enabled crée automatiquement un calendrier sans serveur pour vos clusters dans le cloud, éliminant ainsi le besoin de planification manuelle. Si disposez déjà d'un calendrier manuel et souhaitez le convertir en calendrier automatique, activez la propriété. Votre calendrier manuel sera mis à jour et aucun autre calendrier ne sera créé.
- Si vous n’avez pas de comptes locaux avec Kubernetes RBAC et que vous souhaitez améliorer l’efficacité du schéma, accédez à et définir la sn_itom_pattern.aks_fetch_local_ad_token propriété sur false.
- Exécutez un calendrier de découverte dans le Azure cloud.
-
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 Schedule (Planifier) Serveur MID Authentification MS Entra ID avec Kubernetes RBAC.
N’importe quel Serveur MID.
Authentification MS Entra ID avec Azure RBAC.
N’importe quel Serveur MID.
Comptes locaux avec Kubernetes RBAC.
Sélectionnez avec l’interface Serveur MIDAzure de ligne de commande (CLI) configurée. La configuration des informations d’identification CLI Azure accorde l’accès à la grappe AKS.
Pour extraire 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 :- L’utilisateur connecté au système doit être le même que l’utilisateur Serveur MID .
- Pour plus d’informations sur la configuration des grappes Découverte AKS, consultez l’article Détails de la configuration de la découverte des grappes AKS [KB1220553] dans la section Now Support Base de connaissances.
| 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 : évitez 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ésactivable sous les propriétés système, chargé de contrôler l’exécution du schéma. Lorsqu’elle est activée, elle crée des calendriers de découverte 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 schémas dans le cloud Kubernetes , détectant Kubernetes des grappes sans créer de calendriers automatiques. | Booléen | Faux | |
| Serveur MID |
sn_itom_pattern.k8s_midserver |