Document toolboxDocument toolbox

How to deploy on your cloud

K can be deployed on your cloud using Kubernetes (k8s).

 

Minimum infrastructure requirements

We recommend using K8s on managed providers such as Amazon’s Elastic Kubernetes Service (EKS), Google’s Kubernetes Engine (GKE) and Microsoft Azure’s Kubernetes Service (AKS). You can also deploy K8s on bare metal (Openshift for example provides a K8s service for bare metal)

 

Compute requirements

K is deployed into a node pool of at least 3 nodes.

Each node requires a minimum of 4 vCPU (intel / amd) and 16gb Memory (in AKS is this D4as V4).

Each node should be attached storage minimum of 32gb.

Our recommended starting infrastructure is the following:

 

 

Minimum Requirements

Example: Azure

Example: AWS

 

Minimum Requirements

Example: Azure

Example: AWS

Kubernetes nodes

3

3

3

Node storage

32GB

32GB ephemeral

32GB EBS gp2

Compute per node

4 VCPU

D4as_v4

m5.xlarge

Memory per node

16GB

Storage

350GiB

500 IOPS

100mb/s

Storage is split by definition in k8s PV config

Azure Managed Disks E15

 

EBS gp3

 

Storage tiers for Persistent Volumes (PV).

The Postgres PV StorageClass can be upgraded to an high IOPS tiers (3000 IOPS+) when loading larger customers. (Customers where there are 1M+ data objects)

Ask your Kubernetes admin in your organisation for the StorageClassName to use. Note storage costs will depend on your storage class and cloud provider.

Example update the postgres/k8s/postgres.yaml

... volumeClaimTemplates: - metadata: name: postgres-storage annotations: pv.beta.kubernetes.io/gid: "100111" spec: storageClassName: "YOUR HIGHER IOPS Storage class" accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 256Gi

 

Landing zone

A landing areas is used collect metadata and log files.

Landing zone is ideally hosted on either AWS s3 or Azure Blob.

Using local storage is a currently untested option that can be further explored with us.

 

Network requirements

The Kubernetes node pool must be deployed into a single zone / subnet. This subnet must have a minimum of /25 CIDR (128 IP addresses) whcih will be used for K platform services, Ingress load balancer and Kubernetes services.

The Kubernetes service needs access to the storage where metadata and logging files are stored

K does not need internet access but some features (help widget) will become disabled.