This guide showcases how istio can be configured to use a public and internal ingress. This example uses the istio operator.
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.
To run this repo bootstrap.sh
script, the following CLI tools need to be installed:
- terraform
- az
- kubectl
- helm
- git
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.
kubectl create ns test-app
kubectl label namespace test-app istio-injection=enabled --overwrite
kubectl apply -f app/.