Практика к занятию по теме "Service mesh на примере Istio"

Зависимости

Для выполнения задания вам потребуется установить зависимости:

Содержание

Задачи

Задание состоит из этапов

  • Развернуть Minikube
  • Развернуть Istio c Ingress gateway
  • Развернуть две версии приложения с использованием Istio
  • Настроить балансировку трафика между версиями приложения на уровне Gateway 50% на 50%
  • Сделать снимок экрана с картой сервисов в Kiali с примеров вызова двух версии сервиса

Пример карты сервисов с балансировкой трафика между версиями

Инструкция по выполнению задания

  • Сделать форк этого репозитория на Github
  • Выполнить задание в отдельной ветке
  • Создать Pull request с изменениями в этот репозиторий

Лайфхаки по выполнению задания

Для выполнения задания вы можете воспользоваться материалами демо.


Спецификацию IstioOperator можно посмотреть в документации Istio или можно посмотреть исходники манифестов, исполняемых оператором.


Если вы хотите изменить текущую конфигурацию Istio, достаточно применить манифест с указанием конфигурации:

kubectl apply -f istio/istio-manifest.yaml

Для выключения шифрования между прокси, нужно применить настройку:

kubectl apply -f istio/defaults.yaml

Для доступа к какому-либо сервису с хоста можно использовать тип NodePort в сервисе:

---
apiVersion: v1
kind: Service
metadata:
  name: test
  namespace: default
spec:
  type: NodePort
  ports:
    - port: 80
      nodePort: 32080
      targetPort: 8080
  selector:
    app: test

Использовать специальную команду для доступа к сервису:

minikube service -n <namespace> <service>