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
-
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-20200319-223218.tgz \
--set \
image.repository=Docker_registry/connections,\
nodeAffinityRequired=true
-
Verify that Elasticsearch was successfully deployed.
-
Verify that the installation completed by running the
helm list
command.
When the installation completes, the chart's status shows as
DEPLOYED.
-
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.