[That DevOps Guy] Istio Service mesh explained
Делаю:
14.02.2021
Если сначала поднять ISTIO, а потом попробовать запустить в minikube предустановленный ingress, возможно он не заведется. (Долго пытался установиться, но не судьба. М.б. нужно было ждать дольше).
Поднимаю как здесь
YouTube
https://www.youtube.com/watch?v=KUHzxTCe5Uc
GitHub
https://github.com/marcel-dempers/docker-development-youtube-series
Дока
https://github.com/marcel-dempers/docker-development-youtube-series/tree/master/kubernetes/servicemesh/istio
Запуск приложения
$ cd ~/tmp
$ git clone https://github.com/marcel-dempers/docker-development-youtube-series
$ cd docker-development-youtube-series/
Ingress конфиг лежит вместе с остальными файлами в каталоге videos-web/:
applications
$ kubectl apply -f kubernetes/servicemesh/applications/playlists-api/
$ kubectl apply -f kubernetes/servicemesh/applications/playlists-db/
$ kubectl apply -f kubernetes/servicemesh/applications/videos-api/
$ kubectl apply -f kubernetes/servicemesh/applications/videos-web/
$ kubectl apply -f kubernetes/servicemesh/applications/videos-db/
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
playlists-api-684fb4c5d7-crvqk 2/2 Running 0 57s
playlists-db-7d68bbf5c4-rvt7z 2/2 Running 0 50s
videos-api-ccc8f5b46-qvqj6 2/2 Running 0 45s
videos-db-85ccd8bc-xbzrr 2/2 Running 0 34s
videos-web-cdbc466f4-nqsm6 2/2 Running 0 39s
$ kubectl get ing
NAME CLASS HOSTS ADDRESS PORTS AGE
playlists-api <none> servicemesh.demo 192.168.49.2 80 22m
videos-web <none> servicemesh.demo 192.168.49.2 80 22m
$ sudo vi /etc/hosts
192.168.49.2 servicemesh.demo
http://servicemesh.demo/home/
OK!
Изучаем
while :
do
curl "http://servicemesh.demo/home/";
curl "http://servicemesh.demo/api/playlists";
sleep 10;
done
Попробовали GIT Grafana (istio / Istio Mesh Dashboard) и Kiali.
Поломали контейнер, чтобы он работал неправильно.
Создали виртуальный сервис и поделили трафик между этими сервисами.
Попробовали Canary Deployment в зависимости от cookies. Если есть на 1 сервис, если нет, на другой.