Skip to content

Latest commit

 

History

History
75 lines (55 loc) · 2.57 KB

README.md

File metadata and controls

75 lines (55 loc) · 2.57 KB

AKS Istio Setup with public & internal ingress

Overview

This guide showcases how istio can be configured to use a public and internal ingress. This example uses the istio operator.

Note

Installing istio components through helm charts is being deprecated

If you want to install through gitops/helm then the recommended way is to use the Istio Operator.

Requirements

To run this repo bootstrap.sh script, the following CLI tools need to be installed:

  • terraform
  • az
  • kubectl
  • helm
  • git

Steps

Setup Infra

The infra code is inside the terraform folder.

If you want to use the default values for terraform, here's the terraform.tfvars:

location = "westeurope"
resource_group_name = "playground-aks-istio"
cluster_name = "aks-istio"
private_cluster_enabled = false
kubernetes_version = "1.23.3"
node_count = 1
vm_size = "Standard_B2ms"

First login with your az login account:

az login

Then run the bootstrap.sh script:

./bootstrap.sh ~/projects/istio istio-config

The bootstrap.sh:

  • Creates an AKS cluster
  • Installs the istio operator
  • Configures istio operator to create the istio system control plane components
  • Configures istio operator to create both the public and internal ingresses

Arg 1: Path where the istio helm chart is located. If the folder doesn't exist then a git clone of istio github repo is done. As of this writting, there isn't an official helm chart for the istio operator.

Arg 2: Path where all the configs for the istio operator are located.

Test Sample App

kubectl create ns test-app
kubectl label namespace test-app istio-injection=enabled --overwrite 
kubectl apply -f app/.

References