Edge Delta on Kubernetes

Kubernetes Installation Options.

The setup process for deploying Edge Delta within a Kubernetes cluster natively leverages the Kubernetes APIs and other components to provide a seamless onboarding, and automated monitoring experience.

Many of the commonly used Kubernetes Services are supported by Edge Delta:

  • Amazon EKS
  • Azure AKS
  • Google GKE
  • OpenShift Enterprise Kubernetes
  • Bare Metal Kubernetes

Edge Delta Agents

A primary component of the Edge Delta deployment (in the context of Kubernetes) are the Edge Delta agents. The agents are an extremely lightweight, low-resource, Go-based process that run as a Daemonset in a Kubernetes cluster (1 pod per node).

Edge Delta Kubernetes Input

Once the Edge Delta daemonset is running within a Kubernetes cluster, telemetry data (logs and metrics) generated by other pods in the cluster are automatically monitored and analyzed by the Edge Delta agents in real time. The Edge Delta agents are aware of the Kubernetes components of the cluster (pods, namespaces, deployments, etc.) natively by utilizing the Edge Delta Kubernetes Input.

Version 0.1.70 and older agents use the v2 configuration’s kubernetes input. See Agent Configuration for more information about agent and configuration versions.

Edge Delta Kubernetes Deployment Overview

There are a number of different ways to deploy the Edge Delta service in a Kubernetes environment. The three most common approaches for deploying Edge Delta in Kubernetes are via direct kubectl apply commands, using Helm, or via Terraform.You can also automate deployments with using a tool such as ArgoCD.

Edge Delta Automated Kubernetes Monitoring

Once the Edge Delta service is running within your Kubernetes environment, it automatically begins analyzing and monitoring telemetry data locally from the active pods within the cluster using Edge and Stream Processing concepts. The incoming data is enriched with detailed metadata from the environment, and analyzed within the context of low level tags, as well as broader logical groups.

Without any custom configuration, or user-provided context of the environment, the Edge Delta service will begin analyzing the underlying data, generating patterns, findings, and statistics, as well as baselining the behavior to provide automated Anomaly Detection and Machine Learning capabilities.

Insights, Statistics, Patterns, and Findings generated by Edge Delta are streamed in real time to streaming output nodes (or Streaming Destinations for v0.1.70 and older agents), which typically push to the existing monitoring platforms you are used to using (i.e. Elastic, Splunk, Datadog, Sumo Logic, New Relic, etc.). Additionally, these insights are exposed by default in the Edge Delta UI, with flexible filtering, aggregation, and other commonly used investigation tools.

There is no requirement to store any raw data on the Edge Delta backend, typically only statistics, system state, metadata, and other higher level components are streamed to Edge Delta for analysis. You can disable this behavior by removing output nodes. The volume of data transferred from Edge Delta agents to Streaming Destinations is typically negligible, regardless of the volume of raw data analyzed.

Edge Delta Agent Kubernetes Manifest

The Edge Delta agent manifest contains the following sections:

  • Namespace: Specifies the edgedelta namespace where all the resources for EdgeDelta will reside.
  • DaemonSet: Ensures that an edgedelta-agent container runs on each node in the cluster. The agent’s image version is specified, and various environment variables are set for its configuration. Host level permissions are granted through the hostPID, hostNetwork, and securityContext. Volumes are mounted for log directories and other system paths required by the agent.
  • ClusterRoleBinding and ClusterRole: Defines the permissions that the edgedelta service account will have, enabling it to interact with the Kubernetes API for the resources listed in the rules.
  • ServiceAccount: Creates a service account named edgedelta, which the daemonset and statefulset will use.
  • StatefulSet: Deploys the EdgeDelta compactor, which is part of EdgeDelta’s backend processing. It’s configured to use a specific port (9199) and has its own set of environment variables, including defining its role as a compactor.
  • Service: Creates the ed-compactor-svc service to allow communication to the edgedelta-compactor pods.

Install the Edge Delta Agent with kubectl

Instructions for installing the Edge Delta Agent on Kubernetes using kubectl.

Install the Edge Delta Agent with Helm

Instructions for installing the Edge Delta Agent on Kubernetes using Helm.