Installing Komodor Agent on EKS Fargate

Installing Komodor Agent on EKS Fargate

This guide covers installing the Komodor Agent on Amazon EKS Fargate clusters for monitoring and change tracking.

Overview

The Komodor Agent consists of three main components:

  • komodor-agent Deployment: Pulls Kubernetes data and sends it to the Komodor platform
  • komodor-agent-metrics Deployment: Handles metrics collection and processing
  • komodor-agent-daemon DaemonSet: Collects node-level and pod metrics

Fargate Compatibility

Important: Fargate does not support DaemonSets due to its serverless architecture. The komodor-agent-daemon component must be disabled when deploying to Fargate-only clusters.

Mixed Cluster Support

For clusters containing both EC2 and Fargate nodes, you need to ensure the DaemonSet only runs on EC2 nodes. Several approaches can be used including node selectors, node affinity, or taints and tolerations. Choose the method that best fits your cluster's existing node management strategy.

Prerequisites

Before installation, ensure you have:

  • An Amazon EKS cluster using Fargate
  • Helm 3.x installed and configured
  • A Komodor account and API key
  • AWS CLI configured with appropriate permissions
  • kubectl access to your EKS cluster

Required AWS Permissions

Your AWS user or role requires:

  • AmazonEKSClusterPolicy (minimum)
  • AmazonEKSClusterAdminPolicy (recommended for full functionality)

Installation

Step 1: Set Up Komodor Account

  1. Sign up at app.komodor.com using your work email or Google SSO
  2. Obtain your API key from the Komodor dashboard

Step 2: Configure AWS Permissions

Via AWS Console:

  1. Navigate to IAM > Users (or Roles if using IAM roles)
  2. Select your user/role
  3. Click "Add permissions"
  4. Attach the AmazonEKSClusterAdminPolicy

Via AWS CLI:

aws iam attach-user-policy \
  --user-name <your-username> \
  --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterAdminPolicy

Step 3: Prepare Helm Repository

helm repo add komodorio https://helm-charts.komodor.io
helm repo update

Step 4: Configure Kubernetes Context

aws eks update-kubeconfig --name <your-cluster-name> --region <your-region>
kubectl config current-context  # Verify correct context

Step 5: Deploy Komodor Agent

For Fargate-only clusters, use the following configuration:

helm upgrade --install komodor-agent komodorio/komodor-agent \
  --set apiKey=<your-api-key> \
  --set clusterName=<your-cluster-name> \
  --set capabilities.metrics=false \
  --set capabilities.nodeEnricher=false \
  --set components.daemonset.enabled=false \
  --set components.gpuAccess.enabled=false \
  --namespace komodor-agent \
  --create-namespace

Configuration Parameters:

  • capabilities.metrics=false: Disables node-level metrics collection (unavailable on Fargate)
  • capabilities.nodeEnricher=false: Disables node enrichment features
  • components.daemonset.enabled=false: Explicitly disables the DaemonSet component
  • components.gpuAccess.enabled=false: Disables GPU monitoring (not applicable to Fargate)

Verification

After deployment, verify the installation:

# Check if the agent is running

kubectl get pods -n komodor-agent

# Verify only the Deployment is created (no DaemonSet)

kubectl get deployments,daemonsets -n komodor-agent

# Check agent logs

kubectl logs -n komodor-agent deployment/komodor-agent

Expected results:

  • komodor-agent Deployment running successfully
  • No DaemonSet resources created
  • Agent connecting to Komodor platform

Mixed Cluster Configuration (EC2 + Fargate)

For clusters with both EC2 and Fargate nodes, create a custom values file:

values-mixed-cluster.yaml:

# Enable DaemonSet but restrict to EC2 nodes only
components:
  daemonset:
    enabled: true
    nodeSelector:
      eks.amazonaws.com/compute-type: ec2

 
# Keep metrics enabled for EC2 nodes
capabilities:
  metrics: true
  nodeEnricher: true

Deploy with the custom values:

helm upgrade --install komodor-agent komodorio/komodor-agent \
  --set apiKey=<your-api-key> \
  --set clusterName=<your-cluster-name> \
  --values values-mixed-cluster.yaml \
  --namespace komodor-agent \
  --create-namespace

Troubleshooting

Common Issues

DaemonSet scheduling failures:

  • Cause: DaemonSet not properly disabled for Fargate
  • Solution: Ensure components.daemonset.enabled=false is set

Missing metrics in Komodor dashboard:

  • Cause: Expected behavior on Fargate - node-level metrics aren't available
  • Solution: Use application-level monitoring for pod metrics

Permission denied errors:

  • Cause: Insufficient AWS IAM permissions
  • Solution: Verify EKS cluster admin policy is attached

Getting Help

Next Steps

After successful installation:

  1. Verify data appears in your Komodor dashboard
  2. Configure alerts and notifications
  3. Explore Komodor's change tracking and troubleshooting features
  4. Set up additional integrations (CI/CD, monitoring tools)

Important Note

Fargate's serverless nature provides excellent application-level insights through Komodor, but without the node-level metrics available in traditional EC2-based deployments. This is expected behavior and does not impact the core functionality of change tracking and application monitoring.


 

Was this article helpful?

0 out of 0 found this helpful

Comments

0 comments

Article is closed for comments.