Deploying Sisense with Kops and FSx on AWS
  • 14 Jun 2022
  • 3 Minutes to read
  • Dark
    Light

Deploying Sisense with Kops and FSx on AWS

  • Dark
    Light

Kubernetes Operations (Kops), is an open source project used to set up Kubernetes clusters. Kops helps you create, destroy, upgrade and maintain production-grade, highly available, Kubernetes clusters from the command line. Currently, Sisense supports Kops with FSx on AWS (Amazon Web Services).
The instructions below describe how to deploy Sisense with Kops on AWS with FSx shared storage.

Prerequisites

  • Supported Linux OS. See Linux Minimum Requirements for a full list of supported operating systems
  • AWS CLI. Click here for instructions on how to install the AWS CLI
  • Create a Route 53 domain for your cluster
  • Create an S3 bucket to store your clusters stat

Installation

  1. Download the Sisense Kops bootstrap archive and extract it.
wget https://data.sisense.com/linux/scripts/kops/kops_infrastructure_v3.tar.gz && tar zxf kops_infrastructure_v3.tar.gz && cd kops_infrastructure/
  1. Select the relevant Kops configuration.
  • Sisense Type 1 - 1 Master and 2 Workers (1 Namespace): sisense_kops_1_masters.yaml
  • Sisense Type 2 - 3 Master and 1 Workers (2+ Namespaces): sisense_kops_3_masters.yaml
  1. Provide the following information in the chosen YAML file: 
    kopsClusterName: Kops cluster name (default: sisense-test)
    dnsZone: Kops DNS zone name (default: sisense.local)
    dnsZoneId: Kops DNS zone id - (default match sisense.local above)
    awsRegion: Kops AWS region - (default: us-west-2)
    namespaceName: Sisense namespace labels - (default: sisense)
    stateStore: Kops S3 state store - (default s3://sisense-kops-generic.com - Sisense account)
# Sisense KopsFile values.yaml
kopsClusterName: sisense-test
kubernetesVersion: 1.17.8
dnsZone: sisense.local
dnsZoneId: Z0613794SBNV1ZVHPJSV
awsRegion: us-west-2
namespaceName: sisense
stateStore: s3://sisense-kops-generic.com
 
# Sisense Type 1 - 1 Master and 2 Workers (1 Namespace)
masterGroup: ## 1 Group of masters
  machineType: t3.2xlarge
nodeGroup:
  machineType: t3.2xlarge
  maxNodeSize: 5
 
# Sisense Type 2 - 3 Master and 1 Workers (2+ Namespaces)
# masterGroup: ## 3 Groups of masters - 1 each subnet
# machineType: t3.2xlarge
# maxNodeSize: 5
 
# nodeGroup:
# machineType: t3.2xlarge
# maxNodeSize: 5
  1. Run the Kops bootstrap script including the chosen Kops cluster configuration file, for example:
bash ./sisense_full_kops.sh sisense_kops_1_masters.yaml'
  1. Enter the Kops cluster name and press Enter.
    6.Insert your AWS credentials and region.
    AWS Access Key ID [****************5ANY]:

    After the script installs all the needed dependences and installs a Kops cluster and FSx for Sisense persistent storage, use the output when defining the values in your configuration YAML file described in Step 8.
    Below is an example output.

kubernetesclustername: kops
kubernetesclusterlocation: us-west-2
kubernetescloudprovider: aws
fsxdnsname is: fs-00f61c866557771d1.fsx.us-west-2.amazonaws.com
fsxmountname is: 34krpbmv****
  1. Download and extract the Sisense Installation package. Contact Sisense Support for the latest version. The example below is based on version Sisense V8.2.1.
get https://data.sisense.com/linux/Sisense-L8.2.1.tar.gz && tar zxf Sisense-L8.2.1.tar.gz && cd Sisense-L8.2.1/
  1. Edit Sisense config file.
vim cloud_config.yaml
  1. Edit the Sisense configuration file. (The example below includes FSX storage).
k8s_nodes:
  - { node: ip-192-168-57-176.us-east-2.compute.internal, roles: "application, query" }
  - { node: ip-192-168-90-212.us-east-2.compute.internal, roles: "application, query" }
  - { node: ip-192-168-18-98.us-east-2.compute.internal, roles: "build" }
  
## Update current installation. - true/false
update: false

# is_kubernetes_cloud: - kubernetes boolean flag
is_kubernetes_cloud: true

# kubernetes_cluster_name - created cluster name
kubernetes_cluster_name: kops

# kubernetes_cluster_location - AWS EKS = Region, Google GKE = Zone, Azure AKS = Resource Group
kubernetes_cluster_location: "us-west-2"

# kubernetes_cloud_provider - 'aws', 'gke', 'azure'.
kubernetes_cloud_provider: "aws"

# Cloud LoadBalancer service
cloud_load_balancer: true

# Cloud AutoScaler service
cloud_auto_scaler: true

## Application DNS Name.
# 1. When empty, first node external_ip will be configured
# 2. When is_ssl is true, configure the CN name
application_dns_name: ""

## Linux user of the servers (UID 1000)
linux_user: "ec2-user"

 ##SSH Key Path or Password is required, when ssh_key is empty, password will be prompted
ssh_key: "/home/ec2-user/Aviv_playground.pem"

###Cluster storage types -  Supported types:
##Azure AKS -  azurefile, nfs
##Google GKE - nfs (Filestore)
##Amazon EKS - fsx
storage_type: "fsx"

##AWS FSX
fsx_dns_name: "fs-0cc12df16cbd4f123.fsx.us-east-2.amazonaws.com"
fsx_mount_name: "b7vqlbmv"
  1. Run the installation.
./sisense.sh cloud_config.yaml
  1. Get load balancer address and access Sisense.
kubectl get svc --namespace sisense -w api-gateway-external
  1. Add a Kubernetes Dashboard. See Tutorial: Deploy the Kubernetes Dashboard (web UI) for more information.
  2. Destroy the Kops Cluster.
bash kops_infrastructure/cleanup.sh

Was this article helpful?