Instanziierung AutoTrace WebHook
Der Instana AutoTrace WebHook ist ein Kubernetes -und Red Hat OpenShift-kompatibler Webhook für die Mutation des Zugangscontrollers. Der Webhook konfiguriert automatisch die Instana-Traceerstellung für Node.js-, .NET Core-, Ruby-und Python -Anwendungen, die im gesamten Kubernetes -oder Red Hat OpenShift -Cluster ausgeführt werden. Außerdem können Sie die Instana-Traceerstellung für IBM MQ -und App Connect -Bereitstellungen aktivieren, die in IBM Cloud Pak for Integrationausgeführt werden.
Einschränkungen
- Der Instana AutoTrace WebHook wird für neue Kubernetes -Ressourcen wirksam. Möglicherweise müssen Sie Ihre Pods löschen,ReplicaSets,StatefulStes, Bereitstellungen undDeploymentConfigs, und erstellen Sie sie dann erneut für die InstanaAutoTraceWebHook um die Konfiguration abzuschließen.
- Es werden nur
linux/amd64
Kubernetes -Knoten unterstützt. - Instana AutoTrace WebHook aktualisiert nicht automatisch die Instrumentierung, die installiert wird. Daher ist Instana AutoTrace WebHook standardmäßig nicht aktiviert.
- Wenn Instana Autotrace WebHook in IBM Cloud Paks (Cloud Pak for Business Automation und Cloud Pak for Integration) installiert ist, muss Zen von der Instrumentierung ausgeschlossen werden.
- Einschränkungen
- Unterstützte Laufzeiten
- Voraussetzungen
- Instana installieren AutoTrace WebHook
- Funktion des Webhooks überprüfen
- Instanziierung AutoTrace WebHook und Instrumentierung aktualisieren
- Instana deinstallieren AutoTrace WebHook
- Konfigurationen
- Fehlerbehebung
Unterstützte Laufzeiten
Der Instana AutoTrace WebHook unterstützt die folgenden Technologien:
Voraussetzungen
Bevor Sie Instana AutoTrace WebHook in einem Kubernetes-basierten Cluster installieren, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:
- Kubernetes 1.16+
- Red Hat OpenShift 4.5+
kubectl
1.16+- Helm 3.2+ (Einige Automatisierungsfunktionen basieren auf Helm
lookup
-Funktionen)
Instana installieren AutoTrace WebHook
Ersetzen Sie < download_key> im folgenden Script durch einen gültigen Instana- Agentenschlüssel oder Downloadschlüsselund führen Sie dann das Script mit Administratorberechtigungen für Ihren Cluster aus:
helm install --create-namespace --namespace instana-autotrace-webhook instana-autotrace-webhook \
--repo https://agents.instana.io/helm instana-autotrace-webhook \
--set webhook.imagePullCredentials.password=<download_key>
Wichtig: Bei einer Installation unter Red Hat OpenShiftmüssen Sie die Option --set openshift.enabled=true
im Script angeben.
Instana Autotrace WebHook in IBM Cloud Paks installieren
Anweisungen zur Installation von Instana Autotrace WebHook in IBM Cloud Paks finden Sie unter Instana konfigurieren AutoTrace WebHook in einer Cloud Pak -Umgebung.
In einer Air-Gap-Umgebung konfigurieren
Für Air-Gap-Umgebungen müssen Sie das instana-autotrace-webhook
Helm -Diagramm, das instana-autotrace-webhook
-Container-Image und das instrumentation
-Container-Image in Ihrer Umgebung bereitstellen.
Führen Sie den folgenden Befehl aus, um das neueste Release des Helm -Diagramms in Ihr aktuelles Arbeitsverzeichnis herunterzuladen:
helm pull instana-autotrace-webhook --repo https://agents.instana.io/helm instana-autotrace-webhook
Um das Zielverzeichnis dieses Befehls zu ändern, können Sie mit der Option -d <DESTINATION_PATH>
ein anderes Zielverzeichnis angeben.
Führen Sie den folgenden Befehl aus, um das neueste instana-autotrace-webhook
-Image herunterzuladen:
docker pull containers.instana.io/instana/release/agent/instana-autotrace-webhook:latest
Führen Sie den folgenden Befehl aus, um das neueste Instrumentierungsimage herunterzuladen:
docker pull icr.io/instana/instrumentation:latest
Die beiden Container-Images müssen in Ihrer Container-Registry verfügbar sein. Das zuvor heruntergeladene Helm -Diagrammarchiv muss auf dem System verfügbar sein, auf dem der Befehl helm install
ausgeführt wird.
So installieren Sie InstanaAutoTraceWebHook, Führen Sie den folgenden Befehl aus:
helm upgrade --install --create-namespace \
--namespace instana-autotrace-webhook \
--set webhook.image=<INSTANA_AUTOTRACE_WEBHOOK_IMAGE_PATH> \
--set autotrace.instrumentation.image=<INSTRUMENTATION_IMAGE_PATH> \
instana-autotrace-webhook <PATH_TO_HELM_CHART_ARCHIVE>
Container-Registry-Authentifizierung
Das Image instrumentation
in der Container-Registry wird als initContainer in allen Anwendungspods verwendet. Wenn Ihre Container-Registrierung erfordert,imagePullSecret Ressource, sie muss in allen Anwendungsnamespaces verfügbar sein.
Prüfen, ob der Webhook funktioniert
Gehen Sie wie folgt vor, um zu überprüfen, ob der Webhook funktioniert:
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die
instana-autotrace-webhook
im Namensbereichinstana-autotrace-webhook
wie erwartet ausgeführt wird:kubectl get pods -n instana-autotrace-webhook
Beispielergebnis:
NAME READY STATUS RESTARTS AGE instana-autotrace-webhook-7c5d5bf6df-82w7c 1/1 Running 0 12m
Verwenden Sie Instana AutoTrace WebHook. Wenn Instana AutoTrace WebHook ausgeführt wird, stellen Sie einen Node.js -Pod bereit. Instana AutoTrace wird im Node.js -Pod automatisch aktiviert. Im Protokoll für den Pod sehen Sie eine Bezeichnung, die angibt, dass Instana AutoTrace auf den Pod Node.js angewendet wurde:
kubectl get pod test-nodejs -n test-apps -o=jsonpath='{.metadata.labels.instana-autotrace-applied}' true
Wenn Sie den Instana-Hostagenten mithilfe des instana/agent
Helm -Diagramms installiert haben, erscheint der Prozess Node.js in Ihrem Instana-Dashboard. Weitere Informationen finden Sie in der Dokumentation Installing the Host Agent on Kubernetes .
Wenn die instana-autotrace-applied
-Bezeichnungen jedoch nicht auf Ihren Containern angezeigt werden, lesen Sie den Abschnitt Fehlerbehebung.
Instana aktualisieren AutoTrace WebHook und Instrumentierung
Instana AutoTrace WebHook verfügt nicht über eine automatisierte Methode zur Aktualisierung der von ihm installierten Instrumentierung. Die Instrumentierung wird über das icr.io/instana/instrumentation
-Image bereitgestellt. Das instana-autotrace-webhook
Helm -Diagramm wird regelmäßig für die Verwendung des neuesten icr.io/instana/instrumentation
-Image aktualisiert.
Gehen Sie wie folgt vor, um Instana AutoTrace WebHook und die Instrumentierung zu aktualisieren:
Aktualisieren Sie das Helm -Diagrammrepository in Ihrer lokalen Helm -Installation mit dem folgenden Befehl:
helm repo update
Führen Sie mit dem folgenden Befehl ein Upgrade für die Bereitstellung des
instana-autotrace-webhook
Helm -Diagramms durch:helm upgrade --namespace instana-autotrace-webhook instana-autotrace-webhook \ --repo https://agents.instana.io/helm instana-autotrace-webhook \ --reuse-values
Instana deinstallieren AutoTrace WebHook
So deinstallieren Sie InstanaAutoTraceWebHook, Führen Sie den folgenden Befehl aus:
helm uninstall instana-autotrace-webhook \
--namespace instana-autotrace-webhook \
--no-hooks
Nach der Ausführung des Befehls helm uninstall
wird die folgende Ausgabe angezeigt: release "instana-autotrace-webhook" uninstalled
.
Überprüfen Sie, ob der Instana AutoTrace WebHook ordnungsgemäß deinstalliert wurde. Sie können dies überprüfen, indem Sie auf Kubernetes > Cluster in der Instana-Benutzerschnittstelle klicken oder indem Sie den folgenden Befehl ausführen:
kubectl get pods --namespace instana-autotrace-webhook
Wenn die Deinstallation erfolgreich ist, wird der Pod instana-autotrace-webhook
nicht mehr im Namensbereich angezeigt.
Um AutoTrace aus implementierten Anwendungen zu entfernen und zu verhindern, dass AutoTrace in neue Anwendungen eingeschlossen wird, müssen Sie alle übergeordneten Ressourcen erneut implementieren, die zuvor vom Webhook AutoTrace geändert wurden. Dadurch wird sichergestellt, dass die gesamte AutoTrace -Konfiguration (init-Container und Umgebungsvariablen) aus den Ressourcenspezifikationen und Podvorlagen entfernt wird.
Konfigurationen
Inaktivieren von Tracer
Sie können Tracer einzeln inaktivieren, indem Sie die Option --set autotrace.[technology].enabled=false
verwenden. Die folgenden Technologien sind verfügbar:
- .Net-Kern (netcore)
- Python (Python)
- Node.js (nodejs)
- Rubin (ruby)
Beispiel:
helm install --create-namespace --namespace instana-autotrace-webhook instana-autotrace-webhook \
--repo https://agents.instana.io/helm instana-autotrace-webhook \
--set webhook.imagePullCredentials.password=<download_key> \
--set autotrace.ruby.enabled=false \
Rollenbasierte Zugriffssteuerung
Um den Webhook AutoTrace in einem ServiceAccount
zu implementieren, der von einem ClusterRole
und übereinstimmenden ClusterRoleBinding
geschützt wird, legen Sie das Flag rbac.enabled=true
fest, wenn Sie das Helm -Chart bereitstellen.
Wenn Sie Podsicherheitsrichtlinien verwenden, fügen Sie zusätzlich zur rollenbasierten Zugriffssteuerung rbac.psp.enabled=true
zu den Helm -Argumenten hinzu.
Pod-Sicherheitsstandards können auch über den integrierten Controller für die Aufnahme von Pod-Sicherheit durchgesetzt werden. Weitere Informationen zum Pod Security Admission finden Sie in der Dokumentation zuKubernetes.
Wenn die Flags rbac.enabled=false
und webhook.pod.hostNetwork=false
in der Helm -Installation festgelegt sind, können Sie den Webhook AutoTrace mit dem restriktiven Pod-Sicherheitsstandard ausführen, indem Sie den folgenden Befehl ausführen:
kubectl label --overwrite ns instana-autotrace-webhook pod-security.kubernetes.io/enforce=restricted
Container-Port
Damit der API-Server von Kuberneteserreichbar ist, muss der AutoTrace -Webhook-Pod im Hostnetz gehostet werden und die Bereitstellung muss so konfiguriert werden, dass dies transparent erreicht wird. Standardmäßig ist der Container an Port 42650
gebunden.
Wenn Port 42650
verwendet wird, stürzt der Webhook AutoTrace ab, weil sein Port bereits gebunden ist. Sie können den Port mit der Eigenschaft webhook.pod.port
ändern.
Opt-in oder Opt-out
Der Webhook AutoTrace instrumentiert alle Container in allen Pods. Sie können jedoch besser steuern, welche Features instrumentiert werden und welche nicht. Wenn Sie den Wert für autotrace.opt_in=true
festlegen, wenn Sie das Helm -Diagramm bereitstellen, ändert der Webhook AutoTrace Pods, Replikatgruppen, statusabhängige Gruppen, Dämongruppen und Bereitstellungen mit der Bezeichnung instana-autotrace: "true"
.
Unabhängig vom Wert für autotrace.opt_in
berührt der Webhook AutoTrace keine Pods mit der Bezeichnung instana-autotrace: "false"
.
Derinstana-autotrace: "false"
Label wird in den Metadaten vonDaemonSets, Bereitstellungen,DeploymentConfigs,ReplicaSets, UndStatefulSets, wie in verschachtelten Pod-Vorlagen und in eigenständigen Pods.
Namensbereiche ignorieren
Mithilfe der autotrace.exclude.namespaces
-Konfiguration können Sie vollständige Namensbereiche von der automatischen Instrumentierung ausschließen.
Ressourcen mit der Bezeichnung instana-autotrace: "true"
werden unabhängig vom Ausschluss des Namensbereichs instrumentiert.
Derinstana-autotrace
Label wird in den Metadaten vonDaemonSets, Bereitstellungen,DeploymentConfigs,ReplicaSets, UndStatefulSets, wie in verschachtelten Pod-Vorlagen und in eigenständigen Pods.
Ressourcen ignorieren
Ressourcen mit der Bezeichnung instana-autotrace: "false"
werden unabhängig von anderen Einstellungen ignoriert.
Derinstana-autotrace
Label wird in den Metadaten vonDaemonSets, Bereitstellungen,DeploymentConfigs,ReplicaSets, UndStatefulSets, wie in verschachtelten Pod-Vorlagen und in eigenständigen Pods.
NGINX und ingress-nginx
Zum Aktivieren der automatischen NGINX-und ingress-nginx-Instrumentierung müssen Sie das Opt-in durchführen, indem Sie autotrace.ingress_nginx.enabled=true
festlegen. Lesen Sie anschließend den Abschnitt zur Fehlerbehebung und stellen Sie sicher, dass die relevanten Objekte aktualisiert oder neu erstellt werden.
Der Webhook AutoTrace unterstützt den ingress-nginx Kubernetes Ingress-Controller 0.34.1 oder höher und ist mit dem Helm -Diagramm 2.11.2 oder höher kompatibel.
IBM MQ und ACE
Um die automatische IBM MQ -und ACE-Instrumentierung zu aktivieren, müssen Sie ein Opt-in durchführen, indem Sie autotrace.ibmmq.enable=true
und autotrace.ace.enable=true
festlegen. Der Webhook AutoTrace unterstützt nur IBM MQ und ACE in IBM Cloud Pak for Integration. IBM Cloud Pak for Integration wird im Red Hat OpenShift -Cluster ausgeführt und Sie müssen daher auch openshift.enabled=true
festlegen. Geben Sie den folgenden Befehl ein, um Instana AutoTrace WebHook mit aktivierter automatischer Instrumentierung von IBM MQ und ACE einzurichten:
helm install --create-namespace --namespace instana-autotrace-webhook instana-autotrace-webhook \
--repo https://agents.instana.io/helm instana-autotrace-webhook \
--set webhook.imagePullCredentials.password=<download_key> \
--set openshift.enabled=true \
--set autotrace.ibmmq.enabled=true \
--set autotrace.ace.enabled=true
Node.js ECMAScript-Module
Der ECMAScript-Module befinden sich in der Experimentalphase.
In AutotraceWebHook1.272.2 , eine neue Konfigurationsoptionautotrace.nodejs.application_type
wird hinzugefügt aufgrund der Wichtige Änderungen eingeführt inNode.js18.19.0 . Um sicherzustellen, dass Sie die neueste Version desAutoTraceWebHook, siehe die Leitfaden für Updates .
Legen Sie für Node.js 18.19.0 und höher
autotrace.nodejs.application_type
aufmodule_v2
fest:helm install --create-namespace --namespace instana-autotrace-webhook instana-autotrace-webhook \ --repo https://agents.instana.io/helm instana-autotrace-webhook \ --set webhook.imagePullCredentials.password=<download_key> \ --set autotrace.nodejs.application_type=module_v2
Für Versionen vor Node.js 18.19.0setzen Sie
autotrace.nodejs.application_type
aufmodule_v1
:helm install --create-namespace --namespace instana-autotrace-webhook instana-autotrace-webhook \ --repo https://agents.instana.io/helm instana-autotrace-webhook \ --set webhook.imagePullCredentials.password=<download_key> \ --set autotrace.nodejs.application_type=module_v1
Um zum Standardverhalten zurückzukehren oder die Konfigurationsoption vollständig zu entfernen, setzen Sie
autotrace.nodejs.application_type
aufcommonjs
:helm install --create-namespace --namespace instana-autotrace-webhook instana-autotrace-webhook \ --repo https://agents.instana.io/helm instana-autotrace-webhook \ --set webhook.imagePullCredentials.password=<download_key> \ --set autotrace.nodejs.application_type=commonjs
Die vorherige Konfigurationsoption autotrace.nodejs.esm
ist jetzt veraltet. Sie müssen zur neuen Konfigurationsoption autotrace.nodejs.application_type
wechseln.
Fehlerbehebung
Wenn Sie die Instanziierung AutoTrace WebHook nicht sehen, die sich auf Ihre neuen Kubernetes -Ressourcen auswirkt, führen Sie die folgenden Schritte aus, um Fehler zu beheben:
Prüfen, ob Instana AutoTrace WebHook Anforderungen empfängt
Um zu überprüfen, ob der Instana AutoTrace WebHook Anforderungen empfängt, überprüfen Sie die Protokolle des Pods instana-autotrace-webhook
, indem Sie den folgenden Befehl ausführen:
kubectl logs -l app.kubernetes.io/name=instana-autotrace-webhook -n instana-autotrace-webhook
In einer funktionierenden Installation werden die folgenden Protokolle angezeigt:
14:41:37.590 INFO |- [AdmissionReview 48556a1a-7d55-497b-aa9c-23634b089cd1] Applied transformation DefaultDeploymentTransformation to the Deployment 'test-netcore-glibc/test-apps'
14:41:37.588 INFO |- [AdmissionReview 1d5877cf-7153-4a95-9bfb-de0af8351195] Applied transformation DefaultDeploymentTransformation to the Deployment 'test-nodejs-12/test-apps'
Wenn Sie solche Protokolle nicht sehen, liegt möglicherweise ein Problem mit der Kubernetes -Konfiguration vor. Fahren Sie mit der Fehlerbehebung fort, indem Sie den folgenden Abschnitt überprüfen.
Protokolle von 'kube-apiserver' überprüfen
Überprüfen Sie die Protokolle von kube-apiserver
. Diese Protokolle geben Aufschluss darüber, ob der Instana AutoTrace WebHook gestartet wird, und enthalten Informationen zum Ergebnis der Ausführung.
Allgemeine Probleme
Keine Netzkonnektivität zwischen den Pods 'kube-apiserver 'und 'instana-autotrace-webhook'
Das häufigste Problem ist, dass kube-apiserver
die Workerknoten, auf denen die instana-autotrace-webhook
-Pods ausgeführt werden, aufgrund von Sicherheitsrichtlinien nicht erreichen kann. Dies verhindert, dass der Instana AutoTrace WebHook funktioniert. In diesem Fall besteht die Lösung darin, die Netzeinstellungen zu ändern, damit kube-apiserver
auf die instana-autotrace-webhook
-Pods zugreifen kann. Überprüfen Sie Ihre Netzsicherheitsrichtlinien, um sicherzustellen, dass kubeapi-server
Verbindungen einleiten und Antworten von instana-autotrace-webhook
erhalten kann. Instana kann keine direkte Anleitung zur Lösung dieses Problems bereitstellen, da die Lösungen je nach Ihren Richtlinien und Durchsetzungsmechanismen variieren.
-Pods 'kube-apiserver' und 'instana-autotrace-webhook ' können keine TLS-Sitzung vereinbaren
Ein weiteres sporadisches Problem, das auftreten kann, ist, wenn Verschlüsselungseinschränkungen, insbesondere hinsichtlich der Algorithmen, die für TLS verwendet werden können, verhindern, dass kube-apiserver
eine TLS-Sitzung mit dem instana-autotrace-webhook
-Pod aushandelt. In diesem Fall öffnen Sie ein Ticketund informieren Instana darüber, welche Verschlüsselungsalgorithmen von Ihren Clustern unterstützt werden.