k8s-install-klubespray-wall.jpg

K8s - установка через kubespray

В этой заметке развернем кластер куба используя инструмент - kubespray. Если вы уже читали про методы установки кластера, то косвенно знакомы с kubespray. Вкратце это сборник ansible-плэйбуков и ролей, дающий нам возможности: Основное это установка кластера k8s, установка как актуальной версии, так у более старой версии кластера, Установка контейнерного runtime (Docker, Cri-o, Containerd), Установка сетевых решений (Calico, Flannel), Установка и настройка кластера etcd, Возможность установки дополнительных компонентов - это DNS, Ingress-контроллеры, Cert-менеджеры, Storage-драйверы и прочее. Добавление/Удаление нод кластера. Обновеление кластера. Стоит сделать отступление относительно установки дополнительных компонентов, все же рекомендуют накатывать компоненты независимо от kubespray. Так как обновление или обычная замена версии компонента, может привести к проблемкам. ...

May 5, 2023 · 9 min · 1784 words · Tony
prom-black-export-wall1.png

Prometheus - настройка blackbox-exporter

Сегодня появилась задачка настроить мониторинг внешних web-сервисов из вне инфраструктуры. Условно запускаем инстанс где-нибудь на digital ocean, и начинаем выполнять пробы (проверки) на внешний контур инфры - http, ssh и прочее. Таска достаточно простая, развернул забикс напихал туда проверок и поехали. Но хочется чего нибудь не тривиального и модного =) Вообщем пришла идея попробовать развернуть схему Blackbox Exporter + Prometheus. blackbox_exporter - экспортер позволяющий нам снимать метрики с эндпоинтов поверх протоколов http, icmp, tcp, grpc и прочего. Что касается метрик, то получаем данныe по статусу конечной точки (доступна/недоступна), время ее отклика. И самое вкусное это дата истечение ssl сертификатов. ...

April 25, 2023 · 10 min · 2078 words · Tony
netbox-py-wall.png

Netbox - IPAM, автоматизация на коленке

В прошлой заметке подготовили к работе сервер netbox для работы с ним. Сегодня реализуем костыль, который поможет держать в актуальном состоянии ipam. При динамических изменениях в инфре, трудоемкая задача каждый раз обновлять адреса в сетевом пространстве. Особенно когда в команде несколько админов и каждый добавляем по своему. Начинает появляться хаос, тратится больше времени на то что бы все причесать к порядку. Спустя 30 минут ручного труда, ты решаешься сесть за написание скрипта. ...

April 20, 2023 · 6 min · 1200 words · Tony
k8s-pv-wall

K8s - Pv, Pvc

Немного теории Ранее разбирались с деплойментами, запускали наши (stateless) приложения и демонстрировали фишки self-healing в кубернетес. В рамках этого топика разберемся томами (volumes), поймем как мы может запускать приложения с сохранением состояния. В кубернетес есть несколько разновидностей типов томов. Некоторые из типов являются универсальными и подходят для локального хранения данных, какие-то могут быть приспособлены для специфичных задач. Один pod может использовать одновременно несколько типов томов. Тип volume может быть: emptyDir - пустой каталог, который может использоваться для хранения временных файлов. Время жизни этого тома тесно связанно с жизнью пода. Все данные теряются после сметри пода. hostPath - этот тип используется для монтирование каталогов из файловой системы самого хоста. Данные остаются, после завершения цикла жизни пода и могут быть переиспользованы другим подом. gitRepo - том, который инициализируется при проверке содержимого git-репозитория. nfs - общий nfs ресурс, монтируемый в под. local - локальные смонтированные устройства на узлах. cephfs, glusterfs, rdb, vsphereVolume - тип используемый, для монтирования сетевых файловых хранилищ. confingMap, secret - специальны тип, используемый для предоставления поду определенных ресурсов kubernetes. persistentVolume, persistentVolumeClaim - способ использования заранее и динамически резервируемые постоянные хранилища. В рамках этой записи упор будет на постоянных томах и дополнительных абстракциях вокруг постоянных томов. Название типа - PV (PersistentVolume) постоянные тома, обусловлено способу хранение данных, то есть хранилище не привязывается сроку жизни пода. Данные не теряются, если pod умрет, перезапустится или запуститься на другой ноде. Существует многожество реализации постоянных томов, например: nfs, glusterfs, cephfs, fc, iscsi, googleDisk. ...

April 12, 2023 · 9 min · 1757 words · Tony

MariaDB, Репликация master-to-master (Active/Passive)

Как я упоминал ранее, для реализации высокой доступности MFA сервиса буду поднимать несколько экземпляров PrivacyIdea серверов. PrivacyIdea все свое состояние хранит в субд. И для решение всей задачи, мне достаточно обеспечить высокую доступность на уровне баз. В документации к сервису предлагается два решения: Использование централизированной менеджмент системы СУБД (Например: Mariadb Galera, Pgpool); Использование два инстанса MySQL в режиме master-master. Разумеется в моем случаи целесобразнее будет использование второго варианта. Вообщем я взялся за изучения вопроса эсплуатации master-to-master субд. И мнения у большинства - нигативные, из основных притензий к такому подходу, это нарватся на рассихронизацию данных в обоих бд. Также при вставке уникального значения столбца в обе базы, приведет к вылету инстансов или к прерыванию репликации. Выход из подобных ситуаций это создание active/passive кластера. Мы добавляем выше какой либо балансировщик (keepalived, например) и пишем данные в одну мастер ноду вторая же нода используется как горячий бекап. В случаи падения первого мастера, мы продолжаем писать уже во второй мастер. ...

April 10, 2023 · 6 min · 1176 words · Tony
privacyidea-guide-wall.jpg

PrivacyIdea + Radius - MFA для удаленного доступа

В прошлых итерациях настраивали сервис двухфакторной авторизации, для интеграции его с Cisco ISE. На этот раз решил попробовать проинтегрировать аналогичную LinOTP прилу - PrivacyIdea. На самом деле PrivacyIdea это форк LinOTP, который активно развивается разрабами и имеет более симпотичный WebUI. Да и стоит отметить, что некоторые фичи уже добавленые в приложение из коробки. И не нужно реализовывать костели, которые я делал ранее. Стоит отметить, что стабильная версия LinOTP работает на втором python2, что на сегодня уже считаеться немного легаси =). Я пробовал собирать приложение на python3, но из-за различных проблем в процессе использования сервиса, у меня просто опустились руки. ...

April 7, 2023 · 8 min · 1652 words · Tony

i3wm - Floating apps

Если вы используйте оконное окружение i3, то вероятно у вас возникала идея подстроить поведение определенных программ под себя. Например, я хочу что бы программа Lxappearance, которую использую для кастомизации, запускалась в режиме плавающего окна, а не на весь экран. И согласно документации, реализовать эту фичу можно путем добавление директивы в файл конфигурации: $ vim $HOME/.config/i3/config --- ################ Floating apps ################### for_window [class="Lxappearance"] floating enable Отлично, но есть нюанс с которым я столкнулся в процессе. ...

March 31, 2023 · 1 min · 157 words · Tony
linotp wall

LinOTP - Active/Passive 2fa кластер (Начало)

Возникла задача обновить сервера LinOTP, которые используются в качестве сервиса 2х факторной авторизации. В текущей конфигурации сервиса, в качестве бекенда используется pgpool+postgresql, и новой реализации решил отказаться от этого, так как жизнь с pgpool накладывает дополнительный overhead. (Схема нового кластера) Установка PostgreSQL Настройку на серверах начнем с самого нижнего слоя, установим и подготовим к использованию базу. Включаем модуль с Postgresql версией 13, и ставим пакеты: [All Servers]# yum module enable -y postgresql:13 [All Servers]# yum install postgresql -y postgresql-server Проинициализируем базу данных: ...

March 28, 2023 · 12 min · 2439 words · Tony
Post wall

Zabbix Agent - Установка/Деплой через GPO

Парадокс нашей админской жизни - как бы мы не стремились в Unixway, все равно приходится админить сервера на Windows. Вообщем и эта заметка будет про автоматизацию процесса установки zabbix-агентов на windows сервера. Собственно раскатывать агентов будем через груповые политики AD, ранее я уже писал об этом в прошлых заметках. Остается только придумать как реализовать процесс добавления хоста в заббикс. Этот поинт будем решать, через скриптец, который напишем далее. Подготовка На стороне заббикс-сервера, нужно внести некоторые приготовления. По моему замыслу, все новые хосты должны назначаться в определенную группу, и далее администратор заббикса распределит хосты по нужным группам. Поэтому создаем хост-группу - Unassigned : ...

March 10, 2023 · 5 min · 1029 words · Tony
Wireguard-wall

Wireguard - Настройка vpn-сервера

Wireguard - отличное решение, если нужно быстро организовать доступ к закрытому скоупу. Вот и ко мне прилетела задача, организовать доступ к exsi через vpn. Сам хост стоит в дата центре и имеет прямой доступ. После реализации vpn-сети, вырубим доступ. (Схема vpn-сети) Я поднял небольшую виртуалку, на которой поднимем wireguard-сервер, далее на микроте (который используется как фаервол/роутер) прокинем порт к vpn серверу. Установка WireGuard Подключаемся к серверу и ставим репозитории epel и eprepo: ...

February 16, 2023 · 6 min · 1123 words · Tony