Deploy ECK in your Kubernetes cluster
editDeploy ECK in your Kubernetes cluster
editThings to consider before you start:
- For this quickstart guide, your Kubernetes cluster is assumed to be already up and running. Before you proceed with the ECK installation, make sure you check the supported versions.
-
If you are using GKE, make sure your user has
cluster-admin
permissions. For more information, check Prerequisites for using Kubernetes RBAC on GKE. - If you are using Amazon EKS, make sure the Kubernetes control plane is allowed to communicate with the Kubernetes nodes on port 443. This is required for communication with the Validating Webhook. For more information, check Recommended inbound traffic.
- Refer to Install ECK for more information on installation options.
- Check the upgrade notes if you are attempting to upgrade an existing ECK deployment.
To deploy the ECK operator:
-
Install custom resource definitions with
create
:kubectl create -f https://download.elastic.co/downloads/eck/2.16.0/crds.yaml
This will output similar to the following upon Elastic resources' creation:
customresourcedefinition.apiextensions.k8s.io/agents.agent.k8s.elastic.co created customresourcedefinition.apiextensions.k8s.io/apmservers.apm.k8s.elastic.co created customresourcedefinition.apiextensions.k8s.io/beats.beat.k8s.elastic.co created customresourcedefinition.apiextensions.k8s.io/elasticmapsservers.maps.k8s.elastic.co created customresourcedefinition.apiextensions.k8s.io/elasticsearches.elasticsearch.k8s.elastic.co created customresourcedefinition.apiextensions.k8s.io/enterprisesearches.enterprisesearch.k8s.elastic.co created customresourcedefinition.apiextensions.k8s.io/kibanas.kibana.k8s.elastic.co created customresourcedefinition.apiextensions.k8s.io/logstashes.logstash.k8s.elastic.co created
-
Install the operator with its RBAC rules with
apply
:kubectl apply -f https://download.elastic.co/downloads/eck/2.16.0/operator.yaml
The ECK operator runs by default in the
elastic-system
namespace. It is recommended that you choose a dedicated namespace for your workloads, rather than using theelastic-system
or thedefault
namespace. -
Monitor the operator’s setup from its logs through
logs
:kubectl -n elastic-system logs -f statefulset.apps/elastic-operator
-
Once ready, the operator will report as
Running
as shown withget
, replacing defaultelastic-system
with applicable installation namespace as needed: *
$ kubectl get -n elastic-system pods NAME READY STATUS RESTARTS AGE elastic-operator-0 1/1 Running 0 1m
This completes the quickstart of the ECK operator. We recommend continuing to Deploying an Elasticsearch cluster; but for more configuration options as needed, navigate to Operating ECK.