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:
Apri il file di risorse personalizzate YAML
instana-agent.customresource.yaml.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'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.
- Crea o modifica il
values.yamlfile contenente la configurazione del tuo agente:agent: configuration_yaml: | # Example of configuration yaml template # Host com.instana.plugin.host: tags: - 'dev' - 'app1' - 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 - 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.
- Crea un
configuration.yamlfile con la configurazione del tuo agente:# Example of configuration yaml template # Host com.instana.plugin.host: tags: - 'dev' - 'app1' - 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 - 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:
Apri il file di risorse personalizzate YAML
instana-agent.customresource.yaml.Salvare le configurazioni sotto '
spec.agent.configuration_yaml. Vedi il seguente esempio:spec: agent: env: INSTANA_AGENT_TAGS: dev JAVA_OPTS: -Xms<value>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.yamlflag.
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:
- Registrazione degli agenti
- Configurazione del backend di Instana
- Configurazione della modalità agente host
- Configurazione degli agenti host tramite il file di configurazione dell'agente
- Conversione di un agente statico in un agente dinamico
- Limitare la CPU e la memoria dell'agente host
- Recupero della versione corrente degli agenti dinamici
- Impostazione di un proxy agente
- Configurazione della crittografi TLS e per l'endpoint dell'agente
- Intervallo di aggiornamento degli agenti dinamici
- Pinning di versione degli agenti dinamici
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:
- Aggiornamento dell'operatore
- Aggiornamento delle immagini
Per aggiornare l'operatore, completare i seguenti passaggi:
Nella pagina iniziale dell'interfaccia utente di Instana, fare clic su "Agenti e addetti alla raccolta ". Nella scheda " Instana Agents ", seleziona "Installa agenti".
Nella pagina del catalogo di distribuzione dell'agente, fare clic sul riquadro OpenShift - Operator.
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.yamlNota: per aggiornare l'operatore a una versione specifica, eseguire il seguente comando:
Per l'elenco delle versioni dell'operatore disponibili, consultare le Note di rilascio relative all'operatore dell'agente di Instana.kubectl apply -f https://github.com/instana/instana-agent-operator/releases/download/<operator_version>/instana-agent-operator.yaml
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:
- Aggiornamento del grafico dell' Helm
- 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
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 :
- Cambio di modalità dell'agente
- Modifica del livello di log
- Aggiornamento degli agenti
- Azzeramento degli agenti
- Agenti di riavvio
- Sensori di visualizzazione
- [Gestione della configurazione]
- Auto-monitoraggio
Per aprire la dashboard di gestione degli agenti, procedere come segue:
- Nella barra laterale dell'interfaccia utente di Instana, seleziona "Infrastruttura".
- Fare clic su un host monitorato specifico.
- 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.tolerationsCreando un
values.yamlfile 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.
Monitoraggio Kubernetes NGINX Ingress
Per configurare l'Ingress di Kubernetes NGINX e l'agente host per l'acquisizione delle metriche di NGINX, consultare la sezione Monitoraggio su NGINX.
Per abilitare il tracciamento distribuito per l'Ingress Kubernetes NGINX, consultare Tracciamento distribuito per l'Ingress NGINX.
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:
Imposta la variabile
INSTANA_KUBERNETES_REDACT_SECRETSd'ambiente cometrueindicato nel seguente frammento di codice dell' YAML e dell'agente:spec: containers: env: - name: INSTANA_KUBERNETES_REDACT_SECRETS value: "true"Configurare l'agente host con l'elenco dei segreti desiderato, come descritto nella configurazione dei segreti dell'agente.
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-agentPer 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.