Elasticsearch

A configuration reference for elasticsearch service configuration in "Logging Operator"

Global Configuration

The below configurations will be applied to all elasticsearch node globally.

Cluster Information

We can define generic information like cluster name, image, and image pull policy for all elasticsearch nodes type.

  clusterName: "production"
  image: "docker.elastic.co/elasticsearch/elasticsearch:7.8.0"
  imagePullPolicy: "IfNotPresent"

Security

We can enable and disable the TLS communication and password for all elasticsearch nodes by using this setting.

  security:
    tlsEnabled: true
    password: "Opstree@1234"

Plugins

We can pass the list of plugins that we want to install in the elasticsearch cluster.

plugins: ["repository-s3"]

Elasticsearch Nodes

The below settings are available for all elasticsearch node types supported by "Logging Operator". Supported node types are:-

  • Master Node

  • Client/Coordinator Node

  • Ingestion Node

  • Data Node

For more information on node types, please go through the official documentation of elasticsearch.

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html

Enabled (For ES Nodes)

This setting can be used to enable and disable elasticsearch nodes in the Kubernetes cluster.

enabled: true

Count (For ES Nodes)

This will determine how many nodes of elasticsearch selected node type will run.

count: 3

Resources (For ES Nodes)

We can define this block for every node type and through this, we can configure which elasticsearch node will use how much resources.

    resources:
      requests:
        cpu: 500m
        memory: 2048Mi
      limits:
        cpu: 500m
        memory: 2048Mi

Storage (For ES Nodes)

Storage configuration for different elasticsearch node types.

    storage:
      volumeClaimTemplate:
        spec:
          accessModes: ["ReadWriteOnce"]
          resources:
            requests:
              storage: 1Gi
        selector: {}

JVM (For ES Nodes)

Java Max and Min heap size for elasticsearch nodes.

    jvmOptions:
      Xmx: "1g"
      Xms: "1g"

Affinity

Affinity to configure the pod scheduling on nodes.

    affinity:
      podAntiAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
            - key: app
              operator: In
              values:
              - "elasticsearch-cluster-master"
          topologyKey: kubernetes.io/hostname

Last updated