This topic describes the deployment architecture of Dremio on Azure Kubernetes Service (AKS).
Azure AKS version 1.12.7 or later
Kubernetes cluster on Azure AKS (see Setting up an AKS Cluster for instructions)
Worker node instance type (minimum): E16s_v3 (16 core, 128 GiB memory, 400 GiB SSD, and 32 GB disk size)
Setting up an AKS Cluster
To set up a Kubernetes cluster on Azure Kubernetes Service (AKS), use the Azure portal or Azure CLI. The following steps are for Azure Portal:
Sign in to the Azure portal at https://portal.azure.com.
Create an AKS cluster (see Quickstart: Deploy an Azure Kubernetes Service (AKS) cluster using the Azure portal for more information).
Make sure to create a node group with an instance type that has 16CPU and 128GB of memory (E16s_v3 is recommended).
The number of allocated nodes in the AKS cluster must be equivalent to the number of Dremio executors plus one (1) for the Dremio master-coordinator.
Connect to the cluster (see Quickstart: Deploy an Azure Kubernetes Service (AKS) cluster using the Azure portal for more information).
Install Helm (see Install Apps with Helm in AKS for more information).
If you plan on using a local shell for access, install Helm.
- Begin Deploying Dremio.
To deploy Dremio on AKS, follow the steps in Installing Dremio on Kubernetes in the dremio-cloud-tools repository on GitHub.
High availability is dependent on the Kubernetes infrastructure. If any of the Kubernetes pods go down for any reason, Kubernetes brings up another pod to replace the pod that is out of commission.
The Dremio master-coordinator and secondary-coordinator pods are each StatefulSet. If the master-coordinator pod goes down, it recovers with the associated persistent volume and Dremio metadata preserved.
The Dremio executor pods are a StatefulSet with an associated persistent volume. secondary-coordinator pods do not have a persistent volume. If an executor pod goes down, it recovers with the associated persistent volume and data preserved.
Load balancing distributes the workload from Dremio’s web client (UI and REST) and ODBC/JDBC clients. All web and ODBC/JDBC clients connect to a single endpoint (load balancer) rather than directly to an individual pod. These connections are then distributed across available coordinator (master-coordinator and secondary-coordinator) pods.