SOURCE: https://dev.to/gabrieltanner/modern-continuous-delivery-on-kubernetes-for-developers-5chf
- A K8s cluster (Kind cluster - https://istio.io/latest/docs/setup/platform-setup/kind/).
- ISTIO version >= 1.9.2.
- For ISTIO installation works, you need to set Docker CPU/Memory a bit like this: 6 CPU and 16Gi (50% of my Macbook capacity)
kind create cluster --config kind.yaml
What is ISTIO Operator
https://istio.io/latest/docs/ops/diagnostic-tools/istioctl/#install-hahahugoshortcode-s2-hbhb
curl -sL https://istio.io/downloadIstioctl | sh -
export PATH=$PATH:$HOME/.istioctl/bin
Install Operator:
istioctl operator init
Get default profile:
./istio-1.9.2/bin/istioctl profile dump > default.yaml
Create the example profile with IngressGateway is NodePort
.
-
Here, we map the Service's NodePort to KIND's containerPort, so we can route "hostPort -> containerPort -> NodePort -> targetPort (pods)). XXX: this means we should have set KIND PortMappings before this step, if not, reset KIND by destroy/create the cluster.
-
We also use overlays to patch the PodDisruptionBudget's
spec.minAvailable = 0
because we only have single Pod for IngressGW. -
Verify the example profile:
istioctl manifest generate -f manifests/example.yaml
Start to install the example profile:
kubectl create ns istio-system
kubectl apply -f manifests/example.yaml
Verify the Istio installation.
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.9.2 sh -
./istio-1.9.2/bin/istioctl install
Install Keptn v0.8.1
curl -sL https://get.keptn.sh | KEPTN_VERSION=0.8.1 bash
In this case you will install Keptn by using the continuous-delivery use-case.
keptn install --endpoint-service-type=ClusterIP --use-case=continuous-delivery
Configure Keptn with ISTIO:
curl -o configure-istio.sh https://raw.githubusercontent.com/keptn/examples/release-0.8.1/istio-configuration/configure-istio.sh
chmod +x configure-istio.sh
./configure-istio.sh
https://www.danielstechblog.io/running-istio-on-kind-kubernetes-in-docker/