Verwaltung des „ Instana “-Agenten auf „ Kubernetes “

Nachdem Sie den Agenten installiert haben, konfigurieren und verwalten Sie ihn nach Ihren Bedürfnissen. In den folgenden Abschnitten finden Sie alle verfügbaren Konfigurationsoptionen für Agenten unter Kubernetes.

Den Status des Host-Agenten überprüfen

Nachdem Sie den Host-Agenten installiert haben, überprüfen Sie dessen Status in der Benutzeroberfläche von „ Instana “ oder auf dem Host. Weitere Informationen finden Sie unter Überprüfen des Status des Host-Agenten.

Agenten konfigurieren

Sie können den Agenten unter Kubernetes entweder über die Agentenkonfigurationsdatei oder mithilfe von Umgebungsvariablen konfigurieren.

Konfigurieren des Agenten mithilfe der Konfigurationsdatei

Der Konfigurationsprozess für den Agenten hängt davon ab, ob Sie den Agenten über den Operator oder mithilfe des Diagramms „ Helm “ installiert haben.

Konfigurieren des Agenten mithilfe der Konfigurationsdatei in einer Operator-Installation

Führen Sie die folgenden Schritte aus, um den über den Operator installierten Agenten zu konfigurieren:

  1. Öffnen Sie die Datei „ YAMLinstana-agent.customresource.yaml“ der benutzerdefinierten Ressource.

  2. Speichern Sie Ihre Konfigurationen unter " spec.agent.configuration_yaml. Sehen Sie sich das folgende Beispiel an:

    spec:
      agent:
        configuration_yaml: |
          # Example of configuration yaml template
          # Host
          com.instana.plugin.host:
            tags:
              - 'dev'
              - 'app1'
     
  3. Übernehmen Sie die Änderungen, indem Sie den folgenden Befehl ausführen:

    kubectl apply -f instana-agent.customresource.yaml
     

Ein ausführliches Beispiel für die Datei „ YAML “ finden Sie unter instana_v1_extended_instanaagent.yaml.

Eine vollständige Übersicht über die Konfigurationsoptionen in der Konfigurationsdatei finden Sie unter „Konfigurieren von Host-Agenten mithilfe der Agentenkonfigurationsdatei “.

Konfigurieren des Agenten mithilfe der Konfigurationsdatei in einer Installation von „ Helm “

Um den „ Instana “-Agenten zu konfigurieren, der mithilfe des Charts „ Helm “ installiert wurde, wählen Sie eine der folgenden Methoden:

Methode 1: Mit einer values.yaml Datei

Fügen Sie die Konfiguration in die Konfigurationsdatei „ values.yamlHelm “ ein. Übergeben Sie die Datei mithilfe des -f values.yaml Flags an den Befehl „ Helm “ (während der Installation) oder „ Helm “ (nach der Installation).

  1. Erstellen oder bearbeiten Sie die values.yaml Datei mit Ihrer Agent-Konfiguration:
    agent:
      configuration_yaml: |
        # Example of configuration yaml template
        # Host
        com.instana.plugin.host:
          tags:
            - 'dev'
            - 'app1'
  2. Wenden Sie bei der Installation die folgende Konfiguration an:
    helm install instana-agent \
      --repo https://agents.instana.io/helm \
      --namespace instana-agent \
      --create-namespace \
      --set agent.key=<your_agent_key> \
      --set agent.endpointHost='<your_host_agent_endpoint>' \
      --set agent.endpointPort=443 \
      --set cluster.name='<your_cluster_name>' \
      --set zone.name='<zone_name>' \
      -f values.yaml \
      instana-agent
  3. Aktualisieren Sie eine bestehende Installation mit der folgenden Konfiguration:
    helm upgrade instana-agent \
      --repo https://agents.instana.io/helm \
      --namespace instana-agent \
      -f values.yaml \
      instana-agent
Methode 2: Verwendung einer separaten configuration.yaml Datei

