Canary развертывание между двумя пространствами имен k8s / gke с помощью переключения DNS?

У меня есть два похожих сервиса / развертывания / входа, работающих в двух пространствах имен GKE / K8S: ns-A (старый), ns-B (новый). Вход нс-А похож на myservice.mycompany.com. Все клиенты используют myservice.mycompany.com для доступа к старым службам в NS-A.

Теперь мне нужно развернуть трафик с ns-A на ns-B. Мне нужно, чтобы все клиенты получили доступ к новой услуге в NS-B. Я могу создать новый Ingress для новой службы в ns-B: myservice-B.mycompany.com и обновить все службы, чтобы использовать эту новую конечную точку.

но у меня много клиентов. можно использовать другие способы развертывания канареек с ns-A на ns-B. Я заглянул в контур, но контур не может поддерживать развертывание двух пространств имен.

Можно ли использовать переключение DNS или внутренние DNS-имена кластера для канареечного развертывания? Не могли бы вы подробнее рассказать? Спасибо


person BAE    schedule 11.12.2020    source источник
comment
Какой вход вы используете? вы используете какую-либо сервисную сетку? вы пробовали использовать флаггер? docs.flagger.app/usage/deployment-strategies#canary-release   -  person Tummala Dhanvi    schedule 12.12.2020


Ответы (1)


Вы можете реализовать canary на уровне входящего трафика, а не на уровне DNS. Скажем, свежие версии ingress-nginx поддерживают канареечные развертывания из коробки.
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#canary.

Отличный пример.
https://medium.com/@domi.stoehr/canary-deployments-on-kubernetes-without-service-mesh-425b7e4cc862

Обратите внимание, что ingress-nginx канарская реализация требует, чтобы ваши службы находились в разных пространствах имен.

person Olesya Bolobova    schedule 13.12.2020
comment
Мои две службы находятся в двух пространствах имен K8S. можно использовать ingress-nginx? - person BAE; 13.12.2020
comment
Фактически, ingress-nginx канареечная реализация требует, чтобы ваши службы находились в разных пространствах имен. Просто посмотрите пример, который я упомянул выше. - person Olesya Bolobova; 13.12.2020