Creazione di un archivio dati Elasticsearch su Linux on Power ( ppc64le )

Installare l'operatore Elasticsearch e configurare l'archivio dati.

Elasticsearch versioni degli operatori e tag delle immagini

Le seguenti immagini sono necessarie per le versioni dell'operatore o del grafico Helm in evidenza.

Tabella 1. Versioni dell'operatore e tag immagine per la distribuzione
Piattaforma Versioni operatore Versione grafico Helm Immagine con tag
Linux® on Power® (ppc64le) 3.4.1 3.4.1

artifact-public.instana.io/self-hosted-images/3rd-party/operator/elasticsearch: 3.4.1_v0.34.0

artifact-public.instana.io/self-hosted-images/3rd-party/datastore/elasticsearch: 8.19.13_v0.35.0

Installazione di " Elasticsearch " online

Completare questi passi per installare l'archivio dati Elasticsearch .

  1. Crea lo spazio dei nomi instana-elastic .

    kubectl create namespace instana-elastic
     
  2. Crea l'account elasticsearch di servizio.

    kubectl create serviceaccount elasticsearch -n instana-elastic
     
  3. Crea i segreti di estrazione delle immagini per lo spazio dei nomi instana-elastic. Aggiornare il valore <download_key> con la propria chiave di download.

    kubectl create secret docker-registry instana-registry --namespace instana-elastic \
    --docker-username=_ \
    --docker-password=<download_key> \
    --docker-server=artifact-public.instana.io
     
  4. Installare l'operatore Elasticsearch .

    helm install elastic-operator instana/eck-operator -n instana-elastic --version=3.4.1 --set image.repository=artifact-public.instana.io/self-hosted-images/3rd-party/operator/elasticsearch --set image.tag=3.4.1_v0.34.0 --set imagePullSecrets[0].name="instana-registry"
     
  5. Crea un file ` YAML `, ad esempio elastic.yaml, con la configurazione ` Elasticsearch `.

    apiVersion: elasticsearch.k8s.elastic.co/v1
    kind: Elasticsearch
    metadata:
      name: instana
    spec:
      image: artifact-public.instana.io/self-hosted-images/3rd-party/datastore/elasticsearch:8.19.13_v0.35.0
      version: 8.19.13
      nodeSets:
        - name: default
          count: 3
          podTemplate:
            spec:
              serviceAccountName: elasticsearch
              imagePullSecrets:
                - name: instana-registry
          config:
            node.roles: ["master", "data", "ingest"]
            node.store.allow_mmap: false
            xpack.ml.enabled: false
          volumeClaimTemplates:
            - metadata:
                name: elasticsearch-data # Do not change this name unless you set up a volume mount for the data path.
              spec:
                accessModes:
                  - ReadWriteOnce
                resources:
                  requests:
                    storage: 20Gi
      http:
        tls:
          selfSignedCertificate:
            disabled: true
     
  6. Completa la procedura in Distribuzione e verifica di Elasticsearch (online e offline).

Installazione offline di Elasticsearch

Se non hai ancora eseguito il pull delle immagini Elasticsearch dal registro esterno quando hai preparato per l'installazione, puoi eseguirne il pull ora. Immetti questi comandi sul tuo host bastion. Quindi, copia le immagini sul tuo host Instana che si trova nel tuo ambiente isolato.

docker pull artifact-public.instana.io/self-hosted-images/3rd-party/operator/elasticsearch:3.4.1_v0.34.0
docker pull artifact-public.instana.io/self-hosted-images/3rd-party/datastore/elasticsearch:8.19.13_v0.35.0
         