Erstellen Sie eine separate configuration.yaml Datei mit Ihrer Agent-Konfiguration und übergeben Sie diese inline mithilfe des --set Flags mit Befehlssubstitution.

  1. Erstellen Sie eine configuration.yaml Datei mit Ihrer Agent-Konfiguration:
    # Example of configuration yaml template
    # Host
    com.instana.plugin.host:
      tags:
        - 'dev'
        - 'app1'
  2. Wenden Sie bei der Installation die folgende Konfiguration an:
    helm install instana-agent \
      --repo https://agents.instana.io/helm \
      --namespace instana-agent \
      --create-namespace \
      --set agent.key=<your_agent_key> \
      --set agent.endpointHost='<your_host_agent_endpoint>' \
      --set agent.endpointPort=443 \
      --set cluster.name='<your_cluster_name>' \
      --set zone.name='<zone_name>' \
      --set agent.configuration_yaml="$(cat configuration.yaml)" \
      instana-agent
  3. Aktualisieren Sie eine bestehende Installation mit der folgenden Konfiguration:
    helm upgrade instana-agent \
      --repo https://agents.instana.io/helm \
      --namespace instana-agent \
      --set agent.configuration_yaml="$(cat configuration.yaml)" \
      instana-agent

Weitere Informationen zur Liste aller Konfigurationsparameter finden Sie unter InstanaHelm Chart.

Konfigurieren des Agenten mithilfe von Umgebungsvariablen

Der Konfigurationsprozess für den Agenten hängt davon ab, ob Sie den Agenten über den Operator oder mithilfe des Diagramms „ Helm “ installiert haben.

Eine vollständige Übersicht über die verfügbaren Umgebungsvariablen finden Sie unter „Umgebungsvariablen für den Host-Agenten “.

Konfiguration des Agenten mithilfe von Umgebungsvariablen in einer Operator-Installation

Führen Sie die folgenden Schritte aus, um die Umgebungsvariablen für den „ Instana “-Agenten zu konfigurieren, der über den Operator installiert wurde:

  1. Öffnen Sie die Datei „ YAMLinstana-agent.customresource.yaml“ der benutzerdefinierten Ressource.

  2. Speichern Sie Ihre Konfigurationen unter " spec.agent.configuration_yaml. Sehen Sie sich das folgende Beispiel an:

    spec:
      agent:
        env:
          INSTANA_AGENT_TAGS: dev
          JAVA_OPTS: -Xms<value>
     
  3. Übernehmen Sie die Änderungen, indem Sie den folgenden Befehl ausführen:

    kubectl apply -f instana-agent.customresource.yaml
     

Ein ausführliches Beispiel für die Datei „ YAML “ finden Sie unter instana_v1_extended_instanaagent.yaml.

Konfiguration des Agenten mithilfe von Umgebungsvariablen in einer „ Helm “-Chart-Installation

Um Umgebungsvariablen für den „ Instana “-Agenten zu konfigurieren, der mithilfe des Charts „ Helm “ installiert wurde, wählen Sie eine der folgenden Methoden:

  • Fügen Sie die Umgebungsvariablen in die Konfigurationsdatei „ values.yamlHelm “ ein. Übergeben Sie die Datei mithilfe des -f values.yaml Flags an den Befehl „ Helm “ (während der Installation) oder „ Helm “ (nach der Installation).

Siehe das folgende Beispiel für die values.yaml Datei: yaml {: codeblock} agent: env: INSTANA_AGENT_TAGS: dev JAVA_OPTS: -Xms<value>

  • Geben Sie die Konfiguration direkt über die Befehlszeile mithilfe des Flags --set agent.env.<KEY>=<VALUE> an.

Anpassen der Agentenkonfiguration

Nach der Installation des Host-Agenten werden die folgenden Konfigurationsdateien erstellt:

/opt/instana/agent/etc/mvn-settings.xml
/opt/instana/agent/etc/org.ops4j.pax.url.mvn.cfg
/opt/instana/agent/etc/instana/com.instana.agent.bootstrap.AgentBootstrap.cfg
/opt/instana/agent/etc/instana/com.instana.agent.main.config.Agent.cfg
/opt/instana/agent/etc/instana/com.instana.agent.main.config.UpdateManager.cfg
/opt/instana/agent/etc/instana/com.instana.agent.main.sender.Backend.cfg
/opt/instana/agent/etc/instana/configuration.yaml
 

