| name | eks-power | |||||||
|---|---|---|---|---|---|---|---|---|
| displayName | EKS Power | |||||||
| description | Comprehensive AWS EKS cluster management including cluster operations, node groups, add-ons, access entries, and pod identity associations. Full EKS lifecycle management from Kiro. | |||||||
| keywords |
|
|||||||
| author | AWS Labs |
EKS Power provides complete AWS EKS cluster management capabilities, enabling you to create, configure, and manage EKS clusters without leaving your development environment. Handle cluster lifecycle, node groups, Fargate profiles, add-ons, and access management directly from Kiro.
Key capabilities:
- Cluster management (create, update, delete, describe)
- Node group operations (managed and self-managed)
- Fargate profile management
- EKS add-ons (install, update, remove)
- Access entries and policies
- Pod identity associations
- Cluster insights and recommendations
- VPC and networking configuration
Perfect for platform engineers, DevOps teams, and cloud architects managing EKS infrastructure.
- AWS account with EKS permissions
- AWS CLI configured with credentials
- IAM permissions for EKS operations
- VPC and networking knowledge
The EKS MCP server works with your AWS CLI configuration. Ensure your AWS credentials are properly configured.
The MCP server uses your default AWS credentials and region. You can specify different regions per operation.
Goal: Create a new EKS cluster
Example:
Use tool: create_cluster
Parameters:
name: "my-eks-cluster"
region: "us-east-1"
version: "1.31"
roleArn: "arn:aws:iam::123456789012:role/EKSClusterRole"
resourcesVpcConfig: {
"subnetIds": ["subnet-abc123", "subnet-def456"],
"securityGroupIds": ["sg-xyz789"],
"endpointPublicAccess": true,
"endpointPrivateAccess": true
}
Key Parameters:
name: Cluster name (unique in region)version: Kubernetes version (1.28, 1.29, 1.30, 1.31)roleArn: IAM role for clusterresourcesVpcConfig: VPC configuration
List All Clusters:
Use tool: list_clusters
Parameters:
region: "us-east-1"
Describe Specific Cluster:
Use tool: describe_cluster
Parameters:
name: "my-eks-cluster"
region: "us-east-1"
Update Kubernetes Version:
Use tool: update_cluster_version
Parameters:
name: "my-eks-cluster"
region: "us-east-1"
version: "1.31"
Update Cluster Config:
Use tool: update_cluster_config
Parameters:
name: "my-eks-cluster"
region: "us-east-1"
resourcesVpcConfig: {
"endpointPublicAccess": false,
"endpointPrivateAccess": true
}
Goal: Add managed node group to cluster
Example:
Use tool: create_nodegroup
Parameters:
clusterName: "my-eks-cluster"
nodegroupName: "standard-nodes"
region: "us-east-1"
subnets: ["subnet-abc123", "subnet-def456"]
nodeRole: "arn:aws:iam::123456789012:role/EKSNodeRole"
scalingConfig: {
"minSize": 2,
"maxSize": 10,
"desiredSize": 3
}
instanceTypes: ["t3.medium", "t3.large"]
diskSize: 20
amiType: "AL2_x86_64"
AMI Types:
AL2_x86_64- Amazon Linux 2AL2_x86_64_GPU- Amazon Linux 2 with GPUAL2_ARM_64- Amazon Linux 2 ARMBOTTLEROCKET_x86_64- BottlerocketBOTTLEROCKET_ARM_64- Bottlerocket ARM
List Node Groups:
Use tool: list_nodegroups
Parameters:
clusterName: "my-eks-cluster"
region: "us-east-1"
Describe Node Group:
Use tool: describe_nodegroup
Parameters:
clusterName: "my-eks-cluster"
nodegroupName: "standard-nodes"
region: "us-east-1"
Update Node Group:
Use tool: update_nodegroup_config
Parameters:
clusterName: "my-eks-cluster"
nodegroupName: "standard-nodes"
region: "us-east-1"
scalingConfig: {
"minSize": 3,
"maxSize": 15,
"desiredSize": 5
}
Delete Node Group:
Use tool: delete_nodegroup
Parameters:
clusterName: "my-eks-cluster"
nodegroupName: "old-nodes"
region: "us-east-1"
Create Fargate Profile:
Use tool: create_fargate_profile
Parameters:
clusterName: "my-eks-cluster"
fargateProfileName: "app-profile"
region: "us-east-1"
podExecutionRoleArn: "arn:aws:iam::123456789012:role/EKSFargatePodRole"
subnets: ["subnet-abc123", "subnet-def456"]
selectors: [
{
"namespace": "production",
"labels": {
"app": "web"
}
}
]
List Fargate Profiles:
Use tool: list_fargate_profiles
Parameters:
clusterName: "my-eks-cluster"
region: "us-east-1"
Delete Fargate Profile:
Use tool: delete_fargate_profile
Parameters:
clusterName: "my-eks-cluster"
fargateProfileName: "old-profile"
region: "us-east-1"
List Available Add-ons:
Use tool: describe_addon_versions
Parameters:
region: "us-east-1"
Install Add-on:
Use tool: create_addon
Parameters:
clusterName: "my-eks-cluster"
addonName: "vpc-cni"
region: "us-east-1"
addonVersion: "v1.18.0-eksbuild.1"
resolveConflicts: "OVERWRITE"
Common Add-ons:
vpc-cni- VPC CNI networkingcoredns- CoreDNSkube-proxy- Kube-proxyaws-ebs-csi-driver- EBS CSI driveraws-efs-csi-driver- EFS CSI driveramazon-cloudwatch-observability- CloudWatch observability
Update Add-on:
Use tool: update_addon
Parameters:
clusterName: "my-eks-cluster"
addonName: "vpc-cni"
region: "us-east-1"
addonVersion: "v1.18.1-eksbuild.1"
resolveConflicts: "OVERWRITE"
Delete Add-on:
Use tool: delete_addon
Parameters:
clusterName: "my-eks-cluster"
addonName: "old-addon"
region: "us-east-1"
Create Access Entry:
Use tool: create_access_entry
Parameters:
clusterName: "my-eks-cluster"
principalArn: "arn:aws:iam::123456789012:user/developer"
region: "us-east-1"
type: "STANDARD"
kubernetesGroups: ["developers"]
List Access Entries:
Use tool: list_access_entries
Parameters:
clusterName: "my-eks-cluster"
region: "us-east-1"
Associate Access Policy:
Use tool: associate_access_policy
Parameters:
clusterName: "my-eks-cluster"
principalArn: "arn:aws:iam::123456789012:user/developer"
policyArn: "arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy"
region: "us-east-1"
accessScope: {
"type": "cluster"
}
Delete Access Entry:
Use tool: delete_access_entry
Parameters:
clusterName: "my-eks-cluster"
principalArn: "arn:aws:iam::123456789012:user/old-user"
region: "us-east-1"
Create Pod Identity Association:
Use tool: create_pod_identity_association
Parameters:
clusterName: "my-eks-cluster"
namespace: "production"
serviceAccount: "app-service-account"
roleArn: "arn:aws:iam::123456789012:role/AppRole"
region: "us-east-1"
List Pod Identity Associations:
Use tool: list_pod_identity_associations
Parameters:
clusterName: "my-eks-cluster"
region: "us-east-1"
Delete Pod Identity Association:
Use tool: delete_pod_identity_association
Parameters:
clusterName: "my-eks-cluster"
associationId: "a-abc123xyz"
region: "us-east-1"
Goal: Get recommendations and insights for cluster
Example:
Use tool: list_insights
Parameters:
clusterName: "my-eks-cluster"
region: "us-east-1"
Describe Specific Insight:
Use tool: describe_insight
Parameters:
clusterName: "my-eks-cluster"
id: "insight-id-123"
region: "us-east-1"
Goal: Remove EKS cluster (after removing node groups)
Steps:
- Delete all node groups first
- Delete Fargate profiles
- Delete cluster
Example:
Use tool: delete_cluster
Parameters:
name: "my-eks-cluster"
region: "us-east-1"
Problem: Cluster creation fails or times out Cause: Various IAM, VPC, or quota issues Solution:
- Verify IAM role has required permissions
- Check VPC and subnets are valid
- Ensure security groups allow required traffic
- Verify service quotas aren't exceeded
- Check CloudFormation stack events for details
Problem: Node group creation fails Cause: IAM, subnet, or instance type issues Solution:
- Verify node IAM role has required policies
- Check subnets have available IPs
- Verify instance types are available in AZs
- Ensure AMI type matches instance architecture
- Check service quotas for EC2 instances
Problem: Add-on won't install or update Cause: Version incompatibility or conflicts Solution:
- Check add-on version is compatible with cluster version
- Use
resolveConflicts: "OVERWRITE"to replace existing - Review add-on documentation for requirements
- Check IAM permissions for add-on
- Verify no conflicting self-managed add-ons
Problem: "AccessDenied" or permission errors Cause: Insufficient IAM permissions Solution:
- Verify AWS credentials are configured
- Check IAM user/role has EKS permissions
- Review IAM policies for required actions
- Ensure cluster role trust policy is correct
- Check access entries are properly configured
Problem: Pods not running on Fargate Cause: Selector mismatch or profile issues Solution:
- Verify Fargate profile selectors match pod labels
- Check namespace matches profile
- Ensure pod execution role is correct
- Verify subnets have available IPs
- Check Fargate service quotas
- Use managed node groups over self-managed when possible
- Enable both public and private endpoint access initially
- Use multiple subnets across AZs for high availability
- Tag all resources for cost tracking and organization
- Use latest stable Kubernetes version
- Enable control plane logging for troubleshooting
- Use Pod Identity over IRSA for new workloads
- Implement least privilege access with access entries
- Use Fargate for serverless workloads
- Keep add-ons updated to latest compatible versions
- Use instance types with sufficient resources
- Enable cluster insights for recommendations
- Use security groups to control traffic
- Implement proper IAM roles and policies
- Monitor cluster health and metrics
- Plan node group updates carefully
- Use launch templates for advanced node configuration
- Implement proper backup and disaster recovery
No additional configuration required - works with your AWS CLI credentials.
AWS Credentials:
- Default: Uses AWS CLI default profile
- Region: Specify per operation or use default
Required IAM Permissions:
- eks:* (for cluster operations)
- iam:PassRole (for creating clusters and node groups)
- ec2:* (for VPC and networking)
- Additional permissions for specific operations
No placeholders needed - the EKS MCP server uses your existing AWS credentials automatically.
The mcp.json configuration works as-is with the standard package.
Note: Ensure your AWS credentials have appropriate EKS permissions before using this power.
Package: awslabs.eks-mcp-server@latest
MCP Server: awslabs.eks-mcp-server