Sergej
там в морде в настройках нода есть инфа по подам
Sergej
http://joxi.ru/1A5vGa1teb5qrE
Sergej
она приблизительная, но у нас проблемы начались когда мы превысили на 50% но это в тестовой среде.
Denis
https://www.youtube.com/watch?list=PLqm7NmbgjUExeDZU8xb2nxz-ysnjuC2Mz&v=x2Lp8nktLjE
Denis
https://kubernetes.io/docs/tasks/run-application/podpreset/
Roman
такое ощущение что порты консула меняются на каждый релиз
Roman
Lev
avitotech на ютьюбе, там должны быть
Denis
Да)
Denis
Была ссылка выше
Roman
Благодарю
Roman
не понимаю зачем мне consul в докер сварме, какую проблему он решает? service discovery термин мутный какой-то
Denis
Но без него (SD) было никак, раньше
Roman
я как-то и без него живу
Roman
что я упускаю?
Denis
С чем?
Roman
у меня есть докер сварм кластер
Roman
все контейнеры видят друг друга
Roman
зачем мне еще что-то )?
kay
Коллеги, пришлось обновить сертификат с ключем для api-server, использовался тот же CA. Теперь pod'ы не запускаются, которым требуется аутентификация в k8s. Помню раньше как-то решал эту проблему удалением default token'а из secrets, а теперь это не помогает. Пытаюсь загуглить похожую проблему, но пока пусто. Может кто-то помнит как правильно сертификаты обновлять?
Roman
типо если куданибудь какой нибудь мускуль переместишь чтобы не трогать env variables в docker-compose ? у меня не такой маштаб что бы об этом волноватся
Etki
где вообще сейчас находится дока по сварму? _______ компания докер уже ______ играться с именами своих продуктов
Roman
Etki
> Using a Raft implementation, the managers maintain a consistent internal state of the entire swarm and all the services running on it.
в docker swarm нужен был, в docker swarm mode походу уже нет. хотя там есть всякие плюшки типа деления на dc.
Roman
забавно
Roman
тогда какого черта я тут время трачу с консулом )))
Roman
мне то на три виртульки запилить сварм нужно и всего-то
Roman
вижу justification что если выносить сервисы за пределы сварма тогда нужен уже service discovery, что бы конфигурацию не переписывать в docker-compose
yolkov
@kay_rus покажи конфиг контроллера
kay
@yolkov , благодарю. перезапустил api, но не controller-manager
kay
после перезапуска controller-manager всё ок
yolkov
Выдели отдельный ключ для
controller-manager
--service-account-private-key-file
а тут его публичный или можно тот же закрытый
apiserver
--service-account-key-file
тогда при смене ключа и сертификата для апи не придется удалять дефолтный(да и остальные) токены и рестартовать поды
kay
Sergej
В карго что можно было ткнуть чтобы выдало? SchedulingDisabled $ kubectl get nodes
NAME STATUS AGE
kub-i1 Ready 10m
kub-i2 Ready 10m
kub-master Ready,SchedulingDisabled 10m
Anonymous
Sergej
Ага
Sergej
что-то пошло не так :)
G72K
M
а у кого rdb volumes и ceph kraken ? как вы обошли депрекейтед image format 1?
yolkov
@rossmohax если посмотришь повнимательнее то в этих опциях вообще нет сертификатов, там реч о ключах!
yolkov
и ключи для токенов ой как больно менять
yolkov
нужно будет потом удалять старые токены и рестартить все поды в которых старый ключ(и кому требуется доступ к апи)
yolkov
например kubedns, очень неприятно когда новые сушности не резолвятся
yolkov
несколько опций надо попробовать, это конечно будет спасать, но смену ключей для токенов и сертификатов лучше не связвать
Dmitry
не будет работать, если у каждой ноды свой сертификат
G72K
Dmitry
если инстансы kubelet запущены с разными сертификатами и соответственно ключами
G72K
У нас как раз так, Если они подписаны одним СА все ок
Dmitry
а у kube-controller-manager --service-account-private-key-file какой?
Dmitry
я спутал. сорри. это если у вас apiserver HA и у каждого аписервера свой сертификат/ключ
Dmitry
тогда дефолты не будут работать
G72K
Дефолты не для HA, да :)
G72K
С этим HA вообще сказка, кто-нибудь тестировал как оно живет если зону полностью отключить? Или все надеялся что вырулит как-нибудь само? :) мы вот надеямся, но чуток потестили, выяснили что apiserver по дефолту радостно читает из etcd без кворума
G72K
Ротация токенов:
1. Генерим ключевую пару
2. Перезапускаем все apiserver добавляя новый,публичный ключ к существующим
3. Перезапускаем все controller manager с новым приватным ключом
4. Удаляем токены из secrets из всех неймспейсов, контроллерв пересоздадут их мгновенно, аписервер будет доверять и старым и новым
5. Перезапускаем / следим за всеми подами, которые используют удаленные секреты (будет у них в volumes)
6. Когда всем переехали, удаляем старые публичные ключи и перезапускаем apiserver без них
yolkov
будут если для токенов выделить отдельный ключ
yolkov
для аписервера прям несколько раз опцию --service-account-key-file указываешь?
G72K
Не помню, сейчас с телефон не могу проверить. Глянь в коде
Vitalii
кто-нибудь делал аутентификацию через ldap или google openid? Смотрю dex, но не понимаю куда копать. Там требуется отдельный их example-app и вообще всё не user friendly https://github.com/coreos/dex/blob/master/Documentation/kubernetes.md#logging-into-the-cluster
Vitalii
@nailgunster staticClients в конфиге dex и приложение с redirect_url все равно нужны получается?
Dmitry
сам не знаю. это я изучаю что генерит tectonic installer и пишу свой велосипед для provisioning-га кластера. это из тектоника, сам не использовал oid
Vitalii
а у нас тектоника нет. Я надеялся отделаться просто dex + kubectl
Dmitry
он и не нужен. можно просто оттуда взять примеры манифестов
G72K
Dmitry
а мне надо bare-metal(
Dmitry
Vitaliy можешь тут глянуть https://github.com/coreos/tectonic-installer/tree/master/modules/tectonic/resources/manifests/identity
они недавно открыли исходники, но не все
Vitalii
Здесь тоже ${console_callback} который делает всю магию, если я правильно понимаю. Пойду kubernetes слак почитаю...
Dmitry
а. ну видать он ссылается уже на проприетарный tectonic console. тогда увы..
G72K
Dmitry
кстати, вот он. мой велосипед. может кому пригодится https://github.com/nailgun/seedbox
Denis
Огонь )
Denis
Можно ещё сюда - @coreos_ru
Dmitry
запостил)
Dmitry
хочу фидбек)
Denis
Тогда нужна вводная!
Denis
1. Какие были требования?
2. Какая возникла проблема?
3. Какое появилось решение?
Denis
Dmitry
Из требований - развернуть k8s на baremetal и использовать coreos в качестве базовой системы. Зачем - это другой вопрос. можно считать, что для эксперимента.
Проблема возникла в самом начале - мало документации как это сделать. Готовых инструментов тоже сразу не нашлось, кроме matchbox. Проблема matchbox в том что примеры в папке examples работают со скрипом и чтобы в них разобраться пришлось потратить кучу времени, т.к. они никак не разделены на модули. В итоге оказалось, что тестовый кластер развернутый через matchbox маячит наружу открытыми etcd портами. Вообщем стало понятно, что это нерабочие примеры.
Кроме того, если не поднимать какую то серьезную PKI инфраструктуру, тяжело работать с сертификатами нод и пользователей.
В итоге родился seedbox. Все началось с легковесной PKI. Потом скопировал конфиги из matchbox, разложил по папочкам. Каждая папочка отвечает за один компонент. Потом заметил tectonic-installer, который заявлен как production-grade. Взял несколько идей оттуда, а также подчистил конфигурацию. На etcd повесил tls, чтобы ноды общались по зашифрованному каналу.
Как то так.
Knyage
Из требований - развернуть k8s на baremetal и использовать coreos в качестве базовой системы. Зачем - это другой вопрос. можно считать, что для эксперимента.
Проблема возникла в самом начале - мало документации как это сделать. Готовых инструментов тоже сразу не нашлось, кроме matchbox. Проблема matchbox в том что примеры в папке examples работают со скрипом и чтобы в них разобраться пришлось потратить кучу времени, т.к. они никак не разделены на модули. В итоге оказалось, что тестовый кластер развернутый через matchbox маячит наружу открытыми etcd портами. Вообщем стало понятно, что это нерабочие примеры.
Кроме того, если не поднимать какую то серьезную PKI инфраструктуру, тяжело работать с сертификатами нод и пользователей.
В итоге родился seedbox. Все началось с легковесной PKI. Потом скопировал конфиги из matchbox, разложил по папочкам. Каждая папочка отвечает за один компонент. Потом заметил tectonic-installer, который заявлен как production-grade. Взял несколько идей оттуда, а также подчистил конфигурацию. На etcd повесил tls, чтобы ноды общались по зашифрованному каналу.
Как то так.
👍🏻