Creazione di un archivio dati Elasticsearch su Linux x86_64
Installare l'operatore Elasticsearch e configurare l'archivio dati.
Prima di iniziare
Assicurarsi di aver preparato l'host online e offline per estrarre le immagini dal repository esterno. Assicurati inoltre di aver aggiunto il repository Helm .
Per ulteriori informazioni, consultare la sezione "Preparazione all'installazione degli operatori dell'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.
| Piattaforma | Versioni operatore | Versione grafico Helm | Immagine con tag |
|---|---|---|---|
| Linux® x86_64 | 3.4.1 | 3.4.1 | artifact-public.instana.io/self-hosted-images/3rd-party/operator/elasticsearch: 3.4.1_v0.34.0artifact-public.instana.io/self-hosted-images/3rd-party/datastore/elasticsearch: 8.18.6_v0.25.0 |
Installazione di " Elasticsearch " online
Completare questi passi per installare l'archivio dati Elasticsearch .
Crea lo spazio dei nomi
instana-elastic.kubectl create namespace instana-elasticCrea l'account
elasticsearchdi servizio.kubectl create serviceaccount elasticsearch -n instana-elasticCrea i segreti di pull dell'immagine 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.ioInstallare 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"Crea un file ` YAML `, ad esempio
elastic.yaml, con la configurazione ` Elasticsearch `.apiVersion: elasticsearch.k8s.elastic.co/v1 kind: Elasticsearch metadata: name: instana spec: version: 8.18.6 image: artifact-public.instana.io/self-hosted-images/3rd-party/datastore/elasticsearch:8.18.6_v0.25.0 nodeSets: - name: default count: 3 config: node.roles: - master - data - ingest node.store.allow_mmap: false search.max_buckets: 300000 podTemplate: spec: # Add the following podAntiAffinity snippet to schedule each pod on a different node. # affinity: # podAntiAffinity: # requiredDuringSchedulingIgnoredDuringExecution: # - labelSelector: # matchLabels: # elasticsearch.k8s.elastic.co/cluster-name: instana # topologyKey: kubernetes.io/hostname serviceAccountName: elasticsearch imagePullSecrets: - name: instana-registry # Add the following securityContext snippet for Kubernetes offerings other than OCP. # securityContext: # fsGroup: 1000 # runAsGroup: 1000 # runAsUser: 1000 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: trueCompleta 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.18.6_v0.25.0
Esegui i seguenti passaggi sul tuo host Instana.
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>/operator/elasticsearch:3.4.1_v0.34.0 docker tag artifact-public.instana.io/self-hosted-images/3rd-party/datastore/elasticsearch:8.18.6_v0.25.0 <internal-image-registry>/datastore/elasticsearch:8.18.6_v0.25.0Eseguire il push delle immagini al registro delle immagini interno.
docker push <internal-image-registry>/operator/elasticsearch:3.4.1_v0.34.0 docker push <internal-image-registry>/datastore/elasticsearch:8.18.6_v0.25.0Crea lo spazio dei nomi
instana-elasticper le istanze Elasticsearch .kubectl create namespace instana-elasticCrea l'account
elasticsearchdi servizio.kubectl create serviceaccount elasticsearch -n instana-elasticOpzionale: 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>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 --version=3.4.1 --set image.repository=<internal-image-registry>/operator/elasticsearch --set image.tag=3.4.1_v0.34.0Crea un file ` YAML `, ad esempio
elasticsearch.yaml, con la configurazione ` Elasticsearch `.apiVersion: elasticsearch.k8s.elastic.co/v1 kind: Elasticsearch metadata: name: instana spec: version: 8.18.6 image: <internal-image-registry>/datastore/elasticsearch:8.18.6_v0.25.0 nodeSets: - name: default count: 3 config: node.roles: - master - data - ingest node.store.allow_mmap: false podTemplate: spec: # Add the following podAntiAffinity snippet to schedule each pod on a different node. . # affinity: # podAntiAffinity: # requiredDuringSchedulingIgnoredDuringExecution: # - labelSelector: # matchLabels: # elasticsearch.k8s.elastic.co/cluster-name: instana # topologyKey: kubernetes.io/hostname serviceAccountName: elasticsearch # Optional: if you created an image pull secret for your internal registry, uncomment the following lines and update the image pull secret information. # imagePullSecrets: # - name: <internal-image-registry-pull-secret> # Add the following securityContext snippet for Kubernetes offerings other than OCP. # securityContext: # fsGroup: 1000 # runAsGroup: 1000 # runAsUser: 1000 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: trueCompleta 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:
Distribuire Elasticsearch. Per impostazione predefinita, un utente con il nome
elasticviene 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-elasticRichiamare la parola d'ordine.
kubectl get secret instana-es-elastic-user -n instana-elastic -o go-template='{{.data.elastic | base64decode}}' && echoMemorizzare la password richiamata in
config.yamlcome 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> ...Verificare la distribuzione dell'operatore Elasticsearch .
kubectl get all -n instana-elasticSe l'operatore Elasticsearch viene distribuito correttamente, l'output del comando mostra lo stato dell'operatore come
Runningcome 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