Sie können die Konfiguration des Agenten an Ihre Bedürfnisse anpassen. Sie können beispielsweise den Port und den Hostnamen von TCP für das Backend Instana sowie die Dienste ändern, mit denen Ihr Host-Agent eine Verbindung herstellt, den Agenten so konfigurieren, dass er an mehrere Backends berichtet, oder die Verwendung eines Proxys für die indirekte Kommunikation vom Host-Agenten zum Backend Instana einrichten.

Weitere Informationen zum Anpassen der Agentenkonfiguration finden Sie in den folgenden Themen:

Aktualisierung der Agent-Installation

Je nach Installationsmethode können Sie den „ Instana “-Agenten für „ Kubernetes “ auf verschiedene Arten aktualisieren.

Aktualisierung einer Betreiberinstallation

Die Aktualisierung der Agenteninstallation umfasst zwei Schritte:

  1. Aktualisierung des Betreibers
  2. Aktualisieren der Bilder

Führen Sie die folgenden Schritte aus, um den Betreiber zu aktualisieren:

  1. Klicken Sie auf der Startseite der Benutzeroberfläche von „ Instana “ auf „Agenten & Sammler “. Wählen Sie auf der Registerkarte „ Instana -Agenten“ die Option „Agenten installieren “ aus.

  2. Klicken Sie auf der Seite des Agentenbereitstellungskatalogs auf die Kachel OpenShift - Operator.

  3. Kopieren Sie den Befehl und führen Sie ihn aus, um den neuen Operator einzusetzen. Siehe das folgende Befehlsbeispiel:

    kubectl apply -f https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yaml
     
    Hinweis: Um den Operator auf eine bestimmte Version zu aktualisieren, führen Sie den folgenden Befehl aus:
    kubectl apply -f https://github.com/instana/instana-agent-operator/releases/download/<operator_version>/instana-agent-operator.yaml
    Eine Liste der verfügbaren Operator-Versionen finden Sie in den Versionshinweisen für den „ Instana “-Agenten-Operator.

Nachdem der Betreiber aktualisiert wurde, fahren Sie mit der Aktualisierung der Bilder fort.

Aktualisierung einer „ Helm “-Diagramminstallation

Die Aktualisierung der Agenteninstallation umfasst zwei Schritte:

  1. Helm-Diagramm aktualisieren
  2. Aktualisieren der Bilder

Führen Sie den folgenden Befehl aus, um die Diagramme zur Agenten Helm zu aktualisieren:

helm pull --repo https://agents.instana.io/helm --untar instana-agent && kubectl apply -f instana-agent/crds; helm upgrade --namespace instana-agent instana-agent \
--repo https://agents.instana.io/helm instana-agent \
--reuse-values
 
Hinweis: In den Diagrammen der Versionen 2.0.0 und früheren Versionen von „ Instana “ und „ Helm “ ist der instana-agent/crds Ordner nicht vorhanden. Daher ist dieser kubectl apply -f instana-agent/crds Schritt nicht erforderlich.

Nachdem die Tabelle „ Helm “ aktualisiert wurde, fahren Sie mit der Aktualisierung der Bilder fort.

Aktualisieren der Bilder

Das DaemonSet " instana-agent und die Bereitstellung " k8sensor sind so eingestellt, dass sie beim Starten des Pods das neueste Image beziehen. Um die Aktualisierung zu erzwingen, führen Sie die folgenden Befehle aus:

kubectl rollout restart ds instana-agent -n instana-agent
 
kubectl rollout restart deployment instana-agent-k8sensor -n instana-agent
 

Instana bietet keine Möglichkeit, diese Bilder automatisch zu aktualisieren. Sie können Lösungen nutzen, die Ihren Anforderungen entsprechen, beispielsweise solche CronJobs mit ausreichenden Berechtigungen für restart Workloads oder fortgeschrittenere Tools für die automatische Aktualisierung von Images ( Kubernetes ) GitOps wie die der CNCF Foundation FluxCD.

Verwaltung von Agenten über das Dashboard „Agentenverwaltung“

