Deploy ECK in your Kubernetes clusteredit

Check the upgrade notes first if you are attempting to upgrade an existing ECK deployment.

  • 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.
  1. Install custom resource definitions:

    kubectl create -f https://download.elastic.co/downloads/eck/2.1.0/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
  2. Install the operator with its RBAC rules:

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

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