Deploy AWS Load Balancer Controller

In this section you will configure and deploy AWS Load Balancer Controller using an IAM role to provide it with permissions to manage AWS resources on your behalf.

Procedure

  1. Go to your GitOps repository, inside your rok-tools management environment:

    root@rok-tools:~# cd ~/ops/deployments
    
  2. Specify the IAM role name for AWS Load Balancer Controller:

    root@rok-tools:~/ops/deployments# export IAM_ROLE_NAME=eks-aws-load-balancer-controller-${CLUSTERNAME?}
    
  3. Verify that the IAM role exists, obtain its ARN and copy it to your clipboard, as you are going to use this value in later steps:

    root@rok-tools:~/ops/deployments# aws iam get-role \
    >     --role-name ${IAM_ROLE_NAME?} \
    >     --query Role.Arn \
    >     --output text
    arn:aws:iam::123456789012:role/eks-aws-load-balancer-controller-arrikto-cluster
    
  4. Edit rok/aws-load-balancer-controller/overlays/deploy/patches/deploy.yaml and set --cluster-name to that of your EKS cluster:

    value: "--cluster-name=arrikto-cluster"  # <-- Update this line with your CLUSTERNAME
    
  5. Edit rok/aws-load-balancer-controller/overlays/deploy/patches/sa.yaml and set the IAM-role-related annotation to the ARN of your IAM role for AWS Load Balancer Controller:

    annotations:
      eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/eks-aws-load-balancer-controller-arrikto-cluster  # <-- Update this line with your IAM role
    
  6. Commit your changes:

    root@rok-tools:~/ops/deployments# git commit -am "Configure AWS Load Balancer Controller"
    
  7. Deploy AWS Load Balancer Controller:

    root@rok-tools:~/ops/deployments# rok-deploy --apply rok/aws-load-balancer-controller/overlays/deploy
    

Verify

  1. Verify that the AWS Load Balancer Controller deployment is up-and-running. Verify field READY is 1/1:

    root@rok-tools:~/ops/deployments# kubectl get -n kube-system deploy/aws-load-balancer-controller
    NAME                           READY   UP-TO-DATE   AVAILABLE   AGE
    aws-load-balancer-controller   1/1     1            1           1m
    

Summary

You have successfully deployed AWS Load Balancer Controller.

What’s Next

The next step is to deploy NGINX Ingress Controller.