Andor
Ваще если конфиг никогда во время жизни приложения не меняется, то конфигмапы ок
Anton
Почему непонятно и неизвестно?
потому что конфиг это внешняя сущность получается. не ясно состояние конфига, он зависит от времени запуска или от момента перечитывания конфига. я хз как такие динамические варианты с конфигурированием ПО решаются. железный вариант - изменился конфиг - ты или ролллинг апдейт сделал, или форсил релод приложения. и ты видишь в состоянии аппа какой у него конфиг
Lex
Ваще если конфиг никогда во время жизни приложения не меняется, то конфигмапы ок
Именно, если приложение поддерживает динамическую конфигурацию и фактически запрашивает значения и во время работы по определенной бизнес логике, то etcd/consul/zookeper вполне ок.
Дмитрий Харитонов
Конфигмап выглядит куда лучше. Хотя я пока и не до конца понимаю
Я вот не понял, если у тебя всё запскается через ansible, и ты в нём максимально используешь enventory, то почему бы тебе не генерить на лету yaml файл из темплейта посредством envsubst и транслировать его напрямую в kubectl create/apply -f - ? Зачем ещё конфигматы городить?
Lex
Если только при старте или явном релоаде то зачем приседать и тащить еще одну зависимость.
Lex
А чем не нравится текущий подход, ну не считая, что это велосипед?
Konstantin
Резюмирую: "env legacy, потому что в нашем случае конфиг статический"
Silver 👻
А чем не нравится текущий подход, ну не считая, что это велосипед?
Да я не говорил, что он мне не нравится. Смущает - да.
Lex
А что смущает?
Дмитрий Харитонов
на нём можно тоже самое сделать
Silver 👻
В проде пока нет куба. Строю в деве и хочу сделать более-менее правильно.
Silver 👻
А что смущает?
Безопасность (относительная простота доступа к конфигам).
Silver 👻
Ладно. Спасибо всем за дискуссию. Довольно не мало вариантов накидали. Буду думать и читать. :)
Дмитрий Харитонов
Если не планируется увеличивать количество узлов базы в зависимости от нагрузки, я бы вообще не держал базу в кубе.
Harry
Ну тут минус в том, что накатываться апдейт долго будет, т.к. базу на новый под сливать надо. Но тогда приложение может обращаться к базе через локалхост, не ходя в сеть
Andrei
Ребят, на сколько я знаю, кол-во серверов etcd изменить не выйдет, верно? Хотелось бы добавить мастеров в других локациях… А переносить текущие, тоже не очень весело
Anton
по документации etcd добавляешь ноды
Дмитрий Харитонов
etcd разве умеет в мультимастер?
Anton
только вот зачем их в другие локации уносить?
Дмитрий Харитонов
что значит добавить мастеров?
Дмитрий Харитонов
лидер всегда один
так и я о том
Andrey
что значит добавить мастеров?
вангую, что мастер-ноды совмещены с etcd-нодами
Andrei
только вот зачем их в другие локации уносить?
Затем что после недавнего падения hetzner пришлось ручками consul’у говорить кто там главный. Ибо большая часть кластера оказалась там.
Andrei
вангую, что мастер-ноды совмещены с etcd-нодами
Да, kubespray ем разворачивал. Правда там пока ничего особо нет и крутится в тестовом режиме, но накатывать заново - тоже время
Andrey
Да, kubespray ем разворачивал. Правда там пока ничего особо нет и крутится в тестовом режиме, но накатывать заново - тоже время
он не очень-то бережно с etcd обращается. в мастер недавно кучу фиксов слили насчет этого. имеет смысл обновиться.
Andrei
Спасибо за инфу. Ну dev обновил, с ним всё ок было.
Andrey
Вообще, лично я планирую уходить от kubespray в сторону своего ансибловелосипеда. Кубспрей тот еще черный ящик, особенно при обновлениях, имхо.
Дмитрий Харитонов
сейчас через kubeadm кластер весьма просто разворачивается, зачем какой-то kuberspray?
Дмитрий Харитонов
Это раньше приходилось городить плэйбуки которые раскидывают бинари, конфиги, все эти дела.
Andrei
И еще момент, никто не извращался так: нужно поднять еще один кластер монги, есть мысль добавить worker ноды и на них не через куб поставить монгу. Профит - легко подключить к мониторингу, минусы …?
Dmitrii
kubeadm уже умеет мультимастер поднимать?
Дмитрий Харитонов
kubeadm уже умеет мультимастер поднимать?
пол года назад когда я смотрел это было в бэтке
Дмитрий Харитонов
если не ошибаюсь
Дмитрий Харитонов
kubeadm уже умеет мультимастер поднимать?
https://kubernetes.io/docs/setup/independent/high-availability/
Дмитрий Харитонов
Кто пользовался docker swarm? На каких юз кейсах он предпочтительнее чем Kubernetes?
Дмитрий Харитонов
Рустам
скинь группу, плз)
В описании есть
Дмитрий Харитонов
Konstantin
В описании есть
а она существует, та что в описании?
Konstantin
ого, я там забанен чтоли)) спасибо
Etki
Коллеги, добрый день. Есть такой архитектурный вопрос. Изучаю микросервисы, пытаюсь понять, как их правильно организовать. Стек простой: golang+cockroachdb. Итого у меня есть три варианта: 1) Контейнер приложения и контейнер базы лежат в одном поде внутри стейтфул-сета. 2) приложение и база в разных подах, база в стейтфул-сете, у базы отдельно есть балансировщик. 3) базу вообще вынести из кубов. Как организовать все кошерно/феншуйно?
Если у вас приложение висит вместе с базой, то вы ни отмасштабировать отдельно их не сможете, ни разнести на разные ноды. Остальные два варианта debatable, классически верным считается держать базу отдельно (потому что иначе вы либо все равно ее привязываете к конкретным нодам, либо она у вас висит с сетевым диском, и там могут быть совсем интересные непредвиденные случаи), но это убивает половину ценности наличия кубера.
Andrey
господа а что configmap чтобы обновить надо delete/create? более вменяемых способов нет?
Mikhail
Имеется в виду ситуация, когда deployment потребляет конфиг, конфиг меняется, а deployment (точнее, поды) нужно передёргивать руками
Vlad
господа а что configmap чтобы обновить надо delete/create? более вменяемых способов нет?
рализовать в приложении перечитывание конфигов при их изменении
Andor
А хельм магический апи кубера использует?
Anton
кажется только обычный вариант 😆
Silver 👻
Кто пользовался docker swarm? На каких юз кейсах он предпочтительнее чем Kubernetes?
Ни на каких. Говоря, т.к. имею его в проде. Наколенное поделие
Andrey
а можно ли прикрутить s3 bucket как shared storage?
🦠
minio?
Logan
хотя извращенцы находились
Andrey
а что посоветуете?
Logan
BMR?
Logan
если да - ceph или локальное хранилище если нет - используйте решение вашего провайдера (Amazon EBS/Google storage)
Andrey
cпасибо
Anonymous
Warning FailedCreatePodSandBox 2m (x8 over 2m) kubelet, gke-crypto-ai-cluster-pool-1-f0f1c05e-v267 Failed create pod sandbox. Warning FailedSync 2m (x8 over 2m) kubelet, gke-crypto-ai-cluster-pool-1-f0f1c05e-v267 Error syncing pod Normal SandboxChanged 2m (x8 over 2m) kubelet, gke-crypto-ai-cluster-pool-1-f0f1c05e-v267 Pod sandbox changed, it will be killed and re-created. как это исправлять? все же нормально было, всего-то поменял ноды через админу GKE, раньше тоже менял и все было ок
Dmitrii
Народ, странная ситуация: я только что обнаружил, что резолвинг dns не работает из подов. Проверил первым делом, что kube-dns запущен: kuber@kube-master:~$ kubectl get svc —namespace=kube-system | grep dns kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 19d Убедился, что запущен по всем нодам (их три): kuber@kube-master:~$ kubectl get pods —namespace=kube-system -l k8s-app=kube-dns | grep dns kube-dns-86f4d74b45-bzp88 3/3 Running 1 19d Запустил busybox, проверяю, получается вот что: kuber@kube-master:~$ kubectl exec -ti busybox — nslookup kubernetes.default Server: 10.96.0.10 Address 1: 10.96.0.10 nslookup: can't resolve 'kubernetes.default' Пока смотрю в сторону iptables. Но может есть другие соображения? Буду очень признателен за любую подсказку, давно бьюсь.
Dmitrii
При этом я точно вижу, что 10.96.0.10 доступен с мастера, но не доступен с других нод. kube-master:~$ dig @10.96.0.10 google.com +short 64.233.162.102 ... kube-node2:~$ dig @10.96.0.10 google.com +short ; «» DiG 9.10.3-P4-Ubuntu «» @10.96.0.10 google.com +short ; (1 server found) ;; global options: +cmd ;; connection timed out; no servers could be reached
Denis
iptables-save |grep *servicename* что выдает?
Dmitrii
iptables-save |grep *servicename* что выдает?
ничего, ни на одной из нод-миньонов, ни по одному из сервисов
Dmitrii
ни по одному из моих сервисов. может быть вопрос был о сервисе kube-dns?
Andrey
у кого-нибудь XFF работает нормально в связке traefik ingress lb + metallb? или у меня весьма экзотическая инсталляция?)
Dmitrii
kube-node2:~# iptables-save | grep kube-dns -A KUBE-SEP-IWJI6C47NUOQRVJI -s 192.168.221.203/32 -m comment —comment "kube-system/kube-dns:dns-tcp" -j KUBE-MARK-MASQ -A KUBE-SEP-IWJI6C47NUOQRVJI -p tcp -m comment —comment "kube-system/kube-dns:dns-tcp" -m tcp -j DNAT —to-destination 192.168.221.203:53 -A KUBE-SEP-WJKWNDNHZFTML3HV -s 192.168.221.203/32 -m comment —comment "kube-system/kube-dns:dns" -j KUBE-MARK-MASQ -A KUBE-SEP-WJKWNDNHZFTML3HV -p udp -m comment —comment "kube-system/kube-dns:dns" -m udp -j DNAT —to-destination 192.168.221.203:53 -A KUBE-SERVICES ! -s 192.168.0.0/16 -d 10.96.0.10/32 -p udp -m comment —comment "kube-system/kube-dns:dns cluster IP" -m udp —dport 53 -j KUBE-MARK-MASQ -A KUBE-SERVICES -d 10.96.0.10/32 -p udp -m comment —comment "kube-system/kube-dns:dns cluster IP" -m udp —dport 53 -j KUBE-SVC-TCOU7JCQXEZGVUNU -A KUBE-SERVICES ! -s 192.168.0.0/16 -d 10.96.0.10/32 -p tcp -m comment —comment "kube-system/kube-dns:dns-tcp cluster IP" -m tcp —dport 53 -j KUBE-MARK-MASQ -A KUBE-SERVICES -d 10.96.0.10/32 -p tcp -m comment —comment "kube-system/kube-dns:dns-tcp cluster IP" -m tcp —dport 53 -j KUBE-SVC-ERIFXISQEP7F7OF4 -A KUBE-SVC-ERIFXISQEP7F7OF4 -m comment —comment "kube-system/kube-dns:dns-tcp" -j KUBE-SEP-IWJI6C47NUOQRVJI -A KUBE-SVC-TCOU7JCQXEZGVUNU -m comment —comment "kube-system/kube-dns:dns" -j KUBE-SEP-WJKWNDNHZFTML3HV