Über das Dashboard „Agentenverwaltung“ in der Benutzeroberfläche von „ Instana “ können Sie folgende Vorgänge ausführen:

Führen Sie die folgenden Schritte aus, um das Dashboard zur Agentenverwaltung zu öffnen:

  1. Wählen Sie in der Seitenleiste der Benutzeroberfläche von „ Instana “ die Option „Infrastruktur“ aus.
  2. Klicken Sie auf einen bestimmten überwachten Host.
  3. Klicken Sie auf dem Host-Dashboard auf Agent Management öffnen.

Den Netzwerkzugriff für überwachte Anwendungen konfigurieren

Sie müssen den Netzwerkzugriff für die folgenden Anwendungstypen konfigurieren, damit diese mit dem Agenten kommunizieren können:

  • Node.js
  • Go
  • Ruby
  • Python
  • .NET Core

Diese Anwendungen müssen die IP-Adresse kennen, auf der der Agent empfangsbereit ist. Der Host-Agent lauscht automatisch auf die Host-IP. Sie können den folgenden Downward- API -Schnipsel verwenden, um die Host-IP in einer Umgebungsvariablen an den Anwendungs-Pod zu übergeben:

spec:
  containers:
    env:
      - name: INSTANA_AGENT_HOST
        valueFrom:
          fieldRef:
            fieldPath: status.hostIP
 

Überwachung von Control-Plane-Knoten (früher als Master-Knoten bezeichnet)

Standardmäßig wird der Host-Agent nicht auf den Knoten der Steuer-Ebene von „ Kubernetes “ (früher als Master-Knoten bezeichnet) eingeplant, da die Bereitstellung die Standard-Taint-Einstellung berücksichtigt node-role.kubernetes.io/master:NoSchedule , die auf den meisten Knoten der Steuer-Ebene festgelegt ist. Um die Knoten der Steuerungsebene zu überwachen, überprüfen Sie zunächst, welcher Taint auf den Knoten der Steuerungsebene gesetzt ist, indem Sie den folgenden Befehl ausführen und in der Antwort .spec.taints nach suchen:

kubectl describe node <control-plane-node-name>
 

Fügen Sie anschließend die Toleranz für den Taint, der auf dem Knoten der Steuerungsebene gesetzt ist, zur Agenten- DaemonSet hinzu. Wenn der Knoten der Steuerungsebene die Standard-Taint-Markierung aufweist, lautet die entsprechende Toleranz für das Daemonset des Agenten wie folgt:

tolerations:
  - key: "node-role.kubernetes.io/master"
    effect: "NoSchedule"
    operator: "Exists"
 

Nachdem Sie die erforderliche Toleranz festgelegt haben, nehmen Sie zur Überwachung der Knoten der Steuerungsebene die entsprechenden Einstellungen in der Agent-Installation vor.

Wenn Sie den Agenten mithilfe des Diagramms „ Helm “ installiert haben, können Sie die Toleranzen auf zwei Arten festlegen:

  • Durch Verwendung des Flags --set agent.pod.tolerations

  • Erstellen Sie eine values.yaml Datei mit dem folgenden Inhalt und übergeben Sie diese Datei anschließend mithilfe des Flags an den Installationsbefehl von -f values.yaml „ Helm “:

agent:
  pod:
    # agent.pod.tolerations are tolerations to influence agent pod assignment.
    #   https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
    tolerations:
      - key: "node-role.kubernetes.io/master"
        effect: "NoSchedule"
        operator: "Exists"
 

Wenn Sie den Agenten mithilfe des Operators installiert haben, fügen Sie die Toleranzen in der benutzerdefinierten Ressource unter .spec.agent.pod.tolerations in der instana-agent.customresource.yaml Datei hinzu. Sehen Sie sich das folgende Beispiel an:

spec:
  agent:
   pod:
    tolerations:
      - key: "node-role.kubernetes.io/master"
        effect: "NoSchedule"
        operator: "Exists"
 

Wenden Sie anschließend die neue benutzerdefinierte Ressource auf den Cluster an, indem Sie den folgenden Befehl ausführen:

kubectl apply -f instana-agent.customresource.yaml
 

