This blog provides show notes for our January 27, 2022, webinar, “How to Deploy Bold Reports in Kubernetes Clusters”. The webinar was presented by Syncfusion Software Developer Ranganathan Arumugam. A recording of the webinar is embedded below.
Introduction to Enterprise Reporting
Bold Reports Enterprise Reporting is a business intelligence report management tool, built by Syncfusion for creating, managing, and distributing pixel-perfect paginated RDL reports behind your organization’s firewall.
It helps us to analyse, explain, and report business information in our day-to-day life. Business users need a reporting tool to track and improve their business.
Kubernetes Deployment: An Overview
Kubernetes is an open-source system for automating the deployment, scaling, and managing of containerized applications.
List of some of the key features that can be performed by Kubernetes.
- Self Healing Capability – When the container fails, It will be raised automatically.
- Automated Rollout & Rollback –We can do zero-downtime deployment where a new app can be rolled out without taking down the previous app.
- Components act as separate units – It means each sub-application can be deployed in individual containers, so this can be achieved by Kubernetes.
- Horizontal Scaling & Load Balancing – Kubernetes can do horizontally scale our containers.
- Run Everywhere – Kubernetes can be deployed on your local machine, or you can also use any of the cloud providers.
Other Deployment vs Kubernetes
|Down Time||Service will be stopped||No downtime|
|Independent Sub Application||No||Yes|
Why do we need Kubernetes?
- Assume you’re having an application that can run in different containers. But what happens if one or more of those containers fail? So how do we manage those containers?
- We can also use Docker Compose. But in the production environment, what happens when we need to scale or heal the container when it goes down? Docker compose is not suitable for production environments.
- So, Kubernetes will manage the containers for us and scale up the containers when needed. As said before, it will bring up or create the container when it’s goes down or deleted.
Let’s see how Kubernetes will manage our containers and how it works.
- Kubernetes has a master node. This is the main controller of all the operations like managing the different employees, which are called worker nodes.
- Worker nodes are the virtual machines. The master node will create a cluster and put worker nodes together in that cluster.
- Master node will create “pods” in each of these nodes.
- Pods are a method of hosting containers in nodes. Because we cannot directly contact our container, pods are the intermediators that help contact it.
- If any one of the pods goes down. Master node will create a new pod in that node and delete the existing pod without zero downtime.
Multiple Ways of Deployment in Kubernetes
Host within our organization with any of our deployment modes.
- On-premise: Install on any Windows or Linux machine (Docker Desktop).
- AKS: Install in Azure Kubernetes Cluster.
- EKS: Install in Amazon Elastic Kubernetes Service.
We intend to add Kubernetes support to GKE (Google Kubernetes Engine) in the future.
On-Premise vs AKS vs EKS
|Node Cost||–||$0.417/hr||$0.195/hr (Depends on the plan)|
|Node Health Repair||–||Automatic node health repair||No automatic node health repair|
|Storage||Local Disk||Azure File Share||EFS|
|Resource Monitoring||–||Yes||No resource monitoring here, but we use third party|
- CPU: 2 or more CPUs
- Memory: 2 GB or more of RAM per machine
- Storage: Differs according to Kubernetes deployment platforms
- Database: Microsoft SQL Server 2012+ | PostgreSQL | MySQL
- Command Line Tool: Kubectl, Azure CLI, and Aws CLI
- Web Browser: Microsoft Edge, Mozilla Firefox, or Chrome
Now, we have prepared the cluster, with all the prerequisites necessary for deployment. To get started with the installation, download the latest Bold Reports Enterprise reporting Kubernetes deployment files from the following link.
Kubernetes Deployment Files
- Namespace.yaml – Namespaces are a way to organize clusters into virtual sub-clusters. It can be helpful when different teams or projects share a Kubernetes cluster.
- Log4net_config.yaml – If you want to see the application logs in your Kubernetes console, or logs need to store in a file. Those settings can be configured in this yaml file.
- Pvcclaim.yaml – PvcClaim is a cluster wide storage unit provided by an administrator with a lifecycle independent from a pod.
- Deployment.yaml – Deployment is declarative way to manage the pods using a replica set. Deployment and replica sets ensure the pods are running. Furthermore, the replica set ensures that the requested number of pods are available.
- Hpa.yaml – HPA changes the shape of your Kubernetes workload by automatically increasing or decreasing the number of pods in response to the workload’s CPU or memory consumption.
- Service.yaml – Service provides a single point entry for accessing the one or more pods.
- Ingress.yaml – Ingress exposes HTTP and HTTPS routes from outside the cluster to services within the cluster. Traffic routing is controlled by rules defined on the Ingress resource.
Installation on Kubernetes Cluster
- Bold Reports can be deployed on a Kubernetes cluster. You can create a Kubernetes cluster on either cloud or on-premise infrastructure. After completing cluster creation, connect to it and you can download the configuration files here. This directory includes configuration YAML files, which contain all the configuration settings needed to deploy Bold Reports on a Kubernetes cluster.
- For installation, continue with the steps to deploy Bold Reports On-Premise on Microsoft Azure Kubernetes Service (AKS).
- SSL stands for Secure Sockets Layer. It’s the standard technology for keeping an internet connection secure and safeguarding any sensitive data that is being sent between two systems.
- By default, the application will be hosted in non-SSL mode. If you want to configure SSL, we need to uncomment those lines for configuring the domain and SSL in the ingress file.
- We can replace example.com with our domain name.
Uncomment the following marked lines in the Ingress file:
Client Libraries Installation
To include third-party data sources, we have provided an option to choose the necessary client libraries from the following list:
- Go to the optional library location in your pod and install the PhantomJs.
- Bold reports support to connect third-party data sources also. We use client libraries such as Oracle, PostgreSQL, and MySQL to connect with their respective SQL database variants. To install client libraries, we need to read and accept client library license.
- To install client libraries, continue with the steps.
- To install PhantomJS, continue with the steps.
I hope this blog provided a clear idea about how to deploy Bold Reports on Kubernetes Clusters. I hope you enjoyed this webinar and that you’ll keep an eye out for future Bold Reports webinars.
Look at our demo samples and documentation site to learn more. If you have any questions, please post them in the comments section. You can also contact us through our contact page or, if you already have an account, you can log in to ask your support question.
Bold Reports offers a 15-day free trial that does not require a credit card. We invite you to sign up and experience Bold Reports for yourself. Give it a try and let us know what you think!