Deploy an Elasticsearch instance with a route
Elastic Cloud on Kubernetes extends Kubernetes orchestration capabilities to allow you to deploy and manage components of the Elastic Stack. Availability This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.
ECK
Generally available
Use the following code to create an Elasticsearch cluster elasticsearch-sample and a "passthrough" route to access it:
A namespace other than the default namespaces (default, kube-system, kube-, openshift-, etc) is required such that default Security Context Constraint (SCC) permissions are applied automatically. Elastic resources will not work properly in any of the default namespaces.
cat <<EOF | oc apply -n elastic -f -
# This sample sets up an Elasticsearch cluster with an OpenShift route
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: elasticsearch-sample
spec:
version: 9.5.6
nodeSets:
- name: default
count: 1
config:
node.store.allow_mmap: false
---
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: elasticsearch-sample
spec:
#host: elasticsearch.example.com
tls:
termination: passthrough
insecureEdgeTerminationPolicy: Redirect
to:
kind: Service
name: elasticsearch-sample-es-http
EOF
- override if you don't want to use the host that is automatically generated by OpenShift (<route-name>[-<namespace>].<suffix>)
- Elasticsearch is the TLS endpoint
Elasticsearch plugins cannot be installed at runtime in most OpenShift environments. This is because the plugin installer must run as root, but Elasticsearch is restricted from running as root. To add plugins to Elasticsearch, you can use custom images as described in Create custom images.