Um eine direktere Steuerung zu ermöglichen, installieren Sie den Host-Agenten separat auf den Knoten der Steuerungsebene.

Überwachung Kubernetes NGINX Ingress

Informationen zur Konfiguration von „ Kubernetes “ unter NGINX sowie des Ingress und des Host-Agenten zur Erfassung von Metriken unter NGINX finden Sie unter „Monitoring“ unter NGINX.

Um die verteilte Ablaufverfolgung für den „ Kubernetes “ und den „ NGINX “ Ingress zu aktivieren, lesen Sie den Abschnitt „Verteilte Ablaufverfolgung für den „ NGINX “ Ingress “.

Agent-Geheimnisse konfigurieren

Kubernetes verfügt über integrierte Unterstützung für die Speicherung und Verwaltung sensibler Informationen. Wenn Sie diese integrierte Funktion jedoch nicht nutzen, aber dennoch die Möglichkeit benötigen, sensible Daten in Ressourcen von „ Kubernetes “ zu schwärzen, können Sie die Agent-Geheimnisse konfigurieren.

Um die Schwärzung sensibler Daten für ausgewählte Ressourcen von „ Kubernetes “ (insbesondere Anmerkungen und Umgebungsvariablen von Containern) zu aktivieren, führen Sie die folgenden Schritte aus:

  1. Setzen Sie die INSTANA_KUBERNETES_REDACT_SECRETS Umgebungsvariable wie im true folgenden Ausschnitt aus der Agent- YAML -Datei:

    spec:
      containers:
          env:
            - name: INSTANA_KUBERNETES_REDACT_SECRETS
              value: "true"
     
  2. Konfigurieren Sie den Host-Agenten mit der gewünschten Liste von Geheimnissen, wie in der Konfiguration der Agent-Geheimnisse beschrieben.

Hinweis: Möglicherweise stellen Sie bei Aktivierung dieser Funktion eine geringere Leistung des Sensors „ Kubernetes “ fest.

Berichterstattung an mehrere Backends

Für den Host-Agenten, der über das Diagramm „Operator“ oder „ Helm “ installiert wurde, können Sie weitere Backends hinzufügen, indem Sie den folgenden Befehl ausführen:

  • Für den Host-Agenten, der mit dem Helm installiert wird:

       helm install instana-agent \
       --repo https://agents.instana.io/helm \
       --namespace instana-agent \
       --create-namespace \
       --set agent.key=my-key \
       --set agent.endpointHost='<your_host_agent_endpoint>' \
       --set agent.endpointPort=443 \
       --set cluster.name='<your_cluster_name>' \
       --set zone.name='zone-name' \
       --set "agent.additionalBackends[0].endpointHost=<your_host_agent_endpoint>" \
       --set "agent.additionalBackends[0].key=<your_agent_key>" \
       --set "agent.additionalBackends[0].endpointPort=443" \
       --set "agent.additionalBackends[1].endpointHost=<your_other_host_agent_endpoint>" \
       --set "agent.additionalBackends[1].key=<your_other_agent_key>" \
       --set "agent.additionalBackends[1].endpointPort=443" \
       instana-agent
     
  • Für den Host-Agenten, der mit Operator installiert wird:

    apiVersion: instana.io/v1
    kind: InstanaAgent
    metadata:
      name: instana-agent
      namespace: instana-agent
    spec:
      zone:
        name: edited-zone # (optional) name of the zone of the host
      cluster:
        name: my-cluster
      agent:
        endpointHost: <your_host_agent_endpoint>
        endpointPort: "443"
        env: {}
        key: <your_agent_key>
        additionalBackends:
        - endpointHost: <your_host_agent_endpoint>
          endpointPort: "443"
          key: <your_agent_key>
        configuration_yaml: |
          # You can leave this empty, or use this to configure your instana agent.
          # See https://github.com/instana/instana-agent-operator/blob/main/config/samples/instana_v1_extended_instanaagent.yaml for the extended version.
     

Weitere Informationen zur Berichterstellung an mehrere Backends über einen „ Kubernetes “-Agenten finden Sie unter „ Instana -Backend konfigurieren “.