curl -L https://istio.io/downloadIstio | sh –

After installing Istio into a cluster, you will see the control plane and the egress and ingress gateway. As soon as we install applications and inject the service proxies into them, we will have a data plane as well

taichengl-macbookpro:istio-1.24.0 taichengl$ kubectl apply -f ./samples/addons


Istio uses Kubernetes custom resources when deployed on kubernetes . Istio implements a controller that watches for these new CRs to be added and reacts to them accordingly.

$istioctl kube-inject -f services/catalog/kubernetes/catalog.yaml
When we run kube-inject, we add another container named istio-proxy to the pod template in the Depolyment object. To enable automatically inject the sidecar proxy, kubectl label namespace istioinaction istio-injection=enabled

kubectl port-forward deploy/webapp 8080:8080


./istioctl dashboard grafana http://localhost:3000