GKE Cluster

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

Options:

  1. GCP GKE + GCP Cloud SQL

  2. GCP GKE + PostgreSQL Pod

  3. GCP GKE Autopilot + GCP Cloud SQL

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 GKE 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 GCP it is GCP Cloud SQL which the script will deploy and configure to be accessible from the cluster.

We offer different ways to access to the Cloud SQL Server from the GKE Cluster, these are the following ordered by recommended solutions

  1. Private Connection

  2. GCP Provided Connector in a Pod

  3. GCP Provided Connector in a Sidecar container

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.

GCP GKE + Cloud SQL Server/PostgreSQL Pod Diagram


GCP GKE Autopilot + Cloud SQL Server


Resources Inventory

Networking

Service Type

Resource Name

Description

GCP Compute Network

mdk8s-<project_id>-vpc

VPC for all the resources needed for MetaDefender products

GCP Compute Subnet

mdk8s-<project_id>-subnet


GCP Compute Global Address

private-ip-address


GCP Service Networking Connection



Compute

Service Type

Resource Name

Description

Option

GCP GKE

<cluster_name>

Google Kubernetes Engine

All

Google Cloud SQL

postgresql-<postgres_db_account_name>

PostgreSQL Server for MetaDefender Core

Option 2 with Cloud SQL

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