Amministrazione dell'agente dell' Instana su Kubernetes

Dopo aver installato l'agente, configuralo e gestiscilo secondo le tue esigenze. Per tutte le opzioni di configurazione dell'agente disponibili su Kubernetes, consultare le sezioni seguenti.

Verifica dello stato dell'agente host

Dopo aver installato l'agente host, controlla lo stato dell'agente host nell'interfaccia utente di Instana o direttamente sull'host. Per ulteriori informazioni, vedere Verifica dello stato dell'agente host.

Configurazione dell'agent

È possibile configurare l'agente su Kubernetes utilizzando il file di configurazione dell'agente oppure le variabili d'ambiente.

Configurazione dell'agente tramite il file di configurazione

La procedura di configurazione dell'agente varia a seconda che l'agente sia stato installato tramitel'operatore o tramite il grafico " Helm ".

Configurazione dell'agente tramite il file di configurazione in un'installazione operatore

Per configurare l'agente installato tramite l'operatore, procedere come segue:

  1. Apri il file di risorse personalizzate YAMLinstana-agent.customresource.yaml.

  2. Salvare le configurazioni sotto 'spec.agent.configuration_yaml. Vedi il seguente esempio:

    spec:
      agent:
        configuration_yaml: |
          # Example of configuration yaml template
          # Host
          com.instana.plugin.host:
            tags:
              - 'dev'
              - 'app1'
     
  3. Applica le modifiche eseguendo il seguente comando:

    kubectl apply -f instana-agent.customresource.yaml
     

Per un esempio dettagliato del file ` YAML `, consultare instana_v1_extended_instanaagent.yaml.

Per una panoramica completa delle opzioni di configurazione presenti nel file di configurazione, consultare la sezione "Configurazione degli agenti host tramite il file di configurazione dell'agente ".

Configurazione dell'agente tramite il file di configurazione in un'installazione di Chart su Helm

Per configurare l'agente di monitoraggio della sicurezza ( Instana ) installato tramite il grafico " Helm ", scegliere uno dei seguenti metodi:

Metodo 1: Utilizzo di un values.yaml file

Aggiungere la configurazione al file di configurazione del values.yamlgrafico ` Helm `. Passare il file ai comandi di installazione Helm (durante l'installazione) o di aggiornamento Helm (dopo l'installazione) utilizzando il -f values.yaml flag.

  1. Crea o modifica il values.yaml file contenente la configurazione del tuo agente:
    agent:
      configuration_yaml: |
        # Example of configuration yaml template
        # Host
        com.instana.plugin.host:
          tags:
            - 'dev'
            - 'app1'
  2. Durante l'installazione, applicare la seguente configurazione:
    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. Aggiornare un'installazione esistente con la seguente configurazione:
    helm upgrade instana-agent \
      --repo https://agents.instana.io/helm \
      --namespace instana-agent \
      -f values.yaml \
      instana-agent
Metodo 2: Utilizzo di un file configuration.yaml separato

Crea un file configuration.yaml separato contenente la configurazione del tuo agente e passalo direttamente utilizzando il --set flag con la sostituzione di comando.

  1. Crea un configuration.yaml file con la configurazione del tuo agente:
    # Example of configuration yaml template
    # Host
    com.instana.plugin.host:
      tags:
        - 'dev'
        - 'app1'
  2. Durante l'installazione, applicare la seguente configurazione:
    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. Aggiornare un'installazione esistente con la seguente configurazione:
    helm upgrade instana-agent \
      --repo https://agents.instana.io/helm \
      --namespace instana-agent \
      --set agent.configuration_yaml="$(cat configuration.yaml)" \
      instana-agent

Per ulteriori informazioni sull'elenco di tutti i parametri di configurazione, consultare la tabella all'indirizzo InstanaHelm.

Configurazione dell'agente tramite variabili d'ambiente

La procedura di configurazione dell'agente varia a seconda che l'agente sia stato installato tramitel'operatore o tramite il grafico " Helm ".

Per una panoramica completa delle variabili d'ambiente disponibili, consultare la sezione «Variabili d'ambiente per l'agente host ».

Configurazione dell'agente tramite variabili d'ambiente in un'installazione dell'operatore

