8000 GitHub - sergedmitr/otus-homework-istio
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

sergedmitr/otus-homework-istio

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Результат выполнения задания

Студент: Дмитриев С.А. Группа OTUS MicroserviceArchitecture-2023-04

Описание

Работа выполнена на основании демо из лекции

Состоит из двух неравных частей:

  • установка указанного набора приложений и достижение состояния в котором запрос в proxy-app достигает echoserver и это видно в Kiali.
  • дополнение системы согласно ДЗ

Использованные зависимости

  • Linux Mint на отдельном железном хосте

  • Minikube 1.30.1

  • Kubectl 1.27.3

  • Istioctl 1.19.1

  • Helm 3.12.1

  • Prometheus (последний)

  • Grafana (последний)

  • Istio (последний)

  • Kiali 1.74.0

Процесс выполнения

  • Установил всё согласно демо, увидел в kiali как проходят запросы в штатном режиме
  • Исправил ошибку в нагрузочном js, там не хватало фразы "url=" перед указанием echoserver и из-за этого нагрузка не проходила с proxy-app на echoserver
  • Сделал второй деплоймент для второй версии приложения (manifest/05_echoserver-2-deployment.yaml) Изменил name деплоя на echoserver-2 и labels на version: "2"
  • Сделал destination rule (manifest/07_destination-rule.yaml) Объявил там trafficPolicy - Round_robin и два сабсета - определяемые по метке Version в поде
  • Сделал virtual service (manifest/09_virtual-service.yaml) С тем же именем echoserver, что и реальный сервис и определил правила роутинга по 50% на каждый из subset echoserver
  • Снял скриншот с Kiali (App_in_work.png)

Практика к занятию по теме "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>

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 89.3%
  • Dockerfile 10.7%
0