This page describes how to install the Cluster Agent using the Kubernetes CLI which is an alternative to Install the Cluster Agent with Helm Charts.

Requirements

Before you begin, verify that you have:

Installation Procedure

  1. If you have not already installed the metrics-server, then install it. See https://github.com/kubernetes-sigs/metrics-server for the most recent installation instructions.

    kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
    CODE
  2. Download the Kubernetes or OpenShift Cluster Agent bundle from the Download portal, unzip the contents of the bundle to the current directory:

    unzip appdynamics-cluster-agent-alpine-linux-<version>.zip
    CODE
  3. Create a namespace for appdynamics in your cluster.
    If you require to use a custom namespace, you can ignore this step and ensure to use the same namespace during installation. Here, we have used namespace as appdynamics.

    kubectl create namespace appdynamics
    CODE
  4. Install the Cluster Agent Operator using the correct Kubernetes and OpenShift version (where applicable):

    kubectl create -f cluster-agent-operator.yaml
    CODE
    kubectl create -f cluster-agent-operator-openshift.yaml
    CODE
    kubectl create -f cluster-agent-operator-openshift-1.15-or-less.yaml
    CODE

     

    You can also install Cluster Agent Operator from OpenShift OperatorHub in your OpenShift cluster.

  5. Based on the Account Access Key for the Controller, create the Controller Access Key Secret that the Cluster Agent reports to:

    kubectl -n appdynamics create secret generic cluster-agent-secret --from-literal=controller-key=<access-key>
    CODE
  6. Edit cluster-agent.yaml to set the Splunk AppDynamics Controller details for the Cluster Agent to report to.
    a. Set the nsToMonitorRegex option to include the namespaces you want to monitor.
    b. Set the image tag to the version you are installing
    . Refer to Docker Hub for the latest version of the image tag.
    For additional configuration tasks, such as, proxy support, or pull secrets, see Configure the Cluster Agent.

    This example assumes the use of the pre-built Cluster Agent image on Docker Hub. See Cluster Agent Container Image to build your own image.

    apiVersion: cluster.appdynamics.com/v1alpha1
    kind: Clusteragent
    metadata:
      name: k8s-cluster-agent
      namespace: appdynamics
    spec:
      appName: "dev-cluster"
      controllerUrl: "http://mycontroller.com:8080"
      account: "my-account"
      # docker image info where, <version> is the image tag version that you are installing
      image: "docker.io/appdynamics/cluster-agent:<version>"
      serviceAccountName: appdynamics-cluster-agent
      nsToMonitorRegex: namespace1|namespace2
      stdoutLogging: "true"
    YML
  7. (Optional)  If you require multiple Cluster Agents to monitor a single cluster, set up Target Allocator. In the cluster-agent.yaml file, enable target allocator with the number of Cluster Agent replicas to enable the operator to create Cluster Agent replicas. See Target Allocator.

    cluster-agent.yaml

    …
    spec:
      …
    appName: "my-cluster"
    nsToMonitorRegex: ".*"
    instrumentationMethod: "None"
    containerAppCorrelationMethod: "none" 
    targetAllocator:
        enabled: true         # false if autoScaling is enabled
        clusterAgentReplicas: 3
        autoScaling:
          enabled: false #false by default
          replicaProfile: Default 
          maxClusterAgentReplicas: 12
          scaleDown:
            stabilizationWindowSeconds: 86400 #In Seconds
        podConfig:
          imagePullPolicy: Always
          imagePullSecret: ecr-secret
          priorityClassName: high-priority
          serviceAccountName: appdynamics-target-allocator
          nodeSelector:{}
          tolerations:[]
          resources:
            limits:
              cpu: 500m
              memory: 500Mi
            requests:
              cpu: 200m
              memory: 200Mi
          labels:{}
          securityContext:{}
    YML
  8. Install the Cluster Agent:

    kubectl create -f cluster-agent.yaml
    CODE

See Validate the Cluster Agent Installation to validate and troubleshoot the installation. Once the install is validated, see Container Installation Options for options to install App Server Agents in applications in the cluster.