Исправление RouteRules Istio не вступает в силу с помощью kubectl - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь на лету исправить RouteRule от Istio, изменяя пропорцию трафика, которую получает каждая версия сервиса.Прямо сейчас, когда я запускаю

kubectl describe routerule my-rule

, я получаю описание:

Name:         my-rule
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"config.istio.io/v1alpha2","kind":"RouteRule","metadata":{"annotations":{},"name":"my-rule","namespace":"default"},"spec":...
API Version:  config.istio.io/v1alpha2
Kind:         RouteRule
Metadata:
  Cluster Name:        
  Creation Timestamp:  2018-05-25T16:21:59Z
  Generation:          0
  Resource Version:    154906
  Self Link:           /apis/config.istio.io/v1alpha2/namespaces/default/routerules/my-rule
  UID:                 bfd78178-6037-11e8-8d5c-06f2e5b7e6b2
Spec:
  Destination:
    Name:  MyApp
  Match:
    Request:
      Headers:
        Uri:
          Prefix:  /MyApp/
  Rewrite:
    Uri:  /
  Route:
    Labels:
      Version:  v1
    Weight:     10
    Labels:
      Version:  v2
    Weight:     90

Теперь я хочу изменить правило так, чтобы 90% трафика отправлялось на v1 и 10% на v2:

kubectl patch routerule my-rule --type='json' -p='[{"op":"replace", "path":"/spec/route", "value":[{"labels":{"version":"v1"}, "weight": "90"}, {"labels":{"version":"v2"}, "weight": "10"}]}]'

Когда я запускаю это, команда завершается успешно с routerule.config.istio.io "my-rule" patched;и если я снова запускаю kubectl describe в своем правиле, я могу убедиться, что оно имеет обновленные значения:

...
Route:
Labels:
  Version:  v1
Weight:     90
Labels:
  Version:  v2
Weight:     10

Однако на самом деле это не вступает в силу.Когда я попадаю в конечную точку, я все еще вижу, как применяются оригинальные правила (большая часть трафика отправляется в v2).Любые идеи относительно того, что может быть причиной этого?Нужно ли мне как-то сообщать Istio, что правило изменилось?

1 Ответ

0 голосов
/ 30 мая 2018

Глупая ошибка - выяснил, что я делал неправильно:

"weight": "90" должно было быть "weight": 90 (целочисленное значение вместо строки).Однако странно, что Istio с радостью взял строковое значение из патча и применил его, даже если он должен был сообщить об ошибке.Я буду ждать, чтобы увидеть, исправят ли они это в своем стабильном выпуске пилота, иначе поднимет PR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...