Using an AWS Load Balancer Controller with Sisense on Amazon EKS
To handle Sisense traffic in an existing Kubernetes cluster on Amazon EKS, you can invoke an AWS Load Balancer Controller for managing a cluster's Elastic Load Balancers. Elastic Load Balancing automatically distributes your incoming traffic across multiple targets, such as EC2 instances, containers, and IP addresses, in one or more Availability Zones.
The ALB Controller satisfies Kubernetes ingress resources by provisioning Application Load Balancers.
For more information about how load balancing works on Amazon EKS, see Application load balancing on Amazon EKS.
Note:
Currently installing Sisense with the AWS Load Balancer over an infrastructure previously installed with Sisense with the Classic Load Balancer might not work. Sisense recommends installing on a new infrastructure (or make sure you uninstall and clean up the existing infrastructure), if choosing to switch from Classic to AWS Load Balancer.
Prerequisites
- Sisense version L2021.1.1, or later
- A running Amazon EKS service
- The AWS CLI tool to manage AWS services (see AWS Command Line Interface)
- The eksctl command line utility to create and manage Kubernetes clusters on Amazon EKS (see Getting started with Amazon EKS)
To deploy an ALB Controller with Sisense:
In the following procedure, you are going to work with your EKS node groups, edit a YAML file, and finally complete the steps for deploying Sisense on Amazon EKS.
-
Attach IAM Roles to the EKS node groups by specifying the following arguments to the script:
EKS_NAME: Your EKS Cluster name
EKS_REGION: The region where the EKS is located
NAMESPACE: (optional) Target namespace for ALB controller; by default, it will be installed in the “default” namespace
curl https://data.sisense.com/linux/scripts/aws-alb-iam-attach.sh | bash -x -s <EKS_NAME> <EKS_REGION> <NAMESPACE>
-
Download a Sisense version package.
wget $sisense_url
Contact your Sisense CSM for a link to the most up-to-date version.
-
Extract the Sisense package.
tar zxf $package_name
-
Navigate to the directory where you extracted the tar.gz file.
cd sisense-$sisense_version
-
Access the extra installation values YAML file.
vim ./kubespray/extra_values/installer/installer-values.yaml
-
Enter values for the following alb_controller parameters in the configuration YAML file.
Note:
If you are using NAMESPACE as a 3rd argument in the script in step 1 above, make sure that the Sisense installer will deploy ALB controller resources in the same namespace by adding extra values to the Sisense installer-values.yaml file:
utils_namespace: <namespace used as 3rd argument to the script>
enabled: Enables the ALB Controller
certificate_arn: Specifies the ARN of one or more certificates managed by the AWS Certificate Manager
annotations: Optional annotations to kubernetes Ingress and Service objects to customize their behavior (see Ingress annotations)
alb_controller:
enabled: false
certificate_arn: ""
annotations: {}
# alb.ingress.kubernetes.io/target-type: instance
# alb.ingress.kubernetes.io/auth-session-timeout: 604800
-
Go to Deploying Sisense on Amazon EKS and complete the deployment procedure starting with Step 5, which directs you to open and edit the cloud_config.yaml file.
-
Make sure the following configuration is set in the Sisense installation yaml file. Note that SSL should not be enabled, and we should not use the generic load balancer capability, as we are using the AWS Load Balancer in this case.
cloud_load_balancer: false
is_ssl: false
After you complete the Sisense deployment, you can use the URLs returned by the installer to access your AWS Load Balancer Controller address.