Deploy ECK in your Kubernetes clusteredit

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.

  1. Install custom resource definitions:

    kubectl create -f https://download.elastic.co/downloads/eck/2.12.1/crds.yaml

    The following Elastic resources have been created:

    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:

    kubectl apply -f https://download.elastic.co/downloads/eck/2.12.1/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 logs:

    kubectl -n elastic-system logs -f statefulset.apps/elastic-operator