Esegui i seguenti passaggi sul tuo host Instana.

  1. Contrassegnare le immagini con una nuova tag nel registro delle immagini interno.

    docker tag artifact-public.instana.io/self-hosted-images/3rd-party/operator/elasticsearch:3.4.1_v0.34.0 <internal-image-registry>/ppc64le-oss/eck-operator-ppc64le:3.4.1_v0.34.0
    docker tag artifact-public.instana.io/self-hosted-images/3rd-party/datastore/elasticsearch:8.19.13_v0.35.0 <internal-image-registry>/ppc64le-oss/elasticsearch-ppc64le:8.19.13_v0.35.0
                   
  2. Esegui il push delle immagini nel tuo registro immagini interno sul tuo host bastion.

    docker push <internal-image-registry>/self-hosted-images/3rd-party/operator/elasticsearch:3.4.1_v0.34.0
    docker push <internal-image-registry>/ppc64le-oss/elasticsearch-ppc64le:8.19.13_v0.35.0
                   
  3. Crea lo spazio dei nomi instana-elastic per le istanze Elasticsearch .

    kubectl create namespace instana-elastic
     
  4. Crea l'account elasticsearch di servizio.

    kubectl create serviceaccount elasticsearch -n instana-elastic
     
  5. Opzionale: Creare un segreto di estrazione dell'immagine se il registro delle immagini interno richiede l'autenticazione.

    kubectl create secret docker-registry <secret_name> --namespace instana-elastic \
    --docker-username=<registry_username> \
    --docker-password=<registry_password> \
    --docker-server=<internal-image-registry>:<internal-image-registry-port> \
    --docker-email=<registry_email>
     
  6. Installare l'operatore Elasticsearch . Se si è creata un'immagine pull secret nel passaggio precedente, aggiungere --set imagePullSecrets[0].name="<internal-image-registry-pull-secret>" al comando seguente.

    helm install elastic-operator eck-operator-3.4.1.tgz -n instana-elastic --create-namespace --version=3.4.1 --set image.repository=<internal-image-registry>/self-hosted-images/3rd-party/operator/elasticsearch --set image.tag=3.4.1_v0.34.0
                   
  7. Crea un file ` YAML `, ad esempio elasticsearch.yaml, con la configurazione ` Elasticsearch `.

    apiVersion: elasticsearch.k8s.elastic.co/v1
    kind: Elasticsearch
    metadata:
      name: instana
    spec:
      image: <internal-image-registry>/self-hosted-images/3rd-party/datastore/elasticsearch:8.19.13_v0.35.0
      version: 7.17.14
      nodeSets:
        - name: default
          count: 3
          podTemplate:
            spec:
              serviceAccountName: elasticsearch
          config:
            node.master: true
            node.data: true
            node.ingest: true
            node.store.allow_mmap: false
            xpack.ml.enabled: false
          volumeClaimTemplates:
            - metadata:
                name: elasticsearch-data # Do not change this name unless you set up a volume mount for the data path.
              spec:
                accessModes:
                  - ReadWriteOnce
                resources:
                  requests:
                    storage: 20Gi
      http:
        tls:
          selfSignedCertificate:
            disabled: true
     
  8. Completa la procedura in Distribuzione e verifica di Elasticsearch (online e offline).

Implementazione e verifica di Elasticsearch (online e offline)

Per distribuire l'istanza Elasticsearch e creare l'archivio dati, completare la seguente procedura:

  1. Distribuire Elasticsearch. Per impostazione predefinita, un utente con il nome elastic viene creato con una password generata casualmente.

    kubectl apply -f elastic.yaml -n instana-elastic
    kubectl wait elasticsearch/instana --for=condition=ReconciliationComplete --timeout=300s -n instana-elastic
     
  2. Richiamare la parola d'ordine.

    kubectl get secret instana-es-elastic-user -n instana-elastic -o go-template='{{.data.elastic | base64decode}}' && echo
     
  3. Memorizzare la password richiamata in config.yaml come mostrato nella seguente parte di codice. Sostituire < RETRIEVED_FROM_SECRET> con la password ricevuta nel passo precedente.

    datastoreConfigs:
      ...
      elasticsearchConfig:
        adminUser: elastic
        adminPassword: <RETRIEVED_FROM_SECRET>
        user: elastic
        password: <RETRIEVED_FROM_SECRET>
      ...
     
  4. Verificare la distribuzione dell'operatore Elasticsearch .

     kubectl get all -n instana-elastic
     

    Se l'operatore Elasticsearch viene distribuito correttamente, l'output del comando mostra lo stato dell'operatore come Running come mostrato nel seguente esempio:

     NAME                       READY   STATUS    RESTARTS      AGE
     pod/elastic-operator-0     1/1     Running   1 (10m ago)   10m
     pod/instana-es-default-0   1/1     Running   0             6m44s
     pod/instana-es-default-1   1/1     Running   0             6m44s
     pod/instana-es-default-2   1/1     Running   0             6m44s
    
     NAME                               TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
     service/elastic-operator-webhook   ClusterIP   192.168.1.41    <none>        443/TCP    10m
     service/instana-es-default         ClusterIP   None            <none>        9200/TCP   6m46s
     service/instana-es-http            ClusterIP   192.168.1.111   <none>        9200/TCP   6m48s
     service/instana-es-internal-http   ClusterIP   192.168.1.196   <none>        9200/TCP   6m48s
     service/instana-es-transport       ClusterIP   None            <none>        9300/TCP   6m48s
    
     NAME                                  READY   AGE
     statefulset.apps/elastic-operator     1/1     10m
     statefulset.apps/instana-es-default   3/3     6m48s