Рейтинг:0

Общий кластер Kubernetes

флаг vn

Мы планируем нашу новую кластерную инфраструктуру Kubernetes, и у меня есть несколько вопросов. В настоящее время у нас есть один большой кластер, над которым работают среды (dev, staging, prod) и несколько команд. Вначале это была просто «POC», демо-но, ребята, вы знаете: ничто не длится дольше, чем временные решения. В этой настройке у нас есть некоторые общие проблемы, и в нашей целевой архитектуре мы планируем исправить некоторые из этих проблем.

Я надеюсь, что некоторые из вас могут поделиться знаниями/опытом.

Прежде всего: один кластер на приложение — это не решение. Приложения очень маленькие, и каждая команда имеет около 3-5 приложений и требует около 6-20 ГБ оперативной памяти на всех узлах в каждой среде. Таким образом, один кластер на самом деле не вариант.

Мы планируем по одному кластеру на каждую среду: dev, staging (qa), prod и, возможно, для работы демонстрационный кластер. Все есть и будет автоматизировано и IaC с terraform + ansible (kubespray). Каждая область действия команды/приложения получит единое пространство имен.

Наши вопросы/проблемы:

Мониторинг Обычно мы используем Prometheus и Grafana для мониторинга использования ресурсов пода/кластера.Новое также должно содержать централизованное ведение журнала (мы сейчас тестируем решения). Это нормально для внутренней команды, но она не хочет отслеживать на уровне приложений.

Есть ли какой-нибудь рабочий способ предоставить командам приложений мониторинг? Например: вы (команда приложения) можете настроить оповещения о журналах, использовании процессора, оперативной памяти, что вам нужно. «Вам просто нужно развернуть эту диаграмму руля». В прекрасном мире я бы предоставил каждой команде (т. е. каждому пространству имен) свой собственный стек мониторинга, чтобы мы также могли ограничивать использование хранилища и оперативной памяти + процессора, и каждая команда могла бы использовать «упорядоченные» ресурсы (поэтому, если команда требует много логов/мониторинга, ему нужно "заказывать" больше ресурсов). Кроме того, на основе этого подхода они могут выбрать наиболее подходящее программное обеспечение.

Другое решение может заключаться в том, что команда инфраструктуры настраивает централизованное решение для мониторинга/журнала и ограничивает доступ. Команда приложения A не должна иметь доступа к журналам/использованию процессора/использованию оперативной памяти/использованию диска из команды приложения B. Но я не вижу никакого способа сделать это действительно хорошо.

Это может быть вариант, когда команда Infra устанавливает этот стек, но все, что я видел, таково: когда я устанавливаю стек мониторинга в определенном пространстве имен, стеку требуется доступ администратора к кластеру. Это не красиво на мой взгляд.

Я ошибся?

Место хранения У нас есть хранилище gluster, и мы хотим его сохранить. Если команде нужен диск, мы добавляем «постоянный том glusterfs» с определенным размером и именем класса хранилища, например «team1-disk5». Исходя из этого, команда может создать PVC и использовать хранилище. Раньше работал нормально.

Это хорошее решение? Любые другие идеи?

Я думаю, что это все на данный момент. Только эти два вопроса. Любая идея переместить меня в правильном направлении?

Спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.