La version 2 de l'intégration Kubernetes présente des paramètres et des exigences différents de la version 3. Ce document passe en revue les paramètres qui sont différents de la version 3 et dont vous aurez besoin pour la version 2. Si nous ne spécifions rien de différent, vous pouvez utiliser les paramètres de la version 3.
Prudence
New Relic a rendu obsolète la version 2 et recommande de ne pas l'utiliser. Nous maintenons cette documentation pour les utilisateurs qui utilisent encore la version 2 même si nous ne la supportons plus.
Consultez Introduction à l’intégration de Kubernetes pour démarrer avec la version actuelle de Kubernetes.
Pour comprendre les modifications de la version 3, consultez le document Modifications introduites dans l’intégration Kubernetes version 3 .
Monitoring control plane avec la version d'intégration 2
Cette section explique comment configurer control plane monitoring sur les versions 2 et antérieures de l'intégration.
Veuillez noter que ces versions avaient des options de découverte automatique moins flexibles et ne prenaient pas en charge le point de terminaison externe. Nous vous recommandons fortement de mettre à jour vers la version 3 dès que possible.
Découverte automatique et configuration par défaut : hostNetwork
et privileged
Dans les versions inférieures à la v3, lorsque l'intégration est effectuée à l'aide de privileged: false
, le paramètre hostNetwork
pour le composant control plane sera également défini sur false
.
Découverte des control plane et des composants control plane
L'intégration Kubernetes s'appuie sur les conventions d'étiquetage kubeadm
pour découvrir les nœuds control plane et les composants control plane . Cela signifie que les nœuds control plane doivent être étiquetés avec node-role.kubernetes.io/control-plane=""
.
Les composants control plane doivent avoir soit les étiquettes k8s-app
, soit les étiquettes tier
et component
. Consultez ce tableau pour connaître les combinaisons et valeurs d'étiquettes acceptées :
Composant | Étiquette | Point de terminaison |
---|---|---|
Serveur API | Kubeadm / Kops / ClusterAPI
OpenShift
|
|
etcd | Kubeadm / Kops / ClusterAPI
OpenShift
|
|
Planificateur | Kubeadm / Kops / ClusterAPI
OpenShift
|
|
Responsable contrôleur | Kubeadm / Kops / ClusterAPI
OpenShift
|
|
Lorsque l'intégration détecte qu'elle s'exécute à l'intérieur d'un nœud control plane , elle essaie de trouver les composants qui s'exécutent sur le nœud en recherchant les pods qui correspondent aux étiquettes répertoriées dans le tableau ci-dessus. Pour chaque composant en cours d’exécution, l’intégration envoie une demande à son point de terminaison de métriques.
Configuration
monitoring du plan de contrôle est automatique pour les agents exécutés à l'intérieur des nœuds control plane . Le seul composant qui nécessite une étape supplémentaire pour s'exécuter est etcd, car il utilise l'authentification TLS mutuelle (mTLS) pour requests des clients. Le serveur API peut également être configuré pour être interrogé à l'aide du port sécurisé.
Important
monitoring du plan de contrôle pour OpenShift 4.x nécessite configuration supplémentaire. Pour plus d'informations, consultez la section Configuration d'OpenShift 4.x.
etcd
Afin de configurer mTLS pour interroger etcd, vous devez définir ces deux options de configuration :
Option | Valeur |
---|---|
| Nom d'un secret Kubernetes qui contient la configuration mTLS. Le secret doit contenir les clés suivantes :
|
| L'espace de nommage où le secret spécifié dans le |
Serveur API
Par défaut, les métriques du serveur API sont des requêtes utilisant le point de terminaison localhost:8080
non sécurisé. Si ce port est désactivé, vous pouvez également interroger ces métriques via le port sécurisé. Pour activer cela, définissez l’option de configuration suivante dans le fichier manifeste d’intégration Kubernetes :
Option | Valeur |
---|---|
| L'URL (sécurisée) pour requêter les métriques. Le serveur API utilise Assurez-vous que le Ajouté dans la version 1.15.0 |
Important
Notez que le port peut être différent selon le port sécurisé utilisé par le serveur API.
Par exemple, dans Minikube, le port sécurisé du serveur API est 8443 et donc API_SERVER_ENDPOINT_URL
doit être défini sur https://localhost:8443
Configuration d'OpenShift
les composants du plan de contrôle sur OpenShift 4.x utilisent des URL de point de terminaison qui nécessitent une authentification SSL et basée sur un compte de service. Par conséquent, vous ne pouvez pas utiliser les URL de point de terminaison par défaut .
Important
Lors de l'installation de openshift
via Helm, spécifiez la configuration pour inclure automatiquement ces points de terminaison. Les paramètres openshift.enabled=true
et openshift.version="4.x"
incluront le point de terminaison sécurisé et activeront l'exécution /var/run/crio.sock
.
Pour configurer control plane monitoring sur OpenShift, supprimez le commentaire des variables d’environnement suivantes dans le manifeste personnalisé. Les valeurs d'URL sont préconfigurées sur les URL de base par défaut pour les control plane monitoring métriques du point de terminaison dans OpenShift 4.x.
- name: "SCHEDULER_ENDPOINT_URL" value: "https://localhost:10259 - name: "ETCD_ENDPOINT_URL" value: "https://localhost:9979" - name: "CONTROLLER_MANAGER_ENDPOINT_URL" value: "https://localhost:10257" - name: "API_SERVER_ENDPOINT_URL" value: "https://localhost:6443"
Important
Même si le ETCD_ENDPOINT_URL
personnalisé est défini, etcd nécessite que l'authentification HTTPS et mTLS soit configurée. Pour en savoir plus sur la configuration de mTLS pour etcd dans OpenShift, consultez Configurer mTLS pour etcd dans OpenShift.
Log de Kubernetes
Si vous souhaitez générer un log détaillé et obtenir des informations sur la version et configuration , consultez simplement les informations ci-dessous.
Monitorer les services exécutés sur Kubernetes
Les services de monitoring dans Kubernetes fonctionnent en exploitant notre agent infrastructure et notre intégration sur hôte et un mécanisme de découverte automatique pour les pointer vers un pod avec un sélecteur spécifié.
Consultez le document Activer monitoring des services à l’aide du graphique Helm pour savoir comment procéder. Consultez cet exemple pour la version 2, qui montre la configuration yaml
pour l'intégration Redis ajoutée au fichier values.yml
du graphique nri-bundle
.
newrelic-infrastructure: integrations_config: - name: nri-redis.yaml data: discovery: command: # Run NRI Discovery for Kubernetes # https://github.com/newrelic/nri-discovery-kubernetes exec: /var/db/newrelic-infra/nri-discovery-kubernetes --tls --port 10250 match: label.app: redis integrations: - name: nri-redis env: # using the discovered IP as the hostname address HOSTNAME: ${discovery.ip} PORT: 6379 labels: env: test
Ajouter un service YAML à la configuration d'intégration Kubernetes
Si vous utilisez la version 2 de l'intégration Kubernetes, vous devez ajouter une entrée pour ce ConfigMap dans la section volumes
et volumeMounts
du spec
du DaemonSet, afin de garantir que tous les fichiers du ConfigMap sont montés dans /etc/newrelic-infra/integrations.d/
.