С днем системного администратора!


С праздником, коллеги!
Пакетов без потерь, сетей без петель, софта без дыр, пусть фатал еррор обходит стороной, пинги проходят, сервера не падают!
Админь!
С праздником, коллеги!
Пакетов без потерь, сетей без петель, софта без дыр, пусть фатал еррор обходит стороной, пинги проходят, сервера не падают!
Админь!
Upd:
Что, сразу ответ писать?
Upd2:
На самом деле, это мог бы быть пост про то, как я пришёл к клиенту, ужаснулся, и уже начал смотреть что куда втыкается, но потом увидел этот или похожий, но очень характерный экран, нажал энтер и всё заработало. И да, уже навели порядок.
Меня зовут Александр, я CTO компании AppFox. Мы более 10 лет занимаемся заказной разработкой и также имеем собственные продукты.
В этой статье мы рассмотрим, что такое Kubernetes, в каких случаях его использование оправдано, и разберем вопросы, которые вы можете встретить на собеседованиях.
Что такое Kubernetes простыми словами?
Разберем на примере интернет-магазина с тремя серверами:
Сервер №1 – основной (принимает заказы).
Сервер №2 – база данных (хранит товары и пользователей).
Сервер №3 – бекенд для API (обрабатывает платежи).
Проблема:
В Чёрную пятницу приходит в 10 раз больше покупателей. В результате, сервера №1 и №3 падают от нагрузки, магазин "висит".
Сервер №2 (база данных) ломается, а все заказы теряются.
Чтобы добавить новые сервера, админ вручную копирует настройки, что занимает часы.
Решение при помощи Kubernetes.
Те же 3 сервера, но теперь они управляются Kubernetes.
Автомасштабирование
При наплыве покупателей Kubernetes автоматически запускает дополнительные копии серверов №1 и №3.
Когда нагрузка падает – лишние сервера отключаются.
Отказоустойчивость
Если сервер №2 (база данных) упал, Kubernetes сразу переключает нагрузку на его резервную копию.
Покупатели даже не замечают проблемы.
Гибкие обновления
Вы хотите обновить API (сервер №3).
Kubernetes делает это без downtime:
Запускает новые версии API, переключает трафик на них и останавливает старые.
Экономия денег
Ночью, когда магазин почти не используют, Kubernetes отключает часть серверов.
Утром – снова включает.
Что это даёт бизнесу?
Магазин не "падает" в пиковые нагрузки (Чёрная пятница, распродажи).
Нет потери заказов – если что-то сломалось, система сама всё починит.
Быстрые обновления – можно выпускать новые фичи без остановки магазина.
Экономия на серверах – не нужно держать "лишние" мощности.
Kubernetes — это система оркестрации контейнеров, которая помогает управлять масштабируемыми и отказоустойчивыми приложениями.
Термин k8s является синонимом Kubernetes и означает 8 букв между первой и последней буквой. Да, программисты любят сокращения :)
Примерно с 2018 года мы наблюдаем устойчивый тренд: Kubernetes стал синонимом «правильной» продакшн-инфраструктуры. И это не случайно. Он действительно решает множество проблем, связанных с управлением микросервисами, масштабированием, отказоустойчивостью и обновлением без простоев.
Когда Kubernetes оправдан:
Микросервисная архитектура с большим количеством сервисов.
Необходимость автоматического масштабирования под нагрузку.
Высокие требования к отказоустойчивости.
Гибкость деплоя (Canary, Blue-Green, A/B-тестирование).
Когда Kubernetes — избыточное решение:
Монолитное приложение с низкой нагрузкой.
Маленькие проекты без потребности в масштабировании.
Стартапы с ограниченным бюджетом.
Проект для демо или MVP, в которых планируется масштабирования только после получения инвестиций
Команда не готова к сложности k8s (обучение и поддержка требуют ресурсов).
В компании AppFox мы используем Kubernetes при построения кластеров для мультиплеерных игр и проектов со сложной микросервисной архитектурой. В частности, мы его использовали при разработке решений для СберБанка и Банка ВТБ.
Основные понятия Kubernetes
Pod — минимальная единица развертывания (может содержать один или несколько контейнеров).
Deployment — декларативное описание желаемого состояния приложения.
Service — абстракция для доступа к подам (ClusterIP, NodePort, LoadBalancer).
Ingress — управление внешним трафиком (роутинг, SSL).
ConfigMap & Secret — хранение конфигураций и чувствительных данных.
PersistentVolume (PV) & PersistentVolumeClaim (PVC) — работа с постоянным хранилищем.
Helm — менеджер пакетов для k8s (чарты).
Теперь самое интересное — какие вопросы задают кандидатам в зависимости от их уровня.
Что такое контейнер и зачем нужен Docker?
Контейнер - это изолированное окружение для запуска приложений со всеми зависимостями.
Docker - платформа для создания и управления контейнерами.
Разница между Docker и Kubernetes
Docker создает контейнеры
Kubernetes управляет множеством контейнеров на разных серверах.
Как работает kubectl get pods? Что выведет эта команда?
Команда показывает список подов (pods) - минимальных единиц развертывания в k8s. Вывод включает имя пода, статус, количество рестартов и возраст.
Что такое Deployment и зачем он нужен?
Это объект k8s для декларативного управления подами. Позволяет:
Разворачивать приложения
Обновлять их (rolling update)
Возвращаться к предыдущим версиям (rollback)
Масштабировать количество реплик
Как приложение в k8s получает конфигурацию (ConfigMap, Secrets)?
ConfigMap хранит конфигурации (например, настройки приложения)
Secrets - чувствительные данные (пароли, токены). Они монтируются в поды как файлы или переменные окружения.
Что такое Pod, Deployment и Service?
Pod — это минимальная единица в Kubernetes
Deployment управляет жизненным циклом Pod'ов
Service предоставляет сетевой доступ.
Как подать переменные окружения в Pod?
Через env, envFrom, ConfigMap, Secret.
Что произойдет, если Pod упал?
Kubernetes сам его перезапустит — важно понимать работу контроллеров.
Как создать под с помощью kubectl?
Как посмотреть логи пода?
Как работает Service? Какие типы сервисов знаете?
Абстракция для доступа к набору подов. Типы:
ClusterIP (внутренний IP)
NodePort (порт на каждой ноде)
LoadBalancer (внешний балансировщик)
ExternalName (CNAME-запись)
Как обновить приложение в k8s (стратегии деплоя)?
RollingUpdate (постепенная замена подов)
Recreate (удаление всех старых перед созданием новых)
Что делает kubelet и kube-proxy?
kubelet - агент на нодах, запускает и контролирует контейнеры
kube-proxy - обеспечивает сетевую связность между сервисами
Как создать кластер Kubernetes?
Как подключить volume к Pod'у?
Volume (том) в Kubernetes позволяет сохранять данные между перезапусками Pod'ов. Есть несколько типов томов, но для постоянного хранения данных используются PersistentVolume (PV) и PersistentVolumeClaim (PVC).
PersistentVolume — это ресурс в кластере, представляющий физическое хранилище (например, диск в облаке или NFS-шару). PV создаётся администратором кластера и существует независимо от Pod'ов.
PersistentVolumeClaim — запрос Pod'а на выделение PV. PVC связывается с подходящим PV (или динамически создаёт его, если настроен StorageClass). PVC монтируется в Pod как volume. Если не хочется создавать PV вручную, можно использовать StorageClass для автоматического создания томов.
Чем отличается Horizontal Pod Autoscaler от Vertical Pod Autoscaler?
HPA масштабирует количество Pod'ов на основе метрик нагрузки (увеличивает или уменьшает число реплик (replicas) Deployment'а в зависимости от, например, CPU или памяти, т.е., нагрузка выросла — добавили ещё Pod'ов).
VPA изменяет ресурсы (CPU, память) у контейнеров внутри Pod'а
Как настроить Ingress для доступа к сервису?
Как сделать Horizontal Pod Autoscaler (HPA)?
Как управлять ресурсами (requests/limits)?
Как настроить PersistentVolume для stateful-приложения?
Как диагностировать проблему с CrashLoopBackOff?
Посмотреть логи пода
Проверить readiness/liveness пробы
Убедиться, что контейнеру хватает ресурсов
Проверить монтирование томов
Изучить события кластера:kubectl describe pod <pod-name>kubectl get events
Как настроить NetworkPolicy для изоляции подов?
Как работает etcd и что делать при его проблемах?
Распределенное key-value хранилище - "мозг" Kubernetes. Проблемы и решения:
Недостаток места: регулярная дефрагментация
Высокая задержка: оптимизация сети
Потеря кворума: восстановление из бэкапа
Как настроить мониторинг (Prometheus + Grafana)?
Установка Prometheus Operator
Настройка ServiceMonitor для сбора метрик
Создание Grafana дашбордов
Настройка алертов через Alertmanager
Как организовать multi-cluster управление?
Варианты:
Kubefed (Federation v2)
Cluster API
Коммерческие решения (GKE Anthos, EKS Anywhere)
Основные задачи: синхронизация ресурсов, единая аутентификация, централизованное логирование.
Как оптимизировать costs в облачном k8s (автоскейлинг нод)?
Использование spot-инстансов
Автомасштабирование нод (Cluster Autoscaler)
Вертикальное масштабирование подов (VPA)
Планирование подов на дешевые ноды (node affinity/taints)
Использование serverless-решений (AWS Fargate, GCP Cloud Run)
Заключение: Kubernetes — мощный инструмент, но не панацея
Kubernetes действительно стал стандартом для оркестрации контейнеров в современных облачных и гибридных средах. Он решает ключевые задачи: масштабируемость, отказоустойчивость и автоматизацию деплоя. Однако его внедрение требует взвешенного подхода — не каждый проект нуждается в такой сложности.
Главный совет:
Если у вас микросервисы, высокая нагрузка или требовательная инфраструктура — Kubernetes может стать вашим решением.
Если проект небольшой или монолитный — начните с простых решений (Docker Compose, managed-сервисов) и масштабируйтесь постепенно.
Попробуйте Kubernetes в действии:
Разверните локальный кластер через minikube или kind.
Поэкспериментируйте с Helm-чартами и автоскейлингом.
Изучите managed-решения (GKE/EKS/AKS), чтобы оценить их преимущества.
Доброго времени суток подписчики и мимо крокодилы) Давно не было постов и всяких самоделок, исправляюсь по причине появления вдохновения и времени. Пост будет полезен тем кто занимается обеспечение отказоустойчивости разнообразных систем, начиная от маленьких серверных шкафов до полноценных серверных. Речь далее пойдёт об Автоматическом Вводе Резерва (далее АВР). Вкратце это последний рубеж защиты электропитания оборудования обеспеченного либо ИБП (источник бесперебойного питания) либо двумя вводами для обеспечения первой категории электропитания. Вдаваться в терминологию не буду, ибо найдутся люди которые "накидают в панамку". Суть работа очень проста, есть основной и резервный ввод электропитания, в нашем случае основной ввод это ИБП, резервный сеть, в случае пропадания питания на основном вводе железка на электромеханике переключается на резерв, т.к. случаются аварии ИБП со снятием питания на выходе которым запитано критически важное оборудование. Итак, нашим коллегой была нарисована до безобразия простая схема на магнитном пускателе или реле, суть от этого не меняется..
ИБП 1 в данной схеме является основным вводом, ИБП 2 резервным, при пропадании питания с основного ввода катушка пускателя(реле) отпускает и автоматика включает нормально замкнутые контакты. Раньше мы данную конструкцию собирали в отдельной коробке на два DIN модуля собирая коммутацию прямо внутри, этой коробочки, но тут решили пойти дальше. На глаза мне попался пилот стоечного исполнения с двумя типами розеток:
На этом шаге я думаю задумка стала понятна. Выкидываем автоматы которые питают каждую группу розеток и вставляем туда пускатели. Данное исполнение понравилось за то что есть возможность выпустить кабель сбоку и сзади на выбор (что очень потом пригодилось).
Далее пришлось купить DIN рейку и допилить при помощи болгарки ибо наши пускатели не влезали в стандартное крепление.
В общем готовое изделие выше на фото. Поэтапно вводим в эксплуатацию, при отказе ИБП или если стоят ИБП не поддерживающие горячую замену очень сильно выручают. Варианты доработки которые рассматриваю для себя, установка светодиодной индикации состояния пускателя, т.к. бывают ситуации что ИБП говорит что у него всё збс, а по факту на выходе ничего.
P.s. может не совсем формат для лиги ремонтёров, но думаю будет полезно.
Невероятный жёсткий диск Seagate 3.5" Exos X24 с самым большим объёмом памяти на сегодняшний день 24 TB (24 000 ГБ). Основная целевая аудитория — владельцы центров обработки данных. Впрочем, никто не мешает использовать этот жесткий диск и в обычных домашних компьютерах — на таком HDD поместятся сотни фильмов, тысячи игр и миллионы фотографий. Стоит такой около 51 000 руб. Ссылка на него
Жёсткий диск Seagate Exos X22 с 22 ТБ памяти. Технология записи CMR гарантирует стабильную скорость независимо от объема данных. Устройство предназначено для серверов: надёжность диска обеспечивает постоянную работу и непрерывные нагрузки. Стоит такой около 45 000 руб. Ссылка на него
Жёсткий диск Seagate Exos X20 с 20 ТБ памяти. Стоит такой 33 200 руб. Ссылка на него
Жёсткий диск Seagate Exos X18 c 18 TБ памяти. Стоит такой 28 200 руб. Ссылка на него
Объёмный жёсткий HDD диск Seagate Exos X18 c 16 ТБ памяти. Стоит такой 18 800 руб. Ссылка на него
Жёсткий диск Seagate IronWolf Pro с 12 ТБ. Подойдёт для записи видео с камер видеонаблюдения. Стоит 15 500 руб. Ссылка на него
Жёсткий диск Seagate SkyHawk емкостью 8 ТБ является производительным и надежным запоминающим устройством, которое может использоваться в составе систем видеонаблюдения. Seagate SkyHawk AI позволяет хранить довольно большой массив информации и способен справляться с круглосуточными интенсивными нагрузками. Данный накопитель характеризуется скоростью вращения шпинделя 7200 об/мин и объемом кэш-памяти 256 МБ. Фирменное ПО SkyHawk Health позволяет выполнять мониторинг накопителя и управлять доступными параметрами. Подключение посредством интерфейса SATA III обеспечивает широкую совместимость и удобство установки в оборудование. Стоит такой 13 900 руб. Ссылка на него
Жёсткий диск Seagate ёмкостью 6 ТБ. Стоит такой 9 900 руб. Ссылка на него
Жёсткий диск Seagate ёмкостью 4 ТБ. Стоит такой 8 200 руб. Ссылка на него
Жёсткий диск Seagate Exos 7E8 вместимостью 2 ТБ , отличное решение для использования в домашних или офисных компьютерах. Стоит такой 5 800 руб. Ссылка на него
Объём памяти в флешках, жёстких дисках, SSD, смартфонах и тд. всегда немного ниже, чем заявлено. Это норма! К примеру:
Флешка на 32 Гб – свободно ~29.8 Гб ,
SSD диск на 128 Гб – свободно ~119.2 Гб
Жёсткий диск HDD на 500 Гб - свободно ~465 Гб
Жёсткий диск HDD на 2 Тб – свободно ~1 861 Гб и тд.
Сразу говорю. Панамка развёрнута невероятных размеров, потому напихивайте.
Итак. На пикабу я пришёл давно, но не регистрировался. Зарегиться меня заставила история Бублика о доме в 700+ квадратов. Не то, чтоб прямо заставила, но появилось желание пописать и о своей авантюре-долгострое, почитать можно здесь Авантюра-дом, или записки самостройщика.
Немного расскажу о своей работе. Это скромная компания с 2,5 сотрудниками, которая куёт IT металл =) Занимаюсь проектированием, закупом, сборкой, монтажом, настройкой, запуском и обслуживанием сетей и серверных для различных оргагизаций. Ещё, понемногу, и видеонаблюдением/скудом/ip телефонией с интеграцией этого всего в 1С.
Как раз на прошлой неделе допинал долгострой. Организацию веду очень давно, растёт она весьма быстро, потому железки предыдущие ещё годны, замены не требуют, но их не хватает по мощностям. Денег, как и всегда, нет, крутись как хошь =)
Отсюда всплыло решение вот такое. Совмещённая коммуникационно-серверная в шкафах старых с частично новым железом - свитчи от невротика. Смысл здесь весь в переходе на оптику между зданиями (в каждом своя коммуникационная), этот процесс наконец то завершился.
В нижнем шкафу не хватает места немного, патч-паннель надо бы разжать. Да некуда. Придумаю ещё.
В верхнем шкафу - прикол. Над упсом висит динрейка с бп на 48 вольт и двумя пое бескорпусными. А они дешевле сильно =)
Провода вертикальные не заплёл - будет ещё добавка с ремонтируемых офисов первого этажа, лотки по периметру прикрутил, не всё ещё туда засунул по той-же причине.
Ну и веду "войну" по выбиванию сюда хоть какого нить кондиционера, а то сервера жарят знатно, а помещение маленькое.