Initial configuration
This section describes how platform teams will need to prepare the infrastructure for a large-scale deployment spanning on-premises and multi-cloud environments. The platform team will be responsible for infrastructure deployment, maintaining DevOps tooling, monitoring, and maintaining several clouds.
The following workflow outlines the key steps for deploying Consul across various environments, including Kubernetes, virtual machines (VMs), and Nomad. Each stage ensures that the necessary prerequisites are installed, Consul is deployed and configured, applications are launched, and communication between environments is established through Consul peering connections.
People
Platform team
The platform team manages the deployment of VM-based, Nomad, and Kubernetes infrastructure. They should be responsible for the following actions:
- Infrastructure creation via Terraform.
- Consul installation via Terraform for VMs.
- Consul installation via Helm for Kubernetes using GitOps.
- Setting up admin partitions on-premises.
- Setting up cluster peering between on-premises, AWS, and Azure deployments.
Development teams
Development teams deploy applications. On-premise, they should be responsible for installing a dashboard application on VMs and installing a counting application in Nomad. For cloud environments, they should look at installing a dashboard app on AWS and a counter app in Azure.
Infrastructure creation using Terraform
On-premise Consul install on VMs
Platform teams can follow the recommended deployment architecture discussed in the Consul Solution Design Guide to right-size the deployment, check component compatibility, and follow the deployment sequence using the provided Terraform modules.
On-premise Nomad install
Nomad and Consul client installation steps are provided in the deployment section below. For reference, the HVD Operating Guide for Nomad provides initial configuration guidance.
Infrastructure creation for Kubernetes on AWS and Azure
The Terraform Solution Design Guide provides platform-specific guidance for creation. Teams can choose the Kubernetes distribution they prefer. This documentation focuses on Elastic Kubernetes Service (EKS) and Azure Kubernetes Service (AKS) specifically.
Consul installation via Helm on Kubernetes
Once the infrastructure is built, Consul can be installed on the Kubernetes cluster. HashiCorp publishes a Helm chart for Consul. The Helm values that will be used are discussed later on in the document.
Setting up admin partitions on-premises
Admin partitions are discussed in detail in the Operating Guide for Standardizationdocument. In this guide, you will set up admin partitions in the on-premises cloud. This is so separate frontend and backend teams can have full administrative control of their respective partitions. Each of these teams will operate autonomously within their partition without the burden of managing the Consul control plane.
Setting up cluster peering between multiple clusters
Cluster peering is also introduced in the Operating Guide for Standardizationdocument. In this guide, you will connect on-premises and Kubernetes clusters running on AWS and Azure using cluster peering. Cluster peering is also discussed in detail in the following sections.