In our steps for setting up a multiple discrete instance of Yellowfin, we’ll create two Yellowfin instances using the LoadBalancer service type in Kubernetes, so that each Yellowfin instance can be accessed on port 8080 of the provisioned load balancer.
The Production instance of Yellowfin will be allocated 6GB of RAM, and the Development instance will be allocated 4GB of RAM. In a Kubernetes environment where a load balancer cannot be provisioned during the deployment (eg, a basic on-premises environment), the services specification can be modified to switch the ServiceType to NodePort.
Before deploying your instances with these defaults, make sure you have already created a repository database and synced it with the same version of Yellowfin that will be used in the Yellowfin container. To do this, download the full application installer for Yellowfin, and install it on your workstation. This will create a Yellowfin repo DB as well as an instance of Yellowfin in a folder which can be deleted after configuring the containers.
For a list of supported database types, see the database information on Install And Deploy Yellowfin.
In the steps below, we’ll show you how to deploy two discrete instances of Yellowfin.
Copy the following text and paste it into your preferred text editor:
--- ### Yellowfin Production Instance - Service ### apiVersion: v1 kind: Service metadata: name: yellowfin-multi-instance-prod spec: ports: - name: "web" port: 8080 targetPort: 8080 selector: app: yellowfin-multi-instance-prod type: LoadBalancer status: loadBalancer: {} --- ### Yellowfin Development Instance - Service ### apiVersion: v1 kind: Service metadata: name: yellowfin-multi-instance-dev spec: ports: - name: "web" port: 8080 targetPort: 8080 selector: app: yellowfin-multi-instance-dev type: LoadBalancer status: loadBalancer: {} --- ### Yellowfin Production Instance - Deployment ### apiVersion: apps/v1 kind: Deployment metadata: namespace: default labels: app: yellowfin-multi-instance-prod name: yellowfin-multi-instance-prod spec: replicas: 1 selector: matchLabels: app: yellowfin-multi-instance-prod template: metadata: labels: app: yellowfin-multi-instance-prod spec: containers: - env: - name: APP_MEMORY value: "6144" - name: JDBC_CLASS_NAME value: INSERT_DATABASE_TYPE_1_HERE - name: JDBC_CONN_ENCRYPTED value: "true" - name: JDBC_CONN_PASS value: INSERT_JDBC_PASSWORD_1_HERE - name: JDBC_CONN_URL value: jdbc:INSERT_JDBC_CONNECTION_STRING_1_HERE - name: JDBC_CONN_USER value: INSERT_DATABASE_USER_1_HERE name: yellowfin-multi-instance-prod image: yellowfinbi/yellowfin-app-only:<RELEASE_VERSION_GOES_HERE> ports: - name: web containerPort: 8080 --- ### Yellowfin Development Instance - Deployment ### apiVersion: apps/v1 kind: Deployment metadata: namespace: default labels: app: yellowfin-multi-instance-dev name: yellowfin-multi-instance-dev spec: replicas: 1 selector: matchLabels: app: yellowfin-multi-instance-dev template: metadata: labels: app: yellowfin-multi-instance-dev spec: containers: - env: - name: APP_MEMORY value: "4096" - name: JDBC_CLASS_NAME value: INSERT_DATABASE_TYPE_2_HERE - name: JDBC_CONN_ENCRYPTED value: "true" - name: JDBC_CONN_PASS value: INSERT_JDBC_PASSWORD_2_HERE - name: JDBC_CONN_URL value: jdbc: INSERT_JDBC_CONNECTION_2_STRING_HERE - name: JDBC_CONN_USER value: INSERT_DATABASE_USER_2_HERE name: yellowfin-multi-instance-prod image: yellowfinbi/yellowfin-app-only:<RELEASE_VERSION_GOES_HERE> ports: - name: web containerPort: 8080 |
Kubectl apply –f yellowfin-multiple-instances.yml
Current topic - Install in a ContainerThe page is part of the Install in a Container topic contains the following pages, split by Docker and Kubernetes:
|
This page is part of the Install And Deploy Yellowfin section of the wiki, which has these topics:
|