Skip to content
If you are interested in trying out Gloo Gateway with the Kubernetes Gateway API, check out Solo Enterprise for kgateway. This version adds enterprise functionality on top of the kgateway open source project.

Amazon EKS add-on

Page as Markdown

Install Gloo Gateway with the Amazon Elastic Kubernetes Service (EKS) add-on.

About

The Gloo Gateway add-on for Amazon EKS streamlines the installation, configuration, and updates of Gloo Gateway on your EKS clusters. This add-on installs Gloo Gateway in a mode that fully supports the Kubernetes Gateway API, with all required Custom Resource Definitions (CRDs), including the Kubernetes Gateway API CRDs, packaged and deployed automatically. No additional setup is needed. Amazon ensures compatibility with EKS, delivering a secure and reliable release. Leveraging this add-on can help your organization meet internal compliance requirements and manage account spending effectively. For more details, refer to the AWS documentation.

Before you begin

  1. Create or use existing EKS clusters.

  2. Install any CLI tools that you might need to work with your cluster, such as the following:

    • aws cli, the Amazon Web Services command line tool.
    • eksctl, the AWS EKS command line tool.
    • kubectl, the Kubernetes command line tool. Download the kubectl version that is within one minor version of the Kubernetes clusters you plan to use.
    • istioctl, the Istio command line tool.
    • terraform, the infrastructure-as-code configuration language command line tool from HashiCorp.
  3. If you plan to install the add-on via automation such as Terraform, you must first accept the subscription terms in the AWS Marketplace console.

Install the EKS add-on

You can install the EKS add-on via the AWS console, the eksctl or aws CLI tools, or a GitOps tool such as Terraform.

Install the EKS add-on by using the EKS console. For complete EKS add-on instructions, see the AWS docs.

  1. Open the Amazon EKS console.

  2. From the cluster list, select your cluster.

  3. Click the Add-ons tab.

  4. Click Get more add-ons.

  5. Scroll down to the AWS Marketplace add-ons section. In the search box, enter gateway into the search field to filter the results for the Gloo Gateway add-on.

    Figure: Find the Gloo Gateway add-on for EKS
    Figure: Find the Gloo Gateway add-on for EKS
    Figure: Find the Gloo Gateway add-on for EKS
    Figure: Find the Gloo Gateway add-on for EKS
  6. Click the checkbox for the add-on, and then click Next.

  7. If the Status field shows Requires subscription, click the View subscription options button and follow the AWS Marketplace prompts to subscribe to the add-on.

    Figure: Required subscription status
    Figure: Required subscription status
    Figure: Required subscription status
    Figure: Required subscription status
  8. When the Status displays Ready to install, select the desired version to install.

    Figure: Configure the Gloo Gateway add-on for EKS
    Figure: Configure the Gloo Gateway add-on for EKS
    Figure: Configure the Gloo Gateway add-on for EKS
    Figure: Configure the Gloo Gateway add-on for EKS
  9. To proceed to the next page, click Next.

  10. Review the add-on details, and then click Create.

    Figure: Review and create the Gloo Gateway add-on for EKS
    Figure: Review and create the Gloo Gateway add-on for EKS
    Figure: Review and create the Gloo Gateway add-on for EKS
    Figure: Review and create the Gloo Gateway add-on for EKS
  11. From the cluster details page, click the Add-ons tab and verify that the status is Active. If the installation takes more than a few minutes, review the add-on status. Common issues include a lack of compute resources to run the deployment, such as no nodes.

    Figure: Active status for Solo add-on for EKS
    Figure: Active status for Solo add-on for EKS
    Figure: Active status for Solo add-on for EKS
    Figure: Active status for Solo add-on for EKS

Install the EKS add-on by using the eksctl command line tool. For complete EKS add-on instructions, see the AWS docs (eksctl Tab).

  1. Get the name and region of the cluster that you want to install the add-on in. If you do not have an $AWS_REGION environment variable set, replace the variable with any region in the following command.

    eksctl get clusters -A --region $AWS_REGION
  2. Set the name and region of the cluster that you want to install the add-on in. Replace <your-cluster-region> and <name-of-your-EKS-cluster> with the values that you got in the previous step.

    # Set your cluster region (for example, us-west-2)
    export REGION=<your-cluster-region>
    
    # Set the name of your EKS cluster
    export CLUSTER=<name-of-your-EKS-cluster>
  3. Install the add-on, replacing the cluster and region with the values that you got in the previous step. For more options, such as specific version of the add-on, run eksctl create addon --help.

    eksctl create addon --name solo-io_gloo-gateway --cluster $CLUSTER --region $REGION --version v1.18.2-eksbuild.1
  4. Check that the status of the addon is ACTIVE with null issues. If the installation takes more than a few minutes, review the add-on status. Common issues include a lack of compute resources to run the deployment, such as no nodes.

    eksctl get addon --name solo-io_gloo-gateway --cluster $CLUSTER --region $REGION -oyaml

    Example output:

      IAMRole: ""
      Issues: null
      Name: solo-io_gloo-gateway
      NewerVersion: ""
      PodIdentityAssociations: null
      Status: ACTIVE
      Version: v1.18.2-eksbuild.1     

