Istio
Installation
Download Istio release:
$ curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.11.4 sh -
Add istioctl
binary to the system path:
$ mv ./istio-1.11.4/bin/istioctl /usr/local/bin/
Deploy Istio control plane:
$ istioctl install \
-f $HOME/Workspace/orca/orca/helm/examples/integrations/istio/values.yaml \
--set "components.pilot.k8s.nodeSelector.role=exp-control" \
--set "components.ingressGateways[0].k8s.nodeSelector.role=exp-control"
Wait until Istio pods are up and running:
$ kubectl -n istio-system get pods
Deploy Kiali
Deploy Kiali dashboard:
$ kubectl -n istio-system apply -f ./istio-1.11.4/samples/addons/kiali.yaml
Edit Prometheus address in Kiali config:
$ kubectl -n istio-system edit cm kiali
config.yaml: |
...
external_services:
custom_dashboards:
enabled: true
prometheus:
url: http://prometheus-operated.monitoring:9090
Restart Kiali pod:
$ kubectl -n istio-system delete pod $(kubectl -n istio-system get pods |grep kiali |awk '{print $1}')
Setup Grafana
Setup Grafana dashboards for Istio:
Istio Control Plane Dashboard
https://grafana.com/api/dashboards/7645/revisions/45/download
Istio Mesh Dashboard
https://grafana.com/api/dashboards/7639/revisions/45/download
Istio Service Dashboard
https://grafana.com/api/dashboards/7636/revisions/45/download
Cleanup
Delete Istio deployment:
$ istioctl x uninstall --purge
Delete Istio namespace:
$ kubectl delete ns istio-system
Helm-based installation (deprecated)
Add Istio repository:
$ git clone https://github.com/istio/istio.git
$ git checkout -b v1.4.5 tags/1.4.5
Install Istio CRDs:
$ helm install install/kubernetes/helm/istio-init \
--name istio-init \
--namespace istio-system
Wait until CRDs are installed:
$ kubectl -n istio-system wait --for=condition=complete job --all
Install Istio:
$ helm install install/kubernetes/helm/istio \
--name istio \
--namespace istio-system \
--values install/kubernetes/helm/istio/values-istio-demo.yaml