Розподіл за коефіцієнтами локацій
Дотримуйтесь настанов цього посібника, щоб налаштувати розподіл трафіку між локаціями.
Перед тим як продовжити, обовʼязково виконайте кроки, описані в розділі перш ніж розпочати.
У цьому завданні ви використаєте pod curl
у region1
zone1
як джерело
запитів до сервісу HelloWorld
. Ви налаштуєте Istio з наступним
розподілом між локаціями:
Регіон | Зона | % трафіку |
---|---|---|
region1 | zone1 | 70 |
region1 | zone2 | 20 |
region2 | zone3 | 0 |
region3 | zone4 | 10 |
Налаштування розподілу за коефіцієнтами
Застосуйте 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 відповідає очікуваному відсотку в таблиці на початку цього посібника.
Вітаємо! Ви успішно налаштували розподіл за локаціями!
Наступні кроки
Очистіть ресурси та файли з цього завдання.