Per configurare le variabili d'ambiente dell'agente Instana installato tramite l'operatore, procedere come segue:

  1. Apri il file di risorse personalizzate YAMLinstana-agent.customresource.yaml.

  2. Salvare le configurazioni sotto 'spec.agent.configuration_yaml. Vedi il seguente esempio:

    spec:
      agent:
        env:
          INSTANA_AGENT_TAGS: dev
          JAVA_OPTS: -Xms<value>
     
  3. Applica le modifiche eseguendo il seguente comando:

    kubectl apply -f instana-agent.customresource.yaml
     

Per un esempio dettagliato del file ` YAML `, consultare instana_v1_extended_instanaagent.yaml.

Configurazione dell'agente tramite variabili d'ambiente in un'installazione di Chart su Helm

Per configurare le variabili d'ambiente dell'agente Instana installato tramite il chart Helm, scegliere uno dei seguenti metodi:

  • Aggiungere le variabili d'ambiente al file di configurazione del values.yamlgrafico Helm. Passare il file ai comandi di installazione Helm (durante l'installazione) o di aggiornamento Helm (dopo l'installazione) utilizzando il -f values.yaml flag.

Si veda il seguente esempio del file values.yaml : yaml {: codeblock} agent: env: INSTANA_AGENT_TAGS: dev JAVA_OPTS: -Xms<value>

  • Specificare la configurazione direttamente dalla riga di comando utilizzando il flag --set agent.env.<KEY>=<VALUE> .

Personalizzazione della configurazione dell'agente

Dopo l'installazione dell'agente host, vengono creati i seguenti file di configurazione:

/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
 

È possibile personalizzare la configurazione dell'agente secondo le proprie esigenze. Ad esempio, è possibile modificare la porta e il nome host di TCP del backend Instana e dei servizi a cui si connette l'agente host, configurare l'agente in modo che invii i rapporti a più backend oppure configurare l'uso di un proxy per la comunicazione indiretta dall'agente host al backend Instana.

Per ulteriori informazioni sulla personalizzazione della configurazione dell'agente, consultare i seguenti argomenti:

Aggiornamento dell'installazione dell'agente

A seconda del metodo di installazione utilizzato, è possibile aggiornare l'agente Instana per Kubernetes in diversi modi.

Aggiornamento di un impianto dell'operatore

L'aggiornamento dell'installazione dell'agente comporta due fasi:

  1. Aggiornamento dell'operatore
  2. Aggiornamento delle immagini

Per aggiornare l'operatore, completare i seguenti passaggi:

  1. Nella pagina iniziale dell'interfaccia utente di Instana, fare clic su "Agenti e addetti alla raccolta ". Nella scheda " Instana Agents ", seleziona "Installa agenti".

  2. Nella pagina del catalogo di distribuzione dell'agente, fare clic sul riquadro OpenShift - Operator.

  3. Copiare ed eseguire il comando per distribuire il nuovo operatore. Vedere il seguente esempio di comando:

    kubectl apply -f https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yaml
     
    Nota: per aggiornare l'operatore a una versione specifica, eseguire il seguente comando:
    kubectl apply -f https://github.com/instana/instana-agent-operator/releases/download/<operator_version>/instana-agent-operator.yaml
    Per l'elenco delle versioni dell'operatore disponibili, consultare le Note di rilascio relative all'operatore dell'agente di Instana.

Una volta aggiornato l'operatore, procedere all'aggiornamento delle immagini.

Aggiornamento di un'installazione di grafici di Helm

L'aggiornamento dell'installazione dell'agente comporta due fasi:

  1. Aggiornamento del grafico dell' Helm
  2. Aggiornamento delle immagini

Per aggiornare il grafico dell' Helm e dell'agente, eseguire il seguente comando:

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
 
Nota: la versione 2.0.0 e le versioni precedenti di Instana, dell'agente Helm e dei grafici non dispongono della instana-agent/crds cartella. Pertanto, tale kubectl apply -f instana-agent/crds fase non è necessaria.

Una volta aggiornato il grafico " Helm ", procedi con l'aggiornamento delle immagini.

Aggiornamento delle immagini

Il DaemonSet 'instana-agent e il deployment 'k8sensor sono impostati per estrarre l'immagine più recente all'avvio del pod. Per forzare l'aggiornamento, eseguire i seguenti comandi:

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

Instana non offre un meccanismo per aggiornare automaticamente queste immagini. È possibile utilizzare soluzioni adatte alle proprie esigenze, come CronJobs quelle che garantiscono privilegi sufficienti per restart i carichi di lavoro, oppure strumenti più avanzati Kubernetes GitOps quali le automazioni per l'aggiornamento delle immagini FluxCD della Fondazione CNCF.

Gestione degli agenti tramite la dashboard di gestione agenti

È possibile eseguire le seguenti operazioni utilizzando la dashboard Gestione agenti nell'interfaccia utente di Instana :

Per aprire la dashboard di gestione degli agenti, procedere come segue:

  1. Nella barra laterale dell'interfaccia utente di Instana, seleziona "Infrastruttura".
  2. Fare clic su un host monitorato specifico.
  3. Nella dashboard dell'host, fare clic su Apri gestione agenti.

Configurazione dell'accesso alla rete per le applicazioni monitorate

È necessario configurare l'accesso alla rete dei seguenti tipi di applicazioni affinché possano comunicare con l'agente:

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

Queste applicazioni devono conoscere l'indirizzo IP su cui l'agente è in ascolto. L'agente host ascolta automaticamente l'IP dell'host. È possibile utilizzare il seguente snippet di ` API ` per passare l'IP dell'host, contenuto in una variabile d'ambiente, al pod dell'applicazione:

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

Monitoraggio dei nodi del piano di controllo (precedentemente noti come nodi master)

Per impostazione predefinita, l'agente host non viene pianificato sui nodi del piano di controll Kubernetes o (precedentemente noti come nodi master), poiché l'implementazione rispetta il taint predefinito node-role.kubernetes.io/master:NoSchedule impostato sulla maggior parte dei nodi del piano di controllo. Per monitorare i nodi del piano di controllo, verificare innanzitutto quale taint è impostato su di essi eseguendo il seguente comando e controllando la presenza di .spec.taints nella risposta:

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

A questo punto, aggiungere la tolleranza all'agente DaemonSet per il taint impostato sul nodo del piano di controllo. Se il nodo del piano di controllo presenta il taint predefinito, la tolleranza appropriata per il Daemonset dell'agente è la seguente:

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

Dopo aver stabilito la tolleranza richiesta per il monitoraggio dei nodi del piano di controllo, imposta la tolleranza durante l'installazione dell'agente.

Se hai installato l'agente utilizzando il grafico " Helm ", puoi specificare le tolleranze in due modi:

  • Utilizzando il flag --set agent.pod.tolerations

  • Creando un values.yaml file con il seguente contenuto e passando poi il file al comando di installazione di Helm utilizzando il flag -f values.yaml:

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"
 

Se hai installato l'agente tramite l'operatore, aggiungi le tolleranze nella risorsa personalizzata all'interno .spec.agent.pod.tolerations del instana-agent.customresource.yaml file. Vedi il seguente esempio:

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

Quindi, applicare la nuova risorsa personalizzata al cluster eseguendo il seguente comando:

kubectl apply -f instana-agent.customresource.yaml
 

Per un controllo più diretto, installare l'agente host separatamente sui nodi del piano di controllo.

Configurazione dei segreti dell'agente

Kubernetes dispone di un supporto integrato per l'archiviazione e la gestione delle informazioni sensibili. Tuttavia, se non si utilizza questa funzionalità integrata ma si desidera comunque poter oscurare i dati sensibili nelle risorse di un Kubernetes, è possibile configurare i segreti dell'agente.

Per abilitare l'occultamento dei dati sensibili per le risorse selezionate di Kubernetes (in particolare le annotazioni e le variabili d'ambiente dei container), procedere come segue:

  1. Imposta la variabile INSTANA_KUBERNETES_REDACT_SECRETS d'ambiente come true indicato nel seguente frammento di codice dell' YAML e dell'agente:

    spec:
      containers:
          env:
            - name: INSTANA_KUBERNETES_REDACT_SECRETS
              value: "true"
     
  2. Configurare l'agente host con l'elenco dei segreti desiderato, come descritto nella configurazione dei segreti dell'agente.

Nota: attivando questa funzione, potresti notare un calo delle prestazioni del sensore " Kubernetes ".

Invio dei dati a più backend

Per l'agente host installato tramite l'Operator o il grafico " Helm ", è possibile aggiungere ulteriori backend eseguendo il seguente comando:

  • Per l'agente host installato tramite il grafico Helm:

       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
     
  • Per l'agente host installato tramite Operatore:

    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.
     

Per ulteriori informazioni sull'invio di report a più backend da un agente Kubernetes, consultare la sezione Configurazione di un backend Instana.