Как канарные сервисы в Openshift?

Я экспериментирую, чтобы сделать канареечную версию службы в Openshift. Я понимаю и знаю, как управлять service, если он зарегистрирован на route. Но бывают ситуации, когда мы часто заканчиваем тем, что не регистрируем каждую службу с помощью route. Есть ли возможность канарить сервис в OpenShift без маршрута? Кто-нибудь сделал это успешно?

P.S: Я ищу возможность канареек, предоставляемую Istio, но, к сожалению, я не могу использовать ее прямо сейчас.


person zeagord    schedule 12.04.2018    source источник


Ответы (1)


По сути, есть два основных способа достижения канареек без маршрутов.

Во-первых, просто добавить новые модули позади той же службы. Поскольку сервисы по сути являются балансировщиками нагрузки с циклическим перебором, количество модулей определяет соотношение того, сколько запросов будет предоставлено в старом развертывании или в канареечном развертывании.

Второй способ — развернуть какой-нибудь обратный прокси-сервер, такой как haproxy или nginx, и использовать его для разделения трафика, что похоже на использование istio в том смысле, что вы вводите новый компонент SW в свой кластер для достижения цели.

person Marek Jelen    schedule 12.04.2018
comment
Можно ли определить тип алгоритма балансировки нагрузки в сервисе? И определите, сколько трафика вы хотите отправить в конкретный модуль? - person zeagord; 12.04.2018
comment
Не то, чтобы я знал о kube-proxy (kubernetes.io/docs/reference/generated/kube- прокси) оформлен как simple TCP and UDP stream forwarding or round robin TCP and UDP forwarding across a set of backends. Он может работать в двух режимах — iptables и userspace — но оба round-robin. Единственным способом было бы взломать текущий kube-proxy или заменить его полностью, но я бы не считал это решением. - person Marek Jelen; 12.04.2018
comment
Спасибо Марек. Оцените ответ. - person zeagord; 12.04.2018