Andor
Andor
Ваще если конфиг никогда во время жизни приложения не меняется, то конфигмапы ок
Anton
Почему непонятно и неизвестно?
потому что конфиг это внешняя сущность получается. не ясно состояние конфига, он зависит от времени запуска или от момента перечитывания конфига.
я хз как такие динамические варианты с конфигурированием ПО решаются.
железный вариант - изменился конфиг - ты или ролллинг апдейт сделал, или форсил релод приложения. и ты видишь в состоянии аппа какой у него конфиг
Дмитрий Харитонов
Конфигмап выглядит куда лучше. Хотя я пока и не до конца понимаю
Я вот не понял, если у тебя всё запскается через ansible, и ты в нём максимально используешь enventory, то почему бы тебе не генерить на лету yaml файл из темплейта посредством envsubst и транслировать его напрямую в kubectl create/apply -f - ?
Зачем ещё конфигматы городить?
Lex
Если только при старте или явном релоаде то зачем приседать и тащить еще одну зависимость.
Silver 👻
Lex
А чем не нравится текущий подход, ну не считая, что это велосипед?
Silver 👻
Konstantin
Резюмирую: "env legacy, потому что в нашем случае конфиг статический"
Дмитрий Харитонов
Silver 👻
Silver 👻
Lex
А что смущает?
Дмитрий Харитонов
на нём можно тоже самое сделать
Silver 👻
В проде пока нет куба. Строю в деве и хочу сделать более-менее правильно.
Silver 👻
А что смущает?
Безопасность (относительная простота доступа к конфигам).
Silver 👻
Ладно. Спасибо всем за дискуссию. Довольно не мало вариантов накидали. Буду думать и читать. :)
Harry
Maksim
Дмитрий Харитонов
Дмитрий Харитонов
Если не планируется увеличивать количество узлов базы в зависимости от нагрузки, я бы вообще не держал базу в кубе.
Harry
Ну тут минус в том, что накатываться апдейт долго будет, т.к. базу на новый под сливать надо. Но тогда приложение может обращаться к базе через локалхост, не ходя в сеть
Andrei
Ребят, на сколько я знаю, кол-во серверов etcd изменить не выйдет, верно? Хотелось бы добавить мастеров в других локациях… А переносить текущие, тоже не очень весело
Andrey
Anton
по документации etcd добавляешь ноды
Дмитрий Харитонов
etcd разве умеет в мультимастер?
Anton
только вот зачем их в другие локации уносить?
Дмитрий Харитонов
что значит добавить мастеров?
Andrey
Дмитрий Харитонов
Andrey
Andrei
Спасибо за инфу. Ну dev обновил, с ним всё ок было.
Andrey
Вообще, лично я планирую уходить от kubespray в сторону своего ансибловелосипеда. Кубспрей тот еще черный ящик, особенно при обновлениях, имхо.
Дмитрий Харитонов
сейчас через kubeadm кластер весьма просто разворачивается, зачем какой-то kuberspray?
Дмитрий Харитонов
Это раньше приходилось городить плэйбуки которые раскидывают бинари, конфиги, все эти дела.
Andrei
И еще момент, никто не извращался так: нужно поднять еще один кластер монги, есть мысль добавить worker ноды и на них не через куб поставить монгу. Профит - легко подключить к мониторингу, минусы …?
Dmitrii
kubeadm уже умеет мультимастер поднимать?
Andrei
Дмитрий Харитонов
если не ошибаюсь
Дмитрий Харитонов
Кто пользовался docker swarm? На каких юз кейсах он предпочтительнее чем Kubernetes?
Konstantin
Дмитрий Харитонов
Рустам
Дмитрий Харитонов
Рустам
Konstantin
ого, я там забанен чтоли)) спасибо
Victor
Etki
Коллеги, добрый день. Есть такой архитектурный вопрос. Изучаю микросервисы, пытаюсь понять, как их правильно организовать. Стек простой: golang+cockroachdb. Итого у меня есть три варианта:
1) Контейнер приложения и контейнер базы лежат в одном поде внутри стейтфул-сета.
2) приложение и база в разных подах, база в стейтфул-сете, у базы отдельно есть балансировщик.
3) базу вообще вынести из кубов.
Как организовать все кошерно/феншуйно?
Если у вас приложение висит вместе с базой, то вы ни отмасштабировать отдельно их не сможете, ни разнести на разные ноды. Остальные два варианта debatable, классически верным считается держать базу отдельно (потому что иначе вы либо все равно ее привязываете к конкретным нодам, либо она у вас висит с сетевым диском, и там могут быть совсем интересные непредвиденные случаи), но это убивает половину ценности наличия кубера.
Andrey
господа а что configmap чтобы обновить надо delete/create? более вменяемых способов нет?
Victor
Mikhail
Имеется в виду ситуация, когда deployment потребляет конфиг, конфиг меняется, а deployment (точнее, поды) нужно передёргивать руками
Vlad
Sergei
Andor
А хельм магический апи кубера использует?
Anton
кажется только обычный вариант 😆
Silver 👻
Михаил
Andrey
а можно ли прикрутить s3 bucket как shared storage?
🦠
minio?
Logan
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
ни по одному из моих сервисов. может быть вопрос был о сервисе kube-dns?
Andrey
у кого-нибудь XFF работает нормально в связке traefik ingress lb + metallb? или у меня весьма экзотическая инсталляция?)