Installing K10 on AWS EKS using EKS Add-on

Installing K10 on AWS EKS using EKS Add-on

Reading Time: 4 minutes

Data management and protection have become crucial concerns for organizations leveraging Kubernetes. Kasten K10, a powerful Kubernetes-native data management platform, offers a robust solution to these challenges. In this technical blog post, I’ll explore how to install Kasten K10 on Amazon EKS (Elastic Kubernetes Service) using the EKS Add-on feature.

By utilizing EKS Add-ons, we streamline the installation process, ensure better integration with the EKS environment, and simplify ongoing management and updates. This approach aligns with best practices for deploying and maintaining critical infrastructure components in Kubernetes clusters.

What is K10?

In my previous blogs, I explained topics like:

Understanding Kasten by Veeam: A Technical Guide

Why Kasten? A Deep Dive into Kubernetes-native Data Management

As a recap: Kasten K10 is a comprehensive data management platform designed specifically for Kubernetes environments. It provides enterprise-grade features for backup, disaster recovery, and application mobility. Key capabilities of K10 include:

  • Policy-driven automation for backup and restore operations
  • Application-centric approach to data management
  • Cross-cluster and cross-cloud application migration
  • Ransomware protection with immutable backups
  • Compliance and audit reporting

In AWS EKS environments, K10 seamlessly integrates with native AWS services like EBS, S3, and IAM, providing a cloud-native experience for data protection and mobility.

Understanding AWS EKS and EKS Add-ons

Amazon Elastic Kubernetes Service (EKS) is a managed Kubernetes service that simplifies the process of running Kubernetes on AWS. It handles the undifferentiated heavy lifting of managing the control plane, allowing users to focus on their applications and workloads.

EKS Add-ons are curated extensions that complement EKS clusters with additional operational capabilities. They offer several advantages:

  • Simplified installation and updates
  • Automated lifecycle management
  • Integration with AWS IAM for fine-grained access control
  • Consistent deployment across multiple clusters

K10, when deployed as an EKS Add-on, benefits from these features, ensuring a smoother installation process and ongoing maintenance.

Prerequisites for Installing K10 on EKS

Before proceeding with the K10 installation, ensure that you have the following prerequisites in place:

  1. AWS CLI version 2.11.3 or later
  2. IAM permissions:
    • eks:CreateAddon
    • eks:DescribeAddon
    • eks:ListAddons
    • eks:UpdateAddon
    • eks:DeleteAddon
  3. Kubernetes version 1.21 or later
  4. An EKS cluster with at least 3 worker nodes, each with a minimum of 4 vCPUs and 8 GiB memory
  5. The Amazon EBS CSI driver installed as an add-on in your EKS cluster
  6. Sufficient AWS VPC CNI IP addresses available for K10 pods

Ensure that your AWS CLI is properly configured with the necessary credentials and region settings before proceeding with the installation.

Step-by-Step Installation Process

Now, let’s walk through the process of installing K10 on your EKS cluster using the EKS Add-on feature.

Step 1: Prepare the EKS cluster

First, update your kubeconfig to interact with your EKS cluster:

aws eks update-kubeconfig --name <cluster-name> --region <region>

Replace <cluster-name> and <region> with your specific EKS cluster name and AWS region.

Step 2: Install the EKS Add-on for Amazon EBS CSI Driver (if not already installed)

If you haven’t already installed the EBS CSI Driver add-on, do so with the following command:

aws eks create-addon --cluster-name <cluster-name> --addon-name aws-ebs-csi-driver --region <region>

Step 3: Create the k10 namespace

Create a dedicated namespace for K10:

kubectl create namespace k10

Step 4: Install K10 using EKS Add-on

Now, install K10 as an EKS Add-on:

aws eks create-addon --cluster-name <cluster-name> --addon-name kasten-k10 --region <region>

Step 5: Monitor the installation progress

You can check the status of the installation using:

aws eks describe-addon --cluster-name <cluster-name> --addon-name kasten-k10 --region <region>

The installation is complete when the status shows as “ACTIVE”.

Step 6: Verifying the Installation

After the installation process is completed, it’s crucial to verify that K10 is running correctly in your EKS cluster.

Checking pod status: To ensure all K10 pods are running, execute the following command:

kubectl get pods -n k10

You should see several pods in the “Running” state, including the K10 API server, aggregated APIs server, auth, catalog, and others.

Step 7: Verifying K10 services:
Check that all necessary K10 services are active:

kubectl get services -n k10

You should see services like gateway-ext, gateway, and aggregated APIs-svc.

Step 8: Accessing the K10 dashboard:
To access the K10 dashboard, you’ll need to set up port forwarding:

kubectl --namespace k10 port-forward service/gateway 8080:8000

Now you can access the K10 dashboard by navigating to http://localhost:8080/k10/#/ in your web browser.

Best Practices and Considerations

To ensure optimal performance and security of your K10 installation on EKS, consider the following best practices:

  1. Setting up proper RBAC for K10
    • Create dedicated service accounts for K10 operations
    • Use AWS IAM roles for service accounts (IRSA) to manage permissions
  2. Configuring backups and disaster recovery policies
    • Define policies based on your application requirements
    • Implement both scheduled and on-demand backups
    • Test restore operations regularly
  3. Integrating with AWS services
    • Use Amazon S3 for backup storage
    • Leverage Amazon EBS snapshots for volume backups
    • Integrate with AWS KMS for encryption key management
  4. Monitoring and logging
    • Set up CloudWatch alarms for K10 resources
    • Enable K10 audit logging for compliance and troubleshooting
  5. Regular updates
    • Keep K10 updated to the latest version using EKS Add-on update mechanisms

Troubleshooting Common Issues

When working with K10 on EKS, you might encounter some common issues. Here’s how to address them:

  1. Permission-related errors
    • Ensure IAM roles have the necessary permissions
    • Verify RBAC settings within the Kubernetes cluster
  2. Version incompatibilities
    • Check K10 version compatibility with your EKS version
    • Ensure all dependencies (e.g., EBS CSI driver) are up to date
  3. Networking issues
    • Verify VPC and security group settings
    • Check if K10 pods can communicate with AWS services and your applications
  4. Resource constraints
    • Monitor node resources and scale if necessary
    • Adjust K10 resource requests and limits if needed

If you encounter persistent issues, consult the K10 documentation or reach out to Kasten support for assistance.

Final Thought

Installing Kasten K10 on AWS EKS using the EKS Add-on feature provides a streamlined approach to implementing robust data management for your Kubernetes workloads. By following the steps outlined in this guide, you can quickly set up K10 and start leveraging its powerful backup, restore, and disaster recovery capabilities.

Key takeaways:

  • EKS Add-ons simplify the installation and management of K10
  • Proper configuration and adherence to best practices ensure optimal performance
  • Regular maintenance and updates are crucial for long-term success

Next steps:

  1. Configure your first backup policy in K10
  2. Set up disaster recovery for critical applications
  3. Explore advanced features like application mobility and compliance reporting

By embracing K10 on EKS, you’re taking a significant step towards ensuring the resilience and data integrity of your Kubernetes applications in the AWS cloud ecosystem.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *