J
и ноды
Mr.Strange
Всем привет. Объясню ситуацию. Включал аудит api-servera, он был запущен как static pod, мувнул манифест, изменил, мувнул обратно. Начинаю стучаться kubectl получаю The connection to the server 192.168.252.100:6443 was refused - did you specify the right host or port? Если смотреть через docker ps, то api-server запущен. В логах kubele node not found. Я так понимаю нода вывалилась из кластера, кто подскажет как вернуть обратно?
Timur
@kvaps не поднимал в кубере контейнеры, где больше чем один процесс ? по сути с полноценным линухом внутри. Ты как-то говорил, что в кубере крутишь почти всю инфру
Timur
про бестпрактики того, что должно быть в докер-контейнеры просьба не упоминать. Я в курсе
nikita
Всем привет! Если restartPolicy Never неудачные кроны не будут перезапускаться?
𝚔𝚟𝚊𝚙𝚜
пихать systemd/openrc в контейнер я бы не советовал, но если очень хочется, то лучше заюзать supervisord
Timur
Да, по процессу на контейнер, в одном поде может быть несколько контейнеров
ну это понятно. Просто довольно геморно существующую инфру переделывать на docker-style
Timur
Может вам лучше в LXC тогда?
ты телепат! У меня lxc уже несколько лет :)
Timur
просто идея в том, чтобы перенести в кубер
Timur
lxc просто прекрасен, но это совсем не докер-стайл
Timur
причем lxc оркестрируется опенстеком. Но работаеть на два фронта: докер и openstack - затратно
𝚔𝚟𝚊𝚙𝚜
Просто запихнуть сущестующие сервисы в docker-имаджи можно, но имхо особого смысла в этом нет. Ведь это совсем другой набор практик, здесь у вас имеет значение не только запустить, но так же и автоматически собирать логи, метрики, балансировать и т.п. Причём ваше приложение работающее в контейнере не обязанно ничего из этого уметь, оно просто запускается как процесс и пишет в /dev/sdout /dev/stderr, всё остальное делает куб
𝚔𝚟𝚊𝚙𝚜
На самом деле запустить несколько контейнеров в поде - это не так уж и сложно, особенно учитывая что у них общая сеть и может быть общий сторадж
𝚔𝚟𝚊𝚙𝚜
лучше делать сразу правильно, т.к. потом всёравно придётся переделывать
Timur
а где проводите границу между кубером и open nebula ?
Timur
у меня сложилось возможно ошибочное мнение, что кроме кубер еще и небула есть
𝚔𝚟𝚊𝚙𝚜
а где проводите границу между кубером и open nebula ?
Куб - для сервисов, OpenNebula - для виртуалок OpenNebula - это тоже сервис, потому и крутится в кубе
Timur
мы вместо виртуалок запускаем lxc-контейнеры в openstack
Timur
в небуле lxc не прикручивали ?
𝚔𝚟𝚊𝚙𝚜
т.е. не все в кубере. Есть и просто виртуалки.
виртуалки-as-service, в нашей инфраструктуре мы не используем виртуализацию, но мы их продаём
𝚔𝚟𝚊𝚙𝚜
мы вместо виртуалок запускаем lxc-контейнеры в openstack
У нас есть несколько внутренних сервисов, которые работают в LXC, но это сервисы которые поставил и забыл, в основном всякие комбайны вроде Kolab / FreeIPA / Zabbix, то что работает в единичном экземпляре и что стоит больших усилий запихнуть в куб. Мы используем Proxmox.
𝚔𝚟𝚊𝚙𝚜
в небуле lxc не прикручивали ?
Это вам лучше в @opennebula спросить
Viacheslav
proxmox для запуска lxc-контенеров ?
Ну да. Штатная весч. И работает на ура
Timur
Ну да. Штатная весч. И работает на ура
не сравнивали его с openstack.... хотя он и не умеет из каропки нормальный lxc.. лан сорян за оффтоп
𝚔𝚟𝚊𝚙𝚜
Чегойто?
ну это как минимум странно
George
Как минимум это требует дополнительных неприятных телодвижений
George
По крайней мере в рамках докера
Vadim
ну это как минимум странно
Как минимум странно переписывать готовые юниты в какую-то поделку, нет?
𝚔𝚟𝚊𝚙𝚜
Как минимум странно переписывать готовые юниты в какую-то поделку, нет?
А зачем вообще юзать юниты если куб и сам может следит за процессом в контейнере? Просто указал команду для запуска и погнал...
𝚔𝚟𝚊𝚙𝚜
Зато логирование нормально работать будет, и event'ы, сразу можно будет понять когда какой контейнер упал
Й
Всем привет! Столкнулся с багом при создании сервиса с типом лоад балансер и типом трафика локал. NodeHealthCheck возвращает 503 - мол нет локальных подов. Но у меня однонодовая конфигурация (aws) так что под есть и он естественно на этой же ноде. В сервисе в эндпоинтах под есть.
@inish777 Вобщем так: Когда мы меняем тип трафика с кластер на локал для сервиса - кубепрокси конфигурит правила на основе hostname самого хоста и имени ноды в кубере (то имя которое мы получаем по kubectl get no). Они должны быть ОДИНАКОВЫМИ! Так вот, если эти имена разлины, то соответственно никакие правила не будут сформированы и хэлсчек будет фэйлиться (ошибка 503), правила айпитэйблс для нодэпорта также не будут сформированы. Как только поменял hostname на то имя которое в кубере - все заработало! Почему хостнэйм и имя ноды в кубере были различны - мы сменили хостнэйм у инстанса. Попытка заоверрайдить имя хоста в конфигах кубелета никчему не привела - для AWS провайдера это сделать НЕЛЬЗЯ. Вот такие дела.
𝚔𝚟𝚊𝚙𝚜
проблема может возникнуть, если процесс не умеет не форкаться
Denis
для обновления сертов.
George
Нет, ну в контексте "вот очэ надо запустить несколько процессов"
Ага, только там нужно сделать дополнительные действия, чтобы тот же системд завести - что-то с привилегиями, что-то с дбас. Это не то, что невозможно, но смысла нет. Проще юниты на куб манифесты переделать, ога
Vadim
Ага, только там нужно сделать дополнительные действия, чтобы тот же системд завести - что-то с привилегиями, что-то с дбас. Это не то, что невозможно, но смысла нет. Проще юниты на куб манифесты переделать, ога
https://developers.redhat.com/blog/2016/09/13/running-systemd-in-a-non-privileged-container/ https://developers.redhat.com/blog/2019/04/24/how-to-run-systemd-in-a-container/ "Проще" переделай какой-нибудь libvirt и его сервисы в контейнеры, ага
𝚔𝚟𝚊𝚙𝚜
Я просто запускал либвирт в контейнерах без системд, никаких проблем с этим не было
Timur
Я просто запускал либвирт в контейнерах без системд, никаких проблем с этим не было
Учитывая, что у системд своё видение иногда на работу с неймспейсами, сигрупами - это даже хорошо. Мы натыкались в своё время на «бодание» системд и либвирта
𝚔𝚟𝚊𝚙𝚜
George
👍
Grigorii
Привет, у меня в кубе при нехватке памяти вешается воркер, только ребут помогает. Контейнеров много, лимиты пока ставить не получается, потому что приложение тормозит с лимитами(будем ставить как разберемся в чем трабла). Можно как-то кублет настроить, чтобы при приближении oom он мочил самый прожорливый Под(чтобы воркеры то не вешались)?
Grigorii
https://kubernetes.io/docs/tasks/administer-cluster/out-of-resource/#node-oom-behavior похоже то, что надо
Grigorii
--eviction-hard=memory.available
Aleksey
поздравляю всех любителей vscode. теперь можно получить номальные хорошо отсортированные манифесты для кубера. я тыкаю паолчкой вот этого товарища и он делает хороршо https://github.com/pascalre/vscode-yaml-sort
Aleksey
поклонники других ide очевидно страдают от того что их манифесты выглядят как чертишто.
Aleksey
да.
Евгений
Почему бы просто линтер не написать, было бы полезнее
Евгений
Я не страдаю от порядка строчек
𝚔𝚟𝚊𝚙𝚜
поклонники других ide очевидно страдают от того что их манифесты выглядят как чертишто.
А я лично тащусь с vim-jsonnet, правда с yaml'ом в виме действительно бывают косяки, видимо это специфика включённого autoindent, не могу я без него...
Aleksey
к тому же линтер не фиксит проблемы а создает их (ну ок ок оповещает о них)
Aleksey
Ну может и фиксить
жду твою реализацию. очень. правда.
Евгений
Я не страдаю от порядка строчек
Да и начинаю по-тихонечку заражаться jsonnet'ом
Евгений
жду твою реализацию. очень. правда.
На nodejs пойдёт? Можно выковырять из плугина
𝚔𝚟𝚊𝚙𝚜
Но имхо, манифест описанный в jsonnet'е с автоформатированием выглядит лучше и работать с ним удобнее чем с ямлом, не смотря на наличие скобочек
Aleksey
На nodejs пойдёт? Можно выковырять из плугина
наплевать на чом. я буду запускать ёё в докере.
Aleksey
одна беда у той реализации. не умеет дружить с комментами
𝚔𝚟𝚊𝚙𝚜
Даёшь YAML для роботов и JSON для человеков!
Aleksey
хуже всего в json нет что у него нет пути обратно. он только в одну сторону рендерится
Aleksey
нельзя из имеющеггося манифеста сделать jsonnet
Aleksey
и это всё портит и пикает
𝚔𝚟𝚊𝚙𝚜
выглядит он хуже. работать с ним не удобнее. но путь jsonnet правильнее.
попробуй поработать с ним со включенным автоформатированием и с подсветкой синтаксиса, тут реально можно кайфонуть.