Anatoliy
в бщем нашел судя по всему вариант - мне ничто не мешает создать два этих контейнера в одном поде, тогда адрес будет локальным и всё будет ок
Etki
хотя кажется я неправильно понял, можете чуть подробнее написать про кейс?
Etki
если нужно обратиться к другому поду внутри кластера, то нужно создать еще один внутренний сервис и общаться через сервис
Anatoliy
понятно, ну в моем случае оказалось проще поднять контейнер внутри пода еще один, он все равно должен взаимодействовать с этим же registry
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Спрошу возможно дурацкий вопрос про istio. Имеет ли смысл делать такой роут istio-ingres->nginx in cluster->services based on path для запросов с JWT токенами и istio-ingress->auth service для запросов с Path /login для того чтобы сделать авторизацию пользователей, отдав валидацию токенов на откуп nginx?
Anatoliy
ReplicationController относительно deprecated. Для создания подов нужно использоваться Deployment, который внутри сам создает и управляет ReplicaSet
А вот за эту информацию спасибо, буду переделывать на Deployment) Кстати, есть варианты не составлять yaml файлы руками? Там вроде достаточно повторов, есть вариант использовать что-то более компактное?
Vitalii
для шаблонизации есть helm
Anatoliy
Хм.. не пробовал, щас буду смотреть
Anatoliy
Может кто поделиться мнением по использованию pv/pvc ? Вот допустим надо мне поднять приложение которое должно работать с FS, присобачил я к нему контейнер, но вот проблема - его стало мало, как оно должно делаться для изменения размеров контейнера и при этом не удаления данных в нем? Или уменьшение размера при условии что после уменьшения все данные не поместятся? Плюс - я так понимаю контейнер с данными может лежать на одной ноде а приложение с ним работать с другой ноды, так?
Anatoliy
ну и соответственно варианты бэкапов если надо бэкапить не весь контейнер а только 1 файл внутри папочки в этом контейнере например?
Maksim
FS= file system
Maksim
.
Maksim
?
Anatoliy
да
Maksim
1. pv и pvc могут быть RWM ТО есть read/write many. Для бэкапа делаешь джоб, с моунтом этого же pvc и бэкапом нужного файла
Maksim
pv это volume в теории его можно расширять на горячтю, без форматирования
Maksim
Там по политикам освобождения посмотри
Vladimir
а разве RWM везде поддерживается? Ткните меня, как можно это сделать в gce/aws/azure. Почему-то у меня представление, что можно либо ReadMany, либо ReadWriteOnce
Maksim
Один PVC не может быть в разных подах же
Разве? а RWX им нафига тогда?
G72K
Разве? а RWX им нафига тогда?
Ваша правда, упустил про RWM
Maksim
Ваша правда, упустил про RWM
Я могу и ошибся-) просто тогда странно что есть такая возможность.
Serega
господа, а скажите по server mesh. Кто чего применяет для надежной коммуникации между микросервисами в кластере? раньше на коне был hystrix. Сейчас гляжу что микросервисы катятся к linkerd, istio.
bebebe
за istio будущее
Serega
почему нужно юзать его а не linkerd ?
bebebe
потому что гугл
Serega
это не совсем аргумент.
Andrey
а что это дерьмо вообще делает istio и linkerd ? - судя по описанию это HTTP прокси которые встраиваются между микросервисами и анализируют их работу
bebebe
Sergei
потому что гугл
а пруф есть? а то все говорят, а источника не видно
Serega
а что это дерьмо вообще делает istio и linkerd ? - судя по описанию это HTTP прокси которые встраиваются между микросервисами и анализируют их работу
поидее это вынесение логики аля hystrix в сторонний микросервиc. Который служит для организации надежной коммуникации между микросервисами. Подробнее https://habrahabr.ru/company/flant/blog/327536/ https://habrahabr.ru/company/flant/blog/342412/
Sergei
нууу такое.
Sergei
тогда можно сказать что fluentd тоже продукт гугла
bebebe
а пруф есть? а то все говорят, а источника не видно
https://developer.ibm.com/dwblog/2017/istio/ https://github.com/istio/istio/graphs/contributors топ10 контрибуторов из гугла
Serega
смысл чтобы вот эту всю хренеь Impose retries, load balancing, flow-control (HTTP/2) and circuit-breaking, all without changing your code не делать на уровне приложения.
Sergei
оверлейная сеть внезапно дает сетевую связность. istio/linkerd/service-mesh дает сервисную связность.
Andrey
вот я и хочу понять, что flannel мне отрепортит что сеть лежит, что Linkerd отрепортит что меш развалился...
bebebe
Там ключевой момент мультиклауды
Serega
ну даже в переделах одного кластера должно быть полезно
Andrey
Impose retries - релизует TCP IP load balancing - k8s ingress flow-control (HTTP/2) - вы используете готовые либы circuit-breaking - overlay network мультиклауды - overlay network
Andrey
т.е. запустили kubelet в другом клауде и овелейной сетью подключили к себе... точно входа (внешний ip) правда останется на старом клауде
Sergei
Impose retries - релизует TCP IP load balancing - k8s ingress flow-control (HTTP/2) - вы используете готовые либы circuit-breaking - overlay network мультиклауды - overlay network
да, да, да. но ты берешь istio/envoy, потом в приложении пишешь r = requests.get("url") и все полиси применились АВТОМАТИЧЕСКИ
Sergei
и тебе не надо ходить к разработчикам каждого сервиса объяснять "а бекофф на реконнекты? а пул коннектов? а ре-резолв потому что сервисы могут ездить? а таймауты на чтение/запись?"
Andrey
напоминает какой-то over-engineered service discovery, лан, покурю еще)
Sergei
как мне коллега выразился - "service-mesh это то о чем щас безостановочно говорят в Калифорнии, а в Москве не очень понимают, зачем это нужно" :)
Serega
чтобы легче курилось надо запустить лоадтест на кластер (в котором микросервисы активно коммуницируют между собой) а потом отребутить одну из нод кубера, куда запросы ходят. Т.к. далеко не всегда бекенд девелоперы в курсе что такое хистрикс и хаос манки.
Serega
подобный вопрос давеча вроде обсуждался, звучали варианты гонять все через нжинкс - ото где оверинженереинг.
Serega
ингресс там для мультиклауда?
Sergei
ингресс там для мультиклауда?
если у вас есть L7-связность внутри кластера, логично чтобы входящий трафик тоже через нее заходил.
Serega
если у вас есть L7-связность внутри кластера, логично чтобы входящий трафик тоже через нее заходил.
хм, вроде логично, но не совсем очевидна реализация. Дублировать проверенный функционал нжинкс сырым ignito? Я пока предпочту трафик через ингрес нжинкс на условный апи гетвей, а дальше на server mesh
Serega
зато по олдскулл KISS
Serega
где каждый компонент выполняет свою задачу и делает это хорошо.
Sergei
Sergei
(набрасываю ради спора)
Serega
я про принцип декомпозиции а не детали реализации конкретного ПО. с такой точки зрения ignito еще меньше KISS
Sergei
что такое ignito?
Serega
istio, прошу прощения
bebebe
у меня были порывы сделать PoC на openresty (nginx + lua) service mesh'a
bebebe
но вовремя отпустило
bebebe
но запилить можон было бы, дешево
Александр
Добрый всем день. Хотел бы узнать у опытных ответы на следующие вопросы: я поставил при помощи ansible кубкластер. Закатал в него nginx-ingress-controller. Написал Ingress yaml все проставилось - преобразовалось в nginx конфиг ( поглядел внутри контейнера ) - но висит все на "внутреннем" ip calico - какая бест практика вытащить его на внешний ip сервера. В gce при правильных настройках Ingress внешний адрес сам присваивается через пару минут - а как тут быть ? Шаманить что то чнер iptables ?
bebebe
baremetal/cloud?
Александр
baremetal
Александр
на ubuntu-server
Александр
спасибо - пошел читать :)
Сергей
Как вариант https://medium.com/@olegsmetanin/how-to-setup-baremetal-kubernetes-cluster-with-kubespray-and-deploy-ingress-controller-with-170cdb5ac50d посмотри там Service ingress-nginx. externalIPs:
Если не хочется добавлять Nginx, то есть вариант анонсить внутренние виртуальные подсети наружу c помощью BGP (принцип описан вкратце здесь - https://docs.projectcalico.org/v2.0/usage/external-connectivity), из коробки так сделать не получится (по состоянию на полгода назад)) - нужны доп манипуляции либо с bird внутри calico, либо со сторонним инчтрументом
Andrey
@olegsmetanin а ты не пробовал в kubespray добавить keepalived-vip ? как-то он очень странно себя ведет, все вроде работает но ip доступен только с нод самого k8s