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 4 nodes.

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

Each node comes with attached storage and we require a minimum of 32gb.

Our recommended starting infrastructure is the following:

 

Customer Type

AWS

Azure

Object store

SMB

m5a.xlarge

EBS gp2*

4x D4as V4

E10 - collectively 350GB*

 

Standard

As required for landing zone and archive

Enterprise

m5.xlarge

EBS gp3*

 

4x D4ds V4

P15 - collectively 350GB*

Standard

As required for landing zone and archive

  • Storage is split by definition in k8s PV config

  • Kubernetes nodes will have additional storage depending on configuration

 

Storage tiers for Persistent Volumes (PV).

The Postgres PV StorageClass can be upgraded to an high IOPS tiers (1000 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: 200Gi

 

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.