Installazione di " IDOT " nei cluster " Kubernetes " tramite l'operatore

Installazione dell'operatore " IDOT " utilizzando il grafico " Helm "

Helm è un gestore di pacchetti per Kubernetes. Con Helm è possibile definire, installare e aggiornare applicazioni complesse di Kubernetes.

Prerequisiti

  • Kubernetes 1.24 e più tardi
  • Helm 3.9 e più tardi
  • kubectl
  • Autorizzazioni amministratore cluster per creare definizioni di risorse personalizzate (CRD)

Procedura

Per installare l'Operator " IDOT " in un ambiente " Kubernetes ", procedere come segue:

  1. Facoltativo ma consigliato: creare uno spazio dei nomi dedicato per l'operatore eseguendo il seguente comando:

    kubectl create namespace instana-otel-operator
     
  2. Installare l'operatore " IDOT " in " Kubernetes " eseguendo il seguente comando:

      helm install instana-otel-operator \
      --repo https://instana.github.io/instana-otel-collector instana-otel-collector-chart-operator \
      --namespace instana-otel-operator \
      --create-namespace \
      --set clusterName=<CLUSTER_NAME> \
      --set instanaEndpoint=<INSTANA_ENDPOINT> \
      --set instanaKey=<INSTANA_KEY> \
      --set daemonset.enabled=true \
      --set statefulset.enabled=true
    Tabella 1. Parametri di installazione
    Parametro Descrizione Obbligatorio
    clusterName Nome del cluster di Kubernetes da visualizzare nell'interfaccia utente di Instana
    instanaEndpoint L'endpoint gRPC del tuo ambiente Instana
    instanaKey Instana chiave dell'agente per l'autenticazione all'endpoint

    Come individuare i valori di configurazione:

    È possibile trovare questi parametri nell'interfaccia utente di Instana alla voce " Agent & collectors " > " OpenTelemetry " > "Collectors":
    • Fare clic su "Installa un collettore " > "Operatore Kubernetes ".
    • Nel comando di installazione:
      • INSTANA_KEY: Cerca la chiave dell'agente dopo il -a flag.
      • INSTANA_OTEL_ENDPOINT_GRPC: Cerca l'endpoint gRPC dopo il -e flag.
      • INSTANA_OTEL_ENDPOINT_HTTP: Cerca l'endpoint HTTP dopo il -H flag.
    Nota: il --create-namespace flag crea lo spazio dei nomi se questo non esiste. È possibile omettere questo flag se lo spazio dei nomi esiste già o è stato creato manualmente.

    Per ulteriori informazioni sui requisiti di sistema completi, consultare la pagina IDOT system requirements.

  3. Verificare l'installazione dell'operatore: dopo l'installazione, verificare che l'operatore sia stato installato correttamente eseguendo il seguente comando:

    kubectl get pods -n instana-otel-operator
     

    Se l'installazione ha esito positivo, viene visualizzato il seguente output:

    NAME                                     READY   STATUS    RESTARTS   AGE
    instana-otel-operator-7d9f8b5c6d-xk2lm   2/2     Running   0          30s
     

    L'età della distribuzione e l'ID del pod variano a seconda di quando è stato eseguito il comando di installazione.

  4. Verificare che le definizioni delle risorse personalizzate (CRD) siano installate eseguendo il seguente comando:

    kubectl get crd | grep opentelemetry
     

    Il CRD dell' OpenTelemetryCollector e deve essere elencato nell'output.

Aggiornamento della configurazione del collettore

Per aggiornare la configurazione del collettore, modificare la risorsa personalizzata OpenTelemetryCollector :

kubectl edit opentelemetrycollector idot-daemonset -n instana-otel-operator
kubectl edit opentelemetrycollector idot-statefulset -n instana-otel-operator
 

L'operatore rileva automaticamente le modifiche e aggiorna i pod di raccolta di conseguenza.

Controllo dello stato dell'operatore e del collettore

Per verificare lo stato dell'operatore, eseguire il seguente comando:

kubectl describe pod -n instana-otel-operator -l app.kubernetes.io/name=opentelemetry-operator
 

Per verificare lo stato delle istanze del collettore, eseguire il comando seguente:

kubectl get opentelemetrycollector -n instana-otel-operator
 

Per visualizzare informazioni dettagliate su un collettore specifico, eseguire il comando seguente:

kubectl describe opentelemetrycollector idot-daemonset -n instana-otel-operator
kubectl describe opentelemetrycollector idot-statefulset -n instana-otel-operator
 

Per controllare i log dei pod collector, esegui il seguente comando:

kubectl logs -n instana-otel-operator -l app.kubernetes.io/managed-by=opentelemetry-operator
 

Aggiornamento dell'operatore " IDOT "

Per aggiornare l'Operator di IDOT a una nuova versione, eseguire il seguente comando:

helm upgrade instana-otel-operator \
  --repo https://instana.github.io/instana-otel-collector instana-otel-collector-chart-operator  \
  --namespace instana-otel-operator
 

L'operatore gestisce automaticamente l'aggiornamento delle istanze del collettore gestito in base alla strategia di aggiornamento definita nelle risorse personalizzate.

Disinstallazione dell'operatore " IDOT " da Kubernetes

Per disinstallare l'operatore, completare i seguenti passaggi:

  1. Disinstallare l'operatore Helm Grafico:

    helm uninstall instana-otel-operator -n instana-otel-operator
     
  2. Opzionale: eliminare gli spazi dei nomi eseguendo i seguenti comandi:

    kubectl delete namespace instana-otel-operator
     

Installazione dell'operatore " IDOT " in " Red Hat OpenShift "

L'operatore " IDOT " può essere installato anche nei cluster " Red Hat OpenShift ".

Prerequisiti

Prima di installare l'operatore su un cluster Red Hat OpenShift 4.x, assicurati di disporre dei permessi di amministratore del cluster per creare CRD e gestire gli operatori.

Procedura

Dopo aver effettuato l'accesso al cluster di Red Hat OpenShift, segui questi passaggi per installare l' IDOT Operator:

  1. Facoltativo ma consigliato: creare un progetto dedicato all'operatore eseguendo il seguente comando:

    oc new-project instana-otel-operator
     
  2. Installare l'operatore " IDOT " nel cluster " Red Hat OpenShift " eseguendo il seguente comando:

      helm install instana-otel-operator \
      --repo https://instana.github.io/instana-otel-collector instana-otel-collector-chart-operator \
      --namespace instana-otel-operator \
      --create-namespace \
      --set clusterName=<CLUSTER_NAME> \
      --set instanaEndpoint=<INSTANA_ENDPOINT> \
      --set instanaKey=<INSTANA_KEY> \
      --set daemonset.enabled=true \
      --set statefulset.enabled=true
     
  3. Verifica l'installazione di Red Hat OpenShift : Controlla i pod dell'operatore eseguendo il seguente comando:

    oc get pods -n instana-otel-operator
     

    In alternativa, è possibile utilizzare il kubectl comando se il computer utilizzato per accedere al cluster ha il comando installato:

    kubectl get pods -n instana-otel-operator
     

Disinstallazione dell'operatore " IDOT " da Red Hat OpenShift

Per disinstallare l'Operatore " IDOT " da " Red Hat OpenShift ", eseguire il seguente comando:

helm uninstall instana-otel-operator -n instana-otel-operator
 

Configurazione dell'operatore " IDOT "

L'operatore può essere configurato tramite valori dell' Helm, mentre le istanze del collettore tramite risorse personalizzate.

Parametri di configurazione dell'operatore

Durante l'installazione o l'aggiornamento dell'operatore è possibile impostare i seguenti parametri:

Parametro Descrizione Predefinito
replicaCount Numero di repliche dell'operatore 1
image.repository Archivio immagini operatore ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator
image.tag Tag immagine operatore Versione del grafico
resources.limits.cpu Limiti della CPU per l'operatore 100m
resources.limits.memory Limiti di memoria per l'operatore 128Mi
resources.requests.cpu Richieste CPU per l'operatore 100m
resources.requests.memory Richieste di memoria per l'operatore 64Mi
manager.collectorImage.repository Repository immagini predefinito del collettore ghcr.io/instana/instana-otel-collector

Parametri delle risorse personalizzate del collettore

I seguenti parametri possono essere configurati nella risorsa personalizzata OpenTelemetryCollector :

Parametro Descrizione Valori
spec.mode Modalità di distribuzione per il collettore daemonset, deployment, statefulset, sidecar
spec.replicas Numero di repliche (modalità deployment o statefulset) Numero intero
spec.image Immagine personalizzata del collettore Riferimento immagine
spec.config OpenTelemetry Configurazione del collettore YAML stringa
spec.resources Richieste e limiti di risorse Kubernetes specifiche delle risorse
spec.env Variabili di ambiente Matrice di variabili ambientali
spec.volumeMounts Supporti di montaggio per contenitori di raccolta Matrice di montaggi di volume
spec.volumes Volumi per contenitori di raccolta Matrice di volumi

Esempio con limiti di risorse:

apiVersion: opentelemetry.io/v1alpha1
kind: OpenTelemetryCollector
metadata:
  name: instana-collector
  namespace: instana-otel-operator
spec:
  mode: daemonset
  resources:
    limits:
      cpu: 1.5
      memory: 768Mi
    requests:
      cpu: 0.5
      memory: 768Mi
  config: |
    # ... collector configuration ...
 

Risoluzione dei problemi

Durante l'installazione di IDOT su Kubernetes o Red Hat OpenShift potrebbero verificarsi i seguenti problemi:

L'operatore non crea collettori

Se l'operatore non sta creando pod di raccolta, verificare quanto segue:

  1. Verificare che l'operatore sia in funzione:

    kubectl get pods -n instana-otel-operator
    kubectl logs -n instana-otel-operator -l app.kubernetes.io/name=opentelemetry-operator
     
  2. Controlla l' OpenTelemetryCollectors:

    kubectl get opentelemetrycollector -n instana-otel-operator
     
  3. Verificare che i CRD siano installati:

    kubectl get crd opentelemetrycollectors.opentelemetry.io
     

I pod di raccolta non si avviano

Se i pod di raccolta non si avviano, controllare quanto segue:

  1. Controlla gli eventi del pod eseguendo il seguente comando:

    kubectl describe pod -n instana-otel-operator -l app.kubernetes.io/managed-by=opentelemetry-operator
     
  2. Verificare che la configurazione del collettore sia valida eseguendo il seguente comando:

    kubectl get opentelemetrycollector idot-daemonset -n instana-otel-operator -o yaml
    kubectl get opentelemetrycollector idot-statefulset -n instana-otel-operator -o yaml
     
  3. Verificare la presenza di limitazioni delle risorse eseguendo il seguente comando:

    kubectl top nodes
    kubectl top pods -n instana-otel-operator
     
  4. Esegui il comando seguente per esaminare i registri del collettore:

    kubectl logs -n instana-otel-operator -l app.kubernetes.io/managed-by=opentelemetry-operator
     

Per ulteriori indicazioni sulla risoluzione dei problemi, consultare la guida "Risoluzione dei problemi" all'indirizzo IDOT.