Installing Elasticsearch

Install the Elasticsearch offering of the Component Pack forHCL Connections.

Before you begin

There are two options for deploying Elasticsearch:
  • Deploy the open source stand-alone version of Elasticsearch as explained in Setting up stand-alone Elasticsearch
  • Follow the steps in this topic to deploy the Kubernetes Elasticsearch solution that comes as part of the Component Pack.

About this task

Before attempting to install Elasticsearch verify that the following tasks were successfully completed:

Procedure

  1. Install the Elasticsearch Helm chart by running the following command:
    Note:
    • The flag nodeAffinityRequired=true forces Elasticsearch pods to deploy to the labeled and tainted worker nodes for Elasticsearch (see Labeling and tainting worker nodes for Elasticsearch). If a worker node without the label and taint does not exist, the pods will not deploy at all. If you remove this flag from the helm installation, the deployment process will first try to deploy to the worker nodes with the label and taint, but if that is not possible (for example, because the node doesn't exist or has insufficient resources), the Elasticsearch pods will be deployed to another available worker.
    • By default, a privileged init container will run as part of the Elasticsearch install in order to set the vm.max_map_count to 262144 on all Elasicsearch worker nodes. You can use the helm value common.allowPrivilegedContainers=false if you do not want a privileged container to run, however you will have to manually make this change on all worker nodes that will host elasticsearch pods in order for elasticsearch to run. You can do this by updating the vm.max_map_count setting in /etc/sysctl.conf to be 262144.
    • When deploying Elasticsearch in AWS, you will need to set the network ethernet interface in the helm install command. For example, for eth0 set common.networkHost="_eth0_".
    • By default, deployment is done to the connections namespace. If you created a namespace with a different name and would like to deploy there, the following extra value must be included in the helm install command: namespace=namespace.

    In the command, replace extractedFolder with the location of the directory where you extracted the Component Pack installation package. Replace the value of image.repository with the name of your Docker registry.

    helm install \
    --name=elasticsearch extractedFolder/microservices_connections/hybridcloud/helmbuilds/elasticsearch-0.1.0-20191121-222549.tgz \
    --set \
    image.repository=Docker_registry/connections,\
    nodeAffinityRequired=true
    
  2. Verify that Elasticsearch was successfully deployed.
    1. Verify that the installation completed by running the helm list command.

      When the installation completes, the chart's status shows as DEPLOYED.

    2. Then run the following command to check the status of all of the pods, and to confirm that all Elasticsearch pods are running on the tainted Elasticsearch worker nodes.
      kubectl get pods -n connections -o wide

      It can take up to 10 minutes for all pods to start.