Install the EKS add-on by using the aws command line tool. For complete AWS command line tool add-on instructions, see the AWS docs (AWS CLI tab).

  1. Specify the region of the cluster and confirm the cluster name where you want to install the add-on. Replace <your-cluster-region> with the EKS clusters region.

    # Set your cluster region (for example, us-west-2)
    export REGION=<your-cluster-region>
    aws eks list-clusters --region $REGION
  2. Set the name of the cluster that you want to install the add-on in. Replace <name-of-your-EKS-cluster> with the value that you got in the previous step.

    # Set the name of your EKS cluster
    export CLUSTER=<name-of-your-EKS-cluster>
  3. Install the add-on. For more options, such as to set a specific version of the add-on, run eksctl create addon --help.

    aws eks create-addon --cluster-name $CLUSTER --region $REGION \
      --addon-name solo-io_gloo-gateway \
      --addon-version v1.18.2-eksbuild.1
  4. Check that the status of the addon is ACTIVE with empty [] in Issues section. If the installation takes more than a few minutes, review the add-on status. Common issues include a lack of compute resources to run the deployment, such as no nodes.

    aws eks describe-addon --cluster-name $CLUSTER --region $REGION --addon-name solo-io_gloo-gateway

    Example output:

    {
        "addon": {
            "addonName": "solo-io_gloo-gateway",
            "clusterName": "<...omitted...>",
            "status": "ACTIVE",
            "addonVersion": "v1.18.2-eksbuild.1",
            "health": {
                "issues": []
            },
            "addonArn": "arn:aws:eks:us-west-2:123456789012:addon/<...omitted...>/solo-io_gloo-gateway/e6c89977-fb1c-3dda-a2b2-455b239b15ec",
            "createdAt": "2025-01-15TXX:XX:XX.000000-07:00",
            "modifiedAt": "2025-01-15TXX:XX:XX.000000-07:00",
            "tags": {}
        }
    }   

Install the EKS add-on by using Terraform, such as for a GitOps pipeline.

  1. Get the cluster name, cluster region, and EKS add-on version that you want to install.

  2. Use the following example inside of your Terraform project, or directly by saving the example as main.tf. Replace the region, cluster_name and addon_version with the values that you previously got. (The configuration_values sub-section is provided as an example. Decide on the values that you want to customize or remove the section entirely if the default values are sufficient.)

    provider "aws" {
      region = local.region
    }
    
    terraform {
      required_version = ">= 1.0.0"
    
      required_providers {
        aws = {
          source  = "hashicorp/aws"
          version = ">= 4.47"
        }
      }
    }
    
    locals {
      region        = "<your-cluster-region>"      # Replace with your cluster region (for example, us-west-2)
      cluster_name  = "<name-of-your-EKS-cluster>" # Replace with the name of your EKS cluster
      addon_version = "v1.18.2-eksbuild.1"         # Replace with your desired addon version; for Ambient add extra '0' *(for example, v1.21.20-eksbuild.1)
    }
    
    resource "aws_eks_addon" "solo-io_gloo-gateway" {
      cluster_name                = local.cluster_name
      addon_name                  = "solo-io_gloo-gateway"
      resolve_conflicts_on_update = "OVERWRITE"
      addon_version               = local.addon_version
    }   
  3. From the directory of the main.tf file, run the Terraform commands to build the EKS add-on infrastructure.

    terraform init
    terraform plan
    terraform apply

Verify your installation

After the add-on is installed, verify that Gloo Gateway is working.

Verify that the pods have a status of Running and Completed.

kubectl get pods -n gloo-system

Example output:

NAME                             READY   STATUS      RESTARTS      AGE
apply-crds-h54qb                 0/1     Completed   0             53s
discovery-7fd979d499-p5q2j       1/1     Running     0             53s
gateway-proxy-64786d76b5-g79k8   1/1     Running     0             53s
gloo-c7fb5d8fd-j9c9n             1/1     Running     0             53s
gloo-resource-rollout-4vbg4      0/1     Completed   0             53s

Next steps

Now that Gloo Gateway is installed in your cluster, review the following next steps you can take.

Uninstall the add-on

You can uninstall Gloo Gateway from your EKS cluster by using AWS. For more information about removing an EKS add-on, see the AWS docs.

  1. Remove the Gloo Gateway add-on for EKS.

    1. Open the Amazon EKS console.

    2. From the cluster list, select your cluster.

    3. Click the Add-ons tab.

    4. In the search box, enter gateway to filter the results for the Gloo Gateway add-on.

      Figure: Find the Solo add-on for EKS
      Figure: Find the Solo add-on for EKS
      Figure: Find the Solo add-on for EKS
      Figure: Find the Solo add-on for EKS
    5. Click the add-on, and then click Remove.

    6. In the pop-up window, type the add-on name and click Remove. You can keep Istio running in your cluster but disable EKS add-on management by toggling Preserve on cluster.

      Figure: Remove the Solo add-on for EKS
      Figure: Remove the Solo add-on for EKS
      Figure: Remove the Solo add-on for EKS
      Figure: Remove the Solo add-on for EKS
    eksctl delete addon --name solo-io_gloo-gateway --cluster $CLUSTER --region $REGION
    aws eks delete-addon --cluster-name $CLUSTER --region $REGION --addon-name solo-io_gloo-gateway
    terraform destroy -auto-approve

  2. Clean up the gloo-system namespace in your cluster.

    kubectl delete namespace gloo-system