Deploy ECK in your Kubernetes cluster

edit

Deploy ECK in your Kubernetes cluster

edit

Things 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:

  1. 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
  2. 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 the elastic-system or the default namespace.

  3. Monitor the operator’s setup from its logs through logs:

    kubectl -n elastic-system logs -f statefulset.apps/elastic-operator
  4. Once ready, the operator will report as Running as shown with get, replacing default elastic-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.