Cluster setup, Istio installation, namespaces

  1. Install Kind, minikube does not do well with this kind of a setup
brew install kind
  1. Install Cluster
kind create cluster --name istio-poc
  1. Download Istio (choose a recent stable version)

export ISTIO_VERSION=1.27.1
curl -L <https://istio.io/downloadIstio> | sh -
export PATH="$PWD/istio-${ISTIO_VERSION}/bin:$PATH"

  1. Install istioctl with minimal profile with ingressgateway
# Precheck and install with a revision (recommended)
istioctl x precheck
istioctl install -y --set profile=default
  1. Create namespaces
# create namespace bank, if already exists dont fail
kubectl apply -f k8s/namespace.yaml
  1. Inspect ingress IP/ Ports. The default istio profile comes with istio-ingressgateway (Optional). Demo profile has both ingress and egress
kubectl -n istio-system get svc istio-ingressgateway

Actual deployments

Create directory structure

mkdir -p istio-poc/k8s/{gateway,traffic,waf,telemetry,security} istio-poc/{certs,scripts}