Розподіл за коефіцієнтами локацій

Дотримуйтесь настанов цього посібника, щоб налаштувати розподіл трафіку між локаціями.

Перед тим як продовжити, обовʼязково виконайте кроки, описані в розділі перш ніж розпочати.

У цьому завданні ви використаєте pod curl у region1 zone1 як джерело запитів до сервісу HelloWorld. Ви налаштуєте Istio з наступним розподілом між локаціями:

РегіонЗона% трафіку
region1zone170
region1zone220
region2zone30
region3zone410

Налаштування розподілу за коефіцієнтами

Застосуйте DestinationRule, яке налаштовує наступне:

  • Виявлення аномалій для сервісу HelloWorld. Це необхідно для правильного функціонування розподілу. Зокрема, це налаштовує sidecar проксі, щоб вони знали, коли точки доступу сервісу є несправними.

  • Розподіл за коефіцієнтами для сервісу HelloWorld, як описано в таблиці вище.

$ kubectl --context="${CTX_PRIMARY}" apply -n sample -f - <<EOF
apiVersion: networking.istio.io/v1
kind: DestinationRule
metadata:
  name: helloworld
spec:
  host: helloworld.sample.svc.cluster.local
  trafficPolicy:
    loadBalancer:
      localityLbSetting:
        enabled: true
        distribute:
        - from: region1/zone1/*
          to:
            "region1/zone1/*": 70
            "region1/zone2/*": 20
            "region3/zone4/*": 10
    outlierDetection:
      consecutive5xxErrors: 100
      interval: 1s
      baseEjectionTime: 1m
EOF

Перевірка розподілу

Викличте сервіс HelloWorld з pod curl:

$ kubectl exec --context="${CTX_R1_Z1}" -n sample -c curl \
  "$(kubectl get pod --context="${CTX_R1_Z1}" -n sample -l \
  app=curl -o jsonpath='{.items[0].metadata.name}')" \
  -- curl -sSL helloworld.sample:5000/hello

Повторюйте це кілька разів і перевірте, що кількість відповідей для кожного pod відповідає очікуваному відсотку в таблиці на початку цього посібника.

Вітаємо! Ви успішно налаштували розподіл за локаціями!

Наступні кроки

Очистіть ресурси та файли з цього завдання.

Чи була ця інформація корисною?
Чи є у вас пропозиції щодо покращення?

Дякуємо за ваш відгук!