Vyacheslav
А как же жизнь если у тебя не 100% стейтлесс приложение? Просто приложение может состоять из стейтлесс и стейтфул компонентов, что тогда? Нет жизни после смерти?
George
А как же жизнь если у тебя не 100% стейтлесс приложение? Просто приложение может состоять из стейтлесс и стейтфул компонентов, что тогда? Нет жизни после смерти?
Какую-нибудь условную монгу все равно вне кластера понесете, да ещё и пошардируете-пореплицируете между регионами
George
А как же жизнь если у тебя не 100% стейтлесс приложение? Просто приложение может состоять из стейтлесс и стейтфул компонентов, что тогда? Нет жизни после смерти?
Короче. Я жду кейса. Когда приложению из кубика в Америке нужно обратиться к другому приложению к кубику в Европе. И это нельзя сделать через внешний интерфейс (читай - ингресс)
Kyrylo
Хахаха we’d like to replace our custom multi-cluster coordination with the Federation V2 framework.
Kyrylo
Истио хорошая вещь, но не панацея, и со своими болячками (Впрочем как и все). хотя демо с двумя кластерами в один я с помощью истио собирал (в принципе у них на сайте расписано)
Kyrylo
Нам это не нужно. Зато остальное - просто жизненно необходимо
давайте посмотрим чем все закончится, пока похоже что истио таки выигрывает в забеге, но есть и альтернативы. (хотя конечно после появления истио в бетте GKE их трудно будет догнать)
G72K
Ещё и .cluster.local меняю на "общий" днс
G72K
Да, hot standby
A
Добрый вечер всем! А ингресс должен быть в каждом нс отдельно или один на уровне всего кластера?
George
Истио хорошая вещь, но не панацея, и со своими болячками (Впрочем как и все). хотя демо с двумя кластерами в один я с помощью истио собирал (в принципе у них на сайте расписано)
https://medium.com/@gyliu513/multi-cluster-support-for-service-mesh-with-ibm-cloud-private-d7d791f9b778?source=email-6c3a1f430515-1545543238323-digest.reader------0-59------------------c68e7e83_2dda_47d4_9a02_0b0bb382c5dd-16&sectionName=recommended вот ребята из ибм решили попробовать
A
От задач зависит, имхо
В типичной ситуации?
Vyacheslav
Спасибо
Кейс: У меня две географически разнесенные площадки с оборудованием, для обеспечения высокой доступности приложения я принимаю решение об обьединении двух площадок по средством аренды оптики. Так вот я такой весь молодежный и у меня стейтлесс приложение, к примеру это веб проект, в котором есть ну к примеру кластер из редисов, так вот клиентов у меня много трафик между кластером редиса и веб серверами 4-6 Gb/s. Как мне добиться максимальной доступности с полным отсутсвием даунтайма при полном дизастере (атомная бомба падает на одную мою площадку с серверами ?
A
От задач зависит, имхо
Если один на весь кластер, то ингресконтроллер должен уметь ходить до всех сервисов всех нс, так? И соответственно ингресс ресурсы создавать только в нс с ингресконтроллером, так?
Sergey
а так исходя из номр вводных - есть варианты
Vyacheslav
с таким колличеством информации - то никак
Хорошо, какие вводные необходимы?
Sergey
ну для начала - на каком удалении площадки
Sergey
аренда оптики - это про ip транзит или честная лямбда
Sergey
и тп
Sergey
ну и "настоящий" дизастер строится на нескольких уровнях
Vyacheslav
в аренду взято темное волокно длинной 50km, на базе темных волокн поднял 2 линка каждый из которых 25GB/s , меджду площадками организовал L3 связность BGP + ECMP.
George
Нутаникс с near line replication 😂😂😂😂
Sergey
на 50 км, впринципе, можно делать синхронную репликацию
Sergey
я ушел
Mikhail
До встречи
Vyacheslav
Предположим что у меня есть shared storage растянутый на оба ДЦ, при падении площадки storage полностью функционирует.
Vyacheslav
Как добиться отказоустойчивости приложения которое полностью работает на k8s?
Rainbow
Как добиться отказоустойчивости приложения которое полностью работает на k8s?
Сделать чтобы реплики гарантированно жили в двух дц
Sergey
Как добиться отказоустойчивости приложения которое полностью работает на k8s?
для персистент стореджа, на 50 км с етмным волокном, можно озаботиться синхронной репликацией
Sergey
на уровне bgp сделать так называемый "bgp anycast"
Kyrylo
https://medium.com/@gyliu513/multi-cluster-support-for-service-mesh-with-ibm-cloud-private-d7d791f9b778?source=email-6c3a1f430515-1545543238323-digest.reader------0-59------------------c68e7e83_2dda_47d4_9a02_0b0bb382c5dd-16&sectionName=recommended вот ребята из ибм решили попробовать
Спасибо видел. Но если ты захочешь слепить что-то с чем-то, то либо тебе придется самостоятельно настраивать роутрефлекторы, либо юзать native ip
Sergey
на уровне bgp сделать так называемый "bgp anycast"
на каждой площадке для нод где живет ингресс контроллер - отдавать один и тот же айпи, это я про бгп эникаст
Sergey
ну это так - сильно упрощенно
Vyacheslav
ну это так - сильно упрощенно
так трафик то пойдет через ingress интерфейс разве нет?
George
О, Господи, парни. Я здесь уже лох
George
Ладно там калико поднять...
Vyacheslav
Ладно там калико поднять...
вот тут уже инстрестнее)
Vyacheslav
Щито? Давай порассуждаем. Что такое ингресс. Куда он деплоится. И какой бывает
может упустим эту итерацию и вернемся к началу диалога "зачем нам оверлей?"
George
Для того, чтобы поды ходили друг в друга - тоже
George
Ингресс - это мобильная игра такая.
Помню такую, от ниантика
Vyacheslav
Для отказоустойчивости он не нужен
Хорошо, предположим Вы уважаемый полностью правы, можно тогда отписать как будет решен такой кейс без оверлея
A
Щито? Давай порассуждаем. Что такое ингресс. Куда он деплоится. И какой бывает
Ингресс это ресурс, управляемый ингресконтроллером. Деплоится может куда угодно
Vyacheslav
в итоге k8s без гипервизора и оверлейных сетей не решит такую задачу?
George
в итоге k8s без гипервизора и оверлейных сетей не решит такую задачу?
На 50 км можно и кластер куба растянуть, наверное. Только причем тут оверлей. Если у тебя там оптика между дц.
Vyacheslav
@gecube можно подробнее об опыте с calico?
George
@gecube можно подробнее об опыте с calico?
Боюсь, я ничего больше не напишу, чем есть в доке - я же говорю, что лошок
Vyacheslav
A
И на мастера, и на воркер ноды?
Можно и так, но вроде делают отдельную ноду для этого
George
Можно и так, но вроде делают отдельную ноду для этого
Окей, т.е. мы легко выяснили, что ингресс лучше деплоить на отдельную ноду, которая доступна из мира. И их может быть несколько. А ещё может быть на каждой свой ингресс
George
Причем разного типа
G72K
@gecube можно подробнее об опыте с calico?
Calico это IPIP + BGP . Причем можно без IPIP если подкрутить
Даня
ребят, подскажите плз в чем может быть проблемка
Даня
Error: UPGRADE FAILED: render error in "frontend/templates/ingress.yaml": template: frontend/templates/_helpers.tpl:6:18: executing "frontend.name" at <.Chart.Name>: can't evaluate field Chart intype string
Даня
что-то не нахожу ничего подобного
Andrey
покажи ingress.yaml
Andrey
скорее всего контекст не тот
Даня
{{- if .Values.ingress.enabled }} {{- $path := .Values.ingress.path -}} apiVersion: extensions/v1beta1 kind: Ingress metadata: name: {{ template "frontend.name" . }} labels: app: {{ template "frontend.name" . }} chart: {{ template "frontend.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} {{- if .Values.ingress.annotations }} annotations: {{ toYaml .Values.ingress.annotations | indent 4 }} {{- end }} spec: rules: {{- if .Values.ingress.hosts }} {{- range $host := .Values.ingress.hosts }} - host: {{ $host }} http: paths: - path: {{ $path }} backend: serviceName: {{ template "frontend.name" . }} servicePort: {{ .Values.service.port }} {{- end -}} {{- else }} - http: paths: - path: {{ $path }} backend: serviceName: {{ template "frontend.name" . }} servicePort: {{ .Values.service.port }} {{- end -}} {{- if .Values.ingress.tls }} tls: {{ toYaml .Values.ingress.tls | indent 4 }} {{- end -}} {{- end -}}
Andrey
вот тут у тебя другой контекст {{- range $host := .Values.ingress.hosts }} ... serviceName: {{ template "frontend.name" . }}