Comments 21
С мониторингом логов как поступили?
В kubernetes крайне неудобная система логирования, весь вывод консоли в лог, а потом кибаноподобные монстры с сотнями фильтров, для 1000+микросервисов наверное оправдано, для 50+ ну вот вообще никак
Эм, k8s тут ничего не изобретал, это best practices для контейнеров в принципе, k8s просто его поддержал.
В чем у вас проблема с логами?
Проблема не в логах как таковых, а в "кибаноподобных монстрах", которые хотят ресурсов как не в себя, даже если логов там всего пара десятков мегабайт в день.
Можно собирать логи с контейнеров каким нибудь легковесным fluent-bit и отправлять на syslog сервер, у него есть output плагин для syslog. В централизованном хранении логов много плюсов, это у вас сейчас их 50 мегабайт в день, дальше будет больше и у вас уже будет реализованное решение.
Спасибо за идею. Попробую.
Сейчас у нас несколько серверов с голым докером, который пишет логи в syslog. Попытки заменить это все на кубер заканчивалось тем, что система логирования (ELK) требует выделить под это все еще один сервер как минимум.
Вариант с Loki, конечно, легковеснее, но все-равно.
А вот то что fluent-bit может писать в syslog - это открытие надо пощупать. Это то что нам и нужно.
Ну так конкретнее, какие монстры? Loki ресурсов меньше эластика потребляет, к примеру.
Для разработчиков я делаю job в Gitlab, которая выводит логи их приложения прямо в Gitlab. Какой-то централизованной системы логов пока нет.
Раз у вас свои железки, то на чем вы делали мастера и воркеры? Прям на железе, или на виртуалках?
А почему не пробовали установку с kubespray? Или к примеру deckhouse?
Deckhouse однажды пробовал, но тогда не хватило компетенции разобраться. Мне кажется чтобы понять Kubernetes надо начинать с самого обычного k8s и разворачивать поэтапно.
Да разобраться в kubespray сложнее, чем в том, как самому kubeadm в ансибл загнать. Ну, прям вот с ходу kubespray конечно поставит кластер, но как только захочется его кастомизировать...
никаких проблем не возникнет если знаете ansible, а ansible достаточно легок в освоении.
я начинал с ванильного k8s, потом kubespray на ansible - все что требовалось кастомизировать - кастомизировалось за один день максимум.
еще момент - я использовал форк kubespray от southbridge(https://github.com/southbridgeio/kubespray) - они раскатывают кластер целиком при помощи ansible, а последний официальный kubespray использует под собой kubeadm
Так вот, когда неплохо знаешь ansible - запилить свой ansible для kubeadm чуть ли не быстрее, чем разобраться в kubespray. Мы, потратив немало времени на подпиливание kubespray в итоге плюнули, переписали с нуля и это вышло быстро, и работает оно быстро и стабильно. Очень быстро!
а последний официальный kubespray использует под собой kubeadm
Ага, но с костылями, "исторически сложившимися". В общем, как человек, закопавший в kubespray достаточно времени, говорю, что не стоит другим закапывать в него своё время. Если ты понимаешь примерно, как обвязать ансиблом kubeadm - стоит просто это сделать и всё.
Для сборки докер образов присмотритесь к kaniko. Отлично интегрируется с гитлабом, и собирать все будет в том же кубе, от придатка с отдельной вм с докером и dind гитлаб агентами избавитесь.
Kubernetes через грабли или внедрение в университете