AKS Cluster

The possible infrastructure vary depending on how the PostgreSQL database is provisioned

Options:

  1. Azure AKS with VMs + Azure PostgreSQL

  2. Azure AKS with VMs + PostgreSQL Pod

We offer a provisioning script that depending on the selection, we automatically provision the cluster for you and install the K8S components needed for MD Core service. See AKS Cluster Deployment

MetaDefender PostgreSQL database details

Recommendations

For running MD Core in a Kubernetes cluster we recommend to use, for production environments, an external database service for PostgreSQL. In case of Azure it is Azure PostgreSQL which the script will deploy and configure to be accessible from the cluster.

For non-production environments or for stateless use cases, we offer the option of installing the database within the cluster using a standard PostgreSQL image.

Azure VMs + Azure PostgreSQL / PostgreSQL Pod Diagram


Resources Inventory

Networking

Service Type

Resource Name

Description

Azure Virtual Network

<resource-group-name>-vnet


Azure Subnet

<resource-group-name>-aks-subnet


Azure Subnet

<resource-group-name>-db-subnet


Azure Private DNS Zone

<postgres_db_account_name>.postgres.database.azure.com


Azure Private DNS Zone Virtual Network Link

<postgres__db__account_name>.com


Monitoring

Service Type

Resource Name

Description

Azure Log Analytics WorkSpace

<log_analytics_workspace_name>

Workspace for analyzing the AKS Service

Azure Log Analytics Solution

ContainerInsights

Solution for gathering metrics of containers

Compute

Service Type

Resource Name

Description

Option

Azure AKS

<cluster_name>

Azure Kubernetes Service Cluster

All

Azure ProstgreSQL Flexible Server

postgresql-<postgres_db_account_name>

PostgreSQL Server for MetaDefender Core

Option with Azure PostgreSQL

Azure ProstgreSQL Flexible Server Configuration

azure.extensions

Configuration for installing PG_TRGM,DBLINK,BTREE_GIN_

Option with Azure PostgreSQL

Info

The script will deploy a single Worker Node for the cluster with enough space for 1 replica of MD Core. Azure VM size is Standard_F8s_v2 (8 vCPU & 16 GiB Memory). Each pod would need a minimum of 4 vCPU and 8 GiB Memory. To change the request to adapt each pod to the specific case go to values.yml To change the size of the node pool go to terraform file terraform/azure/main.tf