Deploying Sisense with Kops and FSx on AWS
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 Minimum Requirements for Sisense in Linux Environments 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
- 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/
- 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
- Sisense Type 1 - 1 Master and 2 Workers (1 Namespace):
- 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) - Run the Kops bootstrap script including the chosen Kops cluster configuration file, for example:
-
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 dependencies 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. - 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.
- Edit Sisense config file.
- Edit the Sisense Installing Sisense on Linux. (The example below includes FSX storage).
- Run the installation.
- Get load balancer address and access Sisense.
- Add a Kubernetes Dashboard. See Tutorial: Deploy the Kubernetes Dashboard (web UI) for more information.
- Destroy the Kops Cluster.
# 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
bash ./sisense_full_kops.sh sisense_kops_1_masters.yaml'
kubernetesclustername: kops
kubernetesclusterlocation: us-west-2
kubernetescloudprovider: aws
fsxdnsname is: fs-00f61c866557771d1.fsx.us-west-2.amazonaws.com
fsxmountname is: 34krpbmv****
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/
vim cloud_config.yaml
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"
./sisense.sh cloud_config.yaml
kubectl get svc --namespace sisense -w api-gateway-external
bash kops_infrastructure/cleanup.sh