Use an Elasticsearch cluster managed by ECK

edit

Managing APM Server, Kibana and Elasticsearch with ECK allows a smooth and secured integration between the stack components. The output configuration of the APM Server is setup automatically to establish a trust relationship with Elasticsearch. Specifying the Kibana reference allows ECK to automatically configure the Kibana endpoint.

  1. To deploy an APM Server and connect it to the Elasticsearch cluster and Kibana instance you created in the quickstart, apply the following specification:

    cat <<EOF | kubectl apply -f -
    apiVersion: apm.k8s.elastic.co/v1
    kind: ApmServer
    metadata:
      name: apm-server-quickstart
      namespace: default
    spec:
      version: 8.16.1
      count: 1
      elasticsearchRef:
        name: quickstart
      kibanaRef: 
        name: quickstart
    EOF

A reference to a Kibana instance is only required for APM Server versions 8.0.0 and later.

Starting with version 8.0.0 the following Kibana configuration is required to run APM Server

apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
config:
  xpack.fleet.packages:
  - name: apm
    version: latest

By default elasticsearchRef targets all nodes in your Elasticsearch cluster. If you want to direct traffic to specific nodes of your cluster, refer to Traffic Splitting for more information and examples.

  1. Monitor APM Server deployment.

    You can retrieve details about the APM Server instance:

    kubectl get apmservers
    NAME                     HEALTH    NODES    VERSION   AGE
    apm-server-quickstart    green     1        8.16.1      8m

    And you can list all the Pods belonging to a given deployment:

    kubectl get pods --selector='apm.k8s.elastic.co/name=apm-server-quickstart'
    NAME                                                READY   STATUS    RESTARTS   AGE
    apm-server-quickstart-apm-server-69b447ddc5-fflc6   1/1     Running   0          2m50s