Skip to content

Latest commit

 

History

History
42 lines (25 loc) · 3.53 KB

File metadata and controls

42 lines (25 loc) · 3.53 KB

Steps of Implementation for AKS Construction Set

A deployment of AKS-hosted workloads typically experiences a separation of duties and lifecycle management in the area of prerequisites, the host network, the cluster infrastructure, and finally the workload itself. This reference implementation is similar. Also, be aware our primary purpose is to illustrate the topology and decisions of a baseline cluster. We feel a "step-by-step" flow will help you learn the pieces of the solution and give you insight into the relationship between them. Ultimately, lifecycle/SDLC management of your cluster and its dependencies will depend on your situation (team roles, organizational standards, tooling, etc), and must be implemented as appropriate for your needs.

Accounting for Separation of Duties

While the code here is located in one folder in a single repo, the steps are designed to mimic how an organization may break up the deployment of various Azure components across teams, into different code repos or have them run by different pipelines with specific credentials.

Keeping It As Simple As Possible

The code here is purposely written to avoid loops, complex variables and logic. In most cases, it is resource blocks, small modules and limited variables, with the goal of making it easier to determine what is being deployed and how they are connected. Resources are broken into separate files for future modularization or adjustments as needed by your organization.

Terraform State Management

In this example, state is stored in an Azure Storage account that was created out-of-band. All deployments reference this storage account to either store state or reference variables from other parts of the deployment however you may choose to use other tools for state management, like Terraform Cloud after making the necessary code changes.

Getting Started

This section is organized using folders that match the steps outlined below. Make any necessary adjustments to the variables and settings within that folder to match the needs of your deployment.

  1. Prerequisites: Clone this repo, install Azure CLI, install Terraform

  2. Creation of Azure Storage Account for State Management

  3. Create or import Microsoft Entra groups for AKS cluster admins and AKS cluster users

  4. Creation of Hub Network & its respective Components

  5. Creation of Spoke Network & its respective Components

  6. Creation of Supporting Components for AKS

  7. Creation of AKS & enabling Addons

  8. Deploy a Basic Workload

Deploying AKS into Existing Infrastructure

The steps above assume that you will be creating the Hub and Spoke (Landing Zone) Network and supporting components using the code provided, where each step refers to state file information from the previous steps.

To deploy AKS into an existing network, use the AKS for Existing Cluster folder. Update the "existing-infra.variables.tf" file to reference the names and resource IDs of the pre-existing infrastructure.

Deploying blue green AKS clusters

As part of the reference implementation there is also the possibility to use the blue green deployment to cover platform and workloads non distruptive deployments. The basic deployment is not affected, and you can still follow a standard deployment following the Getting Started. The details about the blue green deployment are documented here.