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
- Sign up at app.komodor.com using your work email or Google SSO
- Obtain your API key from the Komodor dashboard
Step 2: Configure AWS Permissions
Via AWS Console:
- Navigate to IAM > Users (or Roles if using IAM roles)
- Select your user/role
- Click "Add permissions"
- Attach the AmazonEKSClusterAdminPolicy
Via AWS CLI:
aws iam attach-user-policy \
--user-name <your-username> \
--policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterAdminPolicyStep 3: Prepare Helm Repository
helm repo add komodorio https://helm-charts.komodor.io
helm repo updateStep 4: Configure Kubernetes Context
aws eks update-kubeconfig --name <your-cluster-name> --region <your-region>
kubectl config current-context # Verify correct contextStep 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-namespaceConfiguration 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-agentExpected 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
- Review the Komodor documentation
- Contact support through the Komodor platform
- Check the Helm chart documentation on GitHub
Next Steps
After successful installation:
- Verify data appears in your Komodor dashboard
- Configure alerts and notifications
- Explore Komodor's change tracking and troubleshooting features
- 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.
Comments
0 comments
Article is closed for comments.