The purpose of this documentation is to detail the tools and commands required to create infrastructure in your chosen cloud (GCP, AWS, Azure) which will support the installation of the KX Insights Platform. Please read the overview documentation and then navigate to the link for your chosen cloud.
The materials provided will create a managed Kubernetes cluster in any of the 3 major cloud providers. Once provisioned the cluster will be capable of running the KX Insights platform.
The following diagram shows a high level overview of the Cloud infrastructure required to run a KX Insights Platform deployment.
The Kubernetes cluster is deployed into a private network and is only accessible via VPN.
The following components are installed to support the KX Insights Platform deployment:
Cloud Provider resources
- Virtual Network
- Public subnets used by the bastion host and any resources created by the Kubernetes cluster (e.g. Load Balancer)
- Private subnets to deploy the Kubernetes worker nodes
- Bastion Host running on a Compute instance which acts as a VPN server to provide access to the Kubernetes cluster
- Kubernetes Cluster using the Cloud Provider's managed service (AKS,EKS,GKE)
- cert-manager 1.7.1 (generates certificates for any endpoint exposed by nginx-ingress)
- nginx-ingress 4.0.6 (exposes KX Insights endpoint which can be either REST API or Web Interface)
- rook-ceph 1.7.6 (provides a shared filesystem for KX Insights)
- A Storage Class named
sharedfiles, that is backed by shared storage. A recommended option is to deploy the cloud provider's CSI driver that implements network file storage (AWS,Azure,GCP)
To simplify the process, a Dockerfile is provided to generate a Docker image which is used primarily during cluster deployment but can also be used to install and manage the Insights installation. The Docker image includes all tools needed to deploy the cluster to avoid the process of installing multiple tools which could introduce issues on the deployment workstation.