Deploying Denodo in the Azure Kubernetes Service (AKS)
You can translate the document:
The Azure Kubernetes Service (AKS) is a service provided by Azure that supports deploying Kubernetes clusters in Azure. AKS has become the default technology when working with Azure + Kubernetes due to its ease of use and its integration features with other Azure services such as the Azure Active Directory.
In this article we will show how to create a Kubernetes cluster in AKS using the Azure Command Line Interface, and how to deploy a Denodo Kubernetes application in it.
Azure Command Line Interface
The Azure Command Line Interface (Azure CLI) is a command-line tool that can be used for administering the Azure resources and we will use it extensively in the article, we will assume that it is installed and up to date as a prerequisite for executing the commands presented below.
Although it is also possible to manage the AKS resources from the Azure portal, in this article we have chosen to use the Azure CLI because usually, the commands are self-explanatory and also because it is possible to use these commands and test them easily in any custom Azure deployment.
Azure Kubernetes Service
The Azure Kubernetes Service eases the management, configuration and daily work of containerized environments in Azure. In other Knowledge Base articles, we explained how to deploy a Denodo container in a local Kubernetes environment and now, we will see how to perform this deployment into a cluster that is hosted in Microsoft Azure, making use of the Azure Kubernetes Service.
Note that all the below statements are Azure CLI commands, they can be copied into any environment to create a Denodo cluster in Azure.
The cluster creation is organized in three main parts:
- (Optional) Creation of the container registry: the Kubernetes cluster will use an Azure Container Registry to obtain the container images. This step can be skipped if using Denodo’s Harbor Registry.
- Creation of the Kubernetes cluster: the cluster will accept the deployment of the Denodo image.
- Deployment of Virtual DataPort in the cluster: the last step shows the deployment of the Denodo image, explaining the implications of doing this in Azure.
List of Prerequisites
This article assumes that there is an environment already configured to deploy a Docker image of Denodo in AKS, in other cases, there might be needed to install or configure something else before continuing with the next section. In summary:
- The Azure CLI and a valid Azure account with enough privileges to build all the Azure elements involved in the deployment of a Denodo image.
- A Docker image of Denodo in the local registry.
- Additionally, it will be easier to configure the deployment file if a local Kubernetes environment is created first, with a tested denodo-service.yaml.
Setup
To start with the Azure configuration, open a new console and execute the below Azure commands that will perform the following actions:
Log in to Azure interactively
|
$ az login |
Create a new resources group to use with the Azure resources that will be created in this guide. Provide a custom name and a valid location, for instance francecentral. It is possible to obtain the list of valid locations with the “list-locations” command.
|
$ az account list-locations $ az group create --name <denodoResourceGroup> --location <location> |
(Optional) Create the Container Registry
CLI
Create a new Azure Container Registry by providing a custom name and the name of the Resources Group created in the previous step.
|
$ az acr create --resource-group <denodoResourceGroup> --name <denodoAzureContainerRegistry> --sku Basic |
Then, log in to the newly created Azure Container Registry, get the login server address of the registry and tag the Denodo local image with the login server obtained.
|
$ az acr login --name <denodoAzureContainerRegistry> $ az acr list --resource-group <denodoResourceGroup> --query "[].{acrLoginServer:loginServer}" --output tsv $ docker tag denodo-platform <acrLoginServer>/denodo-platform:v1 |
Finally, push the image tagged to the Azure Container Registry by providing the ACR login server. List the registry to verify that the image is available.
|
$ docker push <acrLoginServer>/denodo-platform:v1 $ az acr repository list --name <denodoAzureContainerRegistry> --output table |
Azure Portal
While you can create the registry via the portal, uploading images to the registry still requires Azure CLI.
- Navigate to Container registries and click on create.
- Provide the container name and resource group.
- Once the registry is deployed you can click on Push an image under Overview to see the CLI instructions.
Create the Kubernetes Cluster
The AKS cluster privileges can be managed with role-based access controls, which is quite helpful since it allows to define the access to the resources based on roles assigned to users.
Before creating the cluster we will prepare a new service principal that we will set as a parameter in the cluster creation statement. Notice that to create the service principal we can provide a custom name, and Azure will return the identifier for this new principal, and it is the identifier that we will use later in the other Azure statements to refer to this service principal.
CLI
The next step is to retrieve the identifier of the Azure container registry created previously, in order to assign the role acrpull to the service principal over the container registry, so the cluster can pull images from the registry. If you are using Denodo’s registry, Harbor, you can skip this step.
|
$ az ad sp create-for-rbac --skip-assignment --name <denodoServicePrincipal> $ az acr show --resource-group <denodoResourceGroup> --name <denodoAzureContainerRegistry> --query "id" --output tsv $ az role assignment create --assignee <servicePrincipalId> --scope <acrId> --role acrpull |
Finally, we can create the Kubernetes cluster by providing: the name for the cluster, the resource group and the service principal identifier and secret.
|
$ az aks create \ --resource-group <denodoResourceGroup> \ --name <denodoAKSCluster> \ --node-count 1 \ --service-principal <servicePrincipalId> \ --client-secret <clientSecret> \ --generate-ssh-keys |
The cluster is now running in Azure AKS and we can connect to it with the default Kubernetes CLI kubectl.
Azure Portal
- On the Azure Portal navigate to the service Kubernetes Services.
- Create a new Kubernetes cluster. For more information on how to create a cluster in Azure refer to the guide Quickstart: Deploy an Azure Kubernetes Service (AKS) cluster using the Azure portal. For information about the right VM types refer to our documentation on Recommendations to Run the Denodo Platform on Microsoft Azure.
Deploying Denodo Virtual DataPort
In order to start with our deployment we need to configure first kubectl. To do that we have to install the Kubernetes CLI and configure the connection to the remote cluster in Azure. The latter is done with the az aks get-credentials command, where you need to provide the Azure cluster name and the name of its resource group.
|
$ az aks install-cli $ az aks get-credentials --resource-group <denodoResourceGroup> --name <denodoAKSCluster> |
To check if the configuration is successful, connect to the cluster and get the nodes information with kubectl.
|
$ kubectl get nodes |
The Denodo Platform requires a valid license in order to start, which can be obtained from a Denodo License Manager server or in some scenarios (like evaluation or Denodo Express) as a standalone license file. For this example we will be using Helm Charts to deploy Denodo but for those users that want to use Kubernetes without the abstraction of Helm the on Deploying Denodo in Kubernetes covers it in detail.
The license for Denodo Platform is configured on the license section of the values.yaml file.
|
Parameter |
Sample Value |
Description |
|
license.proto |
http/https |
License Manager configuration protocol. With https, it is required to import the correct certificates using the `tls.importCerts` parameter |
|
license.host |
<hostname> |
License Manager configuration host |
|
license.port |
10091(by default) |
License Manager configuration port |
Once these values are provided we can deploy the application as usual
|
$ helm install denodoplatform oci://harbor.open.denodo.com/denodo-9.0/charts/denodo-platform --version 1.0.4 --values denodo-platform-custom-values.yaml --namespace denodo-platform |
The documentation page Denodo Helm Charts Quick Start Guide has more details about the different options available to deploy Denodo Platform such as Solution Manager Auto Registration or using a Standalone License.
References
Azure Kubernetes Service (AKS)
Deploying Denodo in Kubernetes
How to create your own Docker images for Denodo Platform Containers
The information provided in the Denodo Knowledge Base is intended to assist our users in advanced uses of Denodo. Please note that the results from the application of processes and configurations detailed in these documents may vary depending on your specific environment. Use them at your own discretion.
For an official guide of supported features, please refer to the User Manuals. For questions on critical systems or complex environments we recommend you to contact your Denodo Customer Success Manager.
