Skip to content

Latest commit

 

History

History
231 lines (170 loc) · 7.25 KB

pre-requisites.md

File metadata and controls

231 lines (170 loc) · 7.25 KB

Deployment Prerequisites

File Storage

GKE File Storage

  1. Create a Google filestore instance to store the shared folders for application usage.

    https://console.cloud.google.com/filestore

  2. Note the File share name and IP address after creating filestore instance.

File Share details

EKS File Storage

  1. Deploy the EFS CSI Driver to your cluster and create an Amazon Elastic File System (EFS) volume to store the shared folders for application usage by following the below link.

    https://docs.aws.amazon.com/eks/latest/userguide/efs-csi.html

  2. Note the File system ID after creating EFS file system.

AWS EFS

AKS File Storage

SMB

  1. Create a File share instance in your storage account and note the File share name to store the shared folders for application usage.

  2. Encode the storage account name and storage key in base64 format.

For encoding the values to base64 please run the following command in powershell

[System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("<plain-text>"))

File Share details

NFS

  1. Create an NFS file share instance within your premium storage account. Take note of the storage account and file share name, as these will be used to store shared folders for application usage.

  2. Identify the hostname in the properties of the file share. Make a note of the hostname as illustrated in the image below.

    File Share details

NOTE: The premium storage account of the NFS fileshare must be within the same subscription as the AKS cluster.

ACK File Sotrage

  1. Follow the documentation provided at this link to create a file system in Alibaba Cloud.

  2. Once the file system is created, locate and click on the cube icon. This will allow you to view the mount target hostname. Take note of the mount target hostname, as you will need it for mounting the file system with our application.

    NAS-Mount-Target

Create and connect a cluster

GKE Cluster

  1. Create a Kubernetes cluster in Google Cloud Platform (GCP) to deploy Bold BI.

    https://console.cloud.google.com/kubernetes

  2. Connect with your GKE cluster.

    https://cloud.google.com/kubernetes-engine/docs/quickstart

EKS Cluster

  1. Create an Amazon EKS cluster and node group to deploy Bold BI.

    https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html

  2. Connect to your Amazon EKS cluster. https://aws.amazon.com/premiumsupport/knowledge-center/eks-cluster-connection/

AKS Cluster

  1. Create a Kubernetes cluster in Microsoft Azure Kubernetes Service (AKS) to deploy Bold BI. https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal

  2. Connect with your Microsoft AKS cluster. https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal#connect-to-the-cluster

ACK Cluster

  1. Follow the documentation provided at the below link to create a Kubernetes cluster in Alibaba Cloud for deploying Bold BI. https://www.alibabacloud.com/help/en/container-service-for-kubernetes/latest/create-an-ack-managed-cluster

  2. Refer to the instructions provided at the below link to connect to your Alibaba ACK cluster using kubectl. https://www.alibabacloud.com/help/en/container-service-for-kubernetes/latest/connect-to-ack-clusters-by-using-kubectl

Load Balancing

Currently we have provided support for Nginx and Istio as Load Balancers in Bold BI. By default Nginx is used as reverse proxy for Bold BI.

Ingress-Nginx

If you need to configure Bold BI with Ingress, Install Nginx ingress controller in your cluster please refer below and run the command accordingly.


Name Description
GKE Cluster kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.11.3/deploy/static/provider/cloud/deploy.yaml
EKS Cluster kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.11.3/deploy/static/provider/aws/deploy.yaml
AKS Cluster kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.11.3/deploy/static/provider/cloud/deploy.yaml
OnPremise kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.11.3/deploy/static/provider/cloud/deploy.yaml

After install the nginx-ingress run the below command to set allow-snippet-annotations as true.

kubectl patch configmap ingress-nginx-controller -n ingress-nginx -p '{\"data\":{\"allow-snippet-annotations\":\"true\"}}' --type=strategic

Install Ingress-nginx using helm

If you need to configure latest Ingress-Nginx using helm in your cluster, please use below command.

helm install ingress-nginx ingress-nginx/ingress-nginx --version 4.11.3 --namespace ingress-nginx --create-namespace --set controller.service.externalTrafficPolicy=Local --set controller.config.allow-snippet-annotations="true"

Istio Ingress Gateway

If you need to configure Bold BI with Istio, Install Istio ingress gateway in your cluster please refer to the corresponing reference links


Name Description
GKE Cluster https://cloud.google.com/istio/docs/istio-on-gke/installing
EKS Cluster https://aws.amazon.com/blogs/opensource/getting-started-istio-eks/
AKS Cluster https://docs.microsoft.com/en-us/azure/aks/servicemesh-istio-install
OnPremise https://istio.io/latest/docs/setup/platform-setup/docker/

Get Ingress IP

Run the following command to get the ingress IP address.

# Nginx
kubectl get service/ingress-nginx-controller -n ingress-nginx

# Istio
kubectl get service/istio-ingressgateway -n istio-system

Note the ingress EXTERNAL-IP address and map it with your DNS. If you do not have the DNS and want to use the application, then you can use the ingress IP address.