SSO через Keycloak для инфраструктурных сервисов: часть 1, теория
Если вы хоть раз настраивали доступ к Grafana, Argo CD, Vault или Prometheus и сталкивались с аутентификацией «на костылях», значит, тоже задавались вопросом: почему бы не сделать это один раз и правильно — через SSO?
Эта первая часть разбора мастер-класса с DevOpsConf 2025 от Алексея Цыкунова, CTO Hilbert Team.
https://habr.com/ru/companies/oleg-bunin/articles/936338/
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Если вы хоть раз настраивали доступ к Grafana, Argo CD, Vault или Prometheus и сталкивались с аутентификацией «на костылях», значит, тоже задавались вопросом: почему бы не сделать это один раз и правильно — через SSO?
Эта первая часть разбора мастер-класса с DevOpsConf 2025 от Алексея Цыкунова, CTO Hilbert Team.
https://habr.com/ru/companies/oleg-bunin/articles/936338/
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
SSO через Keycloak для инфраструктурных сервисов: часть 2, практика
В первой части мы разобрали, как устроен Keycloak, какие у него сущности и зачем вообще нужен SSO в DevOps-инфраструктуре. Теперь — к делу. Во второй части переходим от теории к практике. Разворачиваем Keycloak в Kubernetes, настраиваем Terraform-провайдер, подключаем к нему Grafana, Argo CD и другие сервисы. Разбираемся, как выглядят реальные конфигурации клиентов, scopes и mappings, чтобы SSO действительно работал — с нужными токенами, ролями и группами.
https://habr.com/ru/companies/oleg-bunin/articles/936866/
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
В первой части мы разобрали, как устроен Keycloak, какие у него сущности и зачем вообще нужен SSO в DevOps-инфраструктуре. Теперь — к делу. Во второй части переходим от теории к практике. Разворачиваем Keycloak в Kubernetes, настраиваем Terraform-провайдер, подключаем к нему Grafana, Argo CD и другие сервисы. Разбираемся, как выглядят реальные конфигурации клиентов, scopes и mappings, чтобы SSO действительно работал — с нужными токенами, ролями и группами.
https://habr.com/ru/companies/oleg-bunin/articles/936866/
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Поднимаем кластер Kubernetes с помощью Terraform и Ansible
Развёртывание Kubernetes вручную требует времени на настройку нод, компонентов и окружения. Как автоматизировать этот процесс, чтобы быстро создавать и обновлять кластеры без повторной ручной настройки?
15 октября в 20:00 МСК на открытом вебинаре OTUS покажем, как использовать Terraform и Ansible для развёртывания Kubernetes-кластера и интегрировать управление инфраструктурой в GitLab CI/CD.
На практике рассмотрим:
— как связать Terraform и Ansible для комплексного управления инфраструктурой;
— как развернуть Kubernetes-кластер и настроить его ноды и компоненты;
— как автоматизировать создание и обновление кластера;
— как интегрировать развёртывание Kubernetes в GitLab CI/CD;
— как сделать процесс развёртывания воспроизводимым и сократить количество ручных операций.
После вебинара вы поймёте, как совместно использовать Terraform и Ansible, увидите процесс автоматизированного развёртывания Kubernetes-кластера и узнаете, как встроить управление инфраструктурой в CI/CD.
Урок проходит в преддверии старта курса «DevOps. Экспертный уровень».
👉 Регистрируйтесь: https://vk.cc/d2SA8m
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Развёртывание Kubernetes вручную требует времени на настройку нод, компонентов и окружения. Как автоматизировать этот процесс, чтобы быстро создавать и обновлять кластеры без повторной ручной настройки?
15 октября в 20:00 МСК на открытом вебинаре OTUS покажем, как использовать Terraform и Ansible для развёртывания Kubernetes-кластера и интегрировать управление инфраструктурой в GitLab CI/CD.
На практике рассмотрим:
— как связать Terraform и Ansible для комплексного управления инфраструктурой;
— как развернуть Kubernetes-кластер и настроить его ноды и компоненты;
— как автоматизировать создание и обновление кластера;
— как интегрировать развёртывание Kubernetes в GitLab CI/CD;
— как сделать процесс развёртывания воспроизводимым и сократить количество ручных операций.
После вебинара вы поймёте, как совместно использовать Terraform и Ansible, увидите процесс автоматизированного развёртывания Kubernetes-кластера и узнаете, как встроить управление инфраструктурой в CI/CD.
Урок проходит в преддверии старта курса «DevOps. Экспертный уровень».
👉 Регистрируйтесь: https://vk.cc/d2SA8m
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
❤2
Шпаргалка по Kubernetes
1. Основные понятия
🔘 Pod – наименьшая единица развертывания, содержит один или несколько контейнеров.
🔘 Deployment – контроллер, который управляет репликами Pod’ов и их обновлением.
🔘 Service – абстракция, предоставляющая доступ к Pod’ам (ClusterIP, NodePort, LoadBalancer).
🔘 ConfigMap – хранит конфигурационные данные в виде ключ-значение.
🔘 Secret – безопасное хранилище для конфиденциальных данных (пароли, токены).
🔘 PersistentVolume (PV) – абстракция для хранения данных.
🔘 PersistentVolumeClaim (PVC) – запрос на использование хранилища (PV).
🔘 Namespace – логическое разделение ресурсов в кластере.
🔘 Ingress – объект, предоставляющий доступ к сервисам внутри кластера через HTTP/HTTPS.
2. Основные команды kubectl
Работа с контекстом
Работа с ресурсами
Создание и удаление объектов
3. Пример манифестов
Простой Pod
Deployment
Service (NodePort)
Ingress
4. Полезные команды
5. Отладка и устранение проблем
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
1. Основные понятия
2. Основные команды kubectl
Работа с контекстом
kubectl config get-contexts # Список контекстов
kubectl config use-context <name> # Переключение контекста
kubectl config set-context <name> --namespace=<namespace> # Установить namespace по умолчанию Работа с ресурсами
kubectl get pods # Список Pod'ов
kubectl get deployments # Список Deployment'ов
kubectl get services # Список Service'ов
kubectl get nodes # Список узлов
kubectl get namespaces # Список namespace'ов
kubectl get events # Лог событий
kubectl describe pod <pod-name> # Подробная информация о Pod
kubectl logs <pod-name> # Логи Pod
kubectl exec -it <pod-name> -- /bin/sh # Зайти внутрь контейнера Создание и удаление объектов
kubectl apply -f <file>.yaml # Применить манифест
kubectl delete -f <file>.yaml # Удалить объект
kubectl delete pod <pod-name> # Удалить Pod
kubectl delete deployment <deploy-name> # Удалить Deployment 3. Пример манифестов
Простой Pod
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: nginx
ports:
- containerPort: 80Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: nginx
ports:
- containerPort: 80Service (NodePort)
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30080
type: NodePortIngress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 804. Полезные команды
kubectl top pod # Мониторинг использования CPU/RAM Pod'ов
kubectl top node # Мониторинг узлов
kubectl rollout status deployment <deploy-name> # Статус развертывания
kubectl rollout undo deployment <deploy-name> # Откат изменений
kubectl autoscale deployment <deploy-name> --min=2 --max=10 --cpu-percent=80 # Авто-масштабирование 5. Отладка и устранение проблем
kubectl get pods --all-namespaces # Проверить состояние всех Pod'ов
kubectl describe pod <pod-name> # Подробности о Pod
kubectl logs <pod-name> # Логи контейнера
kubectl logs <pod-name> -p # Логи завершившегося контейнера
kubectl exec -it <pod-name> -- /bin/sh # Подключение внутрь контейнера
kubectl get events --sort-by=.metadata.creationTimestamp # Последние события #devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1
Когда IT дает сбой, бизнес не должен останавливаться
Не работает 1С, недоступны документы, сотрудники не могут выполнять свои задачи. Даже несколько часов простоя могут обернуться потерями для компании. Причины могут быть разными, но для руководителя главное — как быстро компания сможет вернуться к нормальной работе.
Itentis Cloud — безопасная облачная среда для стабильной работы бизнеса.
Мы предлагаем аренду облачных ресурсов на базе компактной инфраструктуры с контролируемой нагрузкой. Здесь можно разместить 1С, CRM и другие корпоративные системы без покупки собственного оборудования.
А если вы не хотите погружаться в технические вопросы, команда Itentis возьмет вашу IT-инфраструктуру на комплексное обслуживание.
Ищете надежную площадку для корпоративных систем? Обращайтесь в Itentis Cloud — подберем решение под ваши задачи.
☁️ Зарабатывайте вместе с Itentis Cloud! Один из наших партнеров, системный администратор, начал с переноса нескольких клиентов в облако, а теперь получает 70–100 тыс. руб. ежемесячно на партнерской комиссии. Подключайте и своих клиентов к Itentis Cloud, получайте процент от их расходов на инфраструктуру и увеличивайте доход.
Первые 14 дней использования облака бесплатно. Подробнее — в партнерской программе
Не работает 1С, недоступны документы, сотрудники не могут выполнять свои задачи. Даже несколько часов простоя могут обернуться потерями для компании. Причины могут быть разными, но для руководителя главное — как быстро компания сможет вернуться к нормальной работе.
Itentis Cloud — безопасная облачная среда для стабильной работы бизнеса.
Мы предлагаем аренду облачных ресурсов на базе компактной инфраструктуры с контролируемой нагрузкой. Здесь можно разместить 1С, CRM и другие корпоративные системы без покупки собственного оборудования.
А если вы не хотите погружаться в технические вопросы, команда Itentis возьмет вашу IT-инфраструктуру на комплексное обслуживание.
Ищете надежную площадку для корпоративных систем? Обращайтесь в Itentis Cloud — подберем решение под ваши задачи.
☁️ Зарабатывайте вместе с Itentis Cloud! Один из наших партнеров, системный администратор, начал с переноса нескольких клиентов в облако, а теперь получает 70–100 тыс. руб. ежемесячно на партнерской комиссии. Подключайте и своих клиентов к Itentis Cloud, получайте процент от их расходов на инфраструктуру и увеличивайте доход.
Первые 14 дней использования облака бесплатно. Подробнее — в партнерской программе
❤1
Что такое пейджинг по требованию?
Пейджинг по требованию — это метод управления памятью, при котором страницы загружаются в физическую память только при доступе к ним процесса. Он оптимизирует использование памяти, загружая страницы по требованию, что снижает задержку запуска и накладные расходы на пространство. Однако он вносит некоторую задержку при первом доступе к страницам. В целом, это экономически эффективный подход к управлению ресурсами памяти в операционных системах.
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Пейджинг по требованию — это метод управления памятью, при котором страницы загружаются в физическую память только при доступе к ним процесса. Он оптимизирует использование памяти, загружая страницы по требованию, что снижает задержку запуска и накладные расходы на пространство. Однако он вносит некоторую задержку при первом доступе к страницам. В целом, это экономически эффективный подход к управлению ресурсами памяти в операционных системах.
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
ContainerSSH
SSH-сервер, который запускает контейнеры в Kubernetes и Docker
https://github.com/ContainerSSH/ContainerSSH
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
SSH-сервер, который запускает контейнеры в Kubernetes и Docker
https://github.com/ContainerSSH/ContainerSSH
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2
Buildg - Интерактивный отладчик для Dockerfile, с поддержкой IDE (VS Code, Emacs, Neovim и т.д.).
Source-level inspection
Breakpoints and step execution
Interactive shell on a step with your own debugigng tools
Based on BuildKit (with unmerged patches)
Supports rootless
https://github.com/ktock/buildg
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Source-level inspection
Breakpoints and step execution
Interactive shell on a step with your own debugigng tools
Based on BuildKit (with unmerged patches)
Supports rootless
https://github.com/ktock/buildg
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
Работа с правами доступа файлов и директорий в Linux
Назначить пользователя vasya владельцем файла file
Рекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий
Назначить владельца и группу для файла /file
Установить полные права доступа rwx ( Read Write eXecute ) для всех ugo ( User Group Other ) на директорию /directory. То-же самое можно сделать, используя числовой представление chmod 777 directory
Удалить все права на директорию /directory для группы и остальных
Изменить группу-владельца для file на new_group
Установить так называемый STIKY-бит на директорию /home/public. Удалить файл в такой директории может только владелец данного файла
Удалить STIKY-бит с директории /home/public
Установить SUID-бит на файл /bin/binary_file. Это позволяет любому пользователю системы, запускать данный файл с правами владельца файла
Удалить SUID-бит с файла /bin/binary_file
Установить SGID-бит на директории /home/public
Удалить SGID-бит с директории /home/public
Поиск всех файлов с установленным SUID битом, начиная с корня файловой системы
Листинг текущего каталога с правами доступа
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
# chown vasya /fileНазначить пользователя vasya владельцем файла file
# chown -R vasya directoryРекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий
# chown vasya:group /fileНазначить владельца и группу для файла /file
# chmod ugo+rwx /directoryУстановить полные права доступа rwx ( Read Write eXecute ) для всех ugo ( User Group Other ) на директорию /directory. То-же самое можно сделать, используя числовой представление chmod 777 directory
# chmod go-rwx /directoryУдалить все права на директорию /directory для группы и остальных
# chgrp new_group fileИзменить группу-владельца для file на new_group
# chmod o+t /home/publicУстановить так называемый STIKY-бит на директорию /home/public. Удалить файл в такой директории может только владелец данного файла
# chmod o-t /home/publicУдалить STIKY-бит с директории /home/public
# chmod u+s /bin/binary_fileУстановить SUID-бит на файл /bin/binary_file. Это позволяет любому пользователю системы, запускать данный файл с правами владельца файла
# chmod u-s /bin/binary_fileУдалить SUID-бит с файла /bin/binary_file
# chmod g+s /home/publicУстановить SGID-бит на директории /home/public
# chmod g-s /home/publicУдалить SGID-бит с директории /home/public
# find / -perm -u+sПоиск всех файлов с установленным SUID битом, начиная с корня файловой системы
# ls -lhЛистинг текущего каталога с правами доступа
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2
📈Picosnitch - мониторинг сетевого трафика на каждый исполняемый файл с помощью BPF
Получение уведомлений при подключении к сети новой программы или при ее изменении
Контролирует пропускную способность сети, разбивая трафик по исполняемым файлам, хэшам, родителям, доменам, портам или пользователям с течением времени
При желании можно проверить хэши или исполняемые файлы с помощью VirusTotal
Хеши исполняемых файлов кэшируются на основе устройства + inode для повышения производительности и работают с приложениями, запущенными в контейнерах
Используется BPF для точного мониторинга пропускной способности с низкими накладными расходами и fanotify для контроля исполняемых файлов на предмет модификации
Поскольку приложения могут вызывать других пользователей для отправки/получения данных для них, родительский исполняемый файл и хэш также регистрируются для каждого соединения
Прагматичный и минималистичный дизайн, сфокусированный на точном обнаружении с четким сообщением об ошибке, когда это невозможно
https://github.com/elesiuta/picosnitch
https://elesiuta.github.io/picosnitch/
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Получение уведомлений при подключении к сети новой программы или при ее изменении
Контролирует пропускную способность сети, разбивая трафик по исполняемым файлам, хэшам, родителям, доменам, портам или пользователям с течением времени
При желании можно проверить хэши или исполняемые файлы с помощью VirusTotal
Хеши исполняемых файлов кэшируются на основе устройства + inode для повышения производительности и работают с приложениями, запущенными в контейнерах
Используется BPF для точного мониторинга пропускной способности с низкими накладными расходами и fanotify для контроля исполняемых файлов на предмет модификации
Поскольку приложения могут вызывать других пользователей для отправки/получения данных для них, родительский исполняемый файл и хэш также регистрируются для каждого соединения
Прагматичный и минималистичный дизайн, сфокусированный на точном обнаружении с четким сообщением об ошибке, когда это невозможно
https://github.com/elesiuta/picosnitch
https://elesiuta.github.io/picosnitch/
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Вопросы с собеседования
df сообщает о наличии 20 Гб занятого пространства, подсчёт занятого файлами места при помощи du даёт результат в 20 Мб. При каких обстоятельствах может возникнуть описанная ситуация?
Когда файл удален т. к. файловый дескриптор «держит» его.
Ищем файл через:
При удалении файла, который в этот момент был «занят» процессом — его имя удаляется, но inode — остаётся в файловой системе до тех пор, пока не завершится процесс, который «держит» этот файл.
Соответственно, что бы «освободить» уже удалённые файлы — необходимо перезапустить процесс, который этот файл держит.
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
df сообщает о наличии 20 Гб занятого пространства, подсчёт занятого файлами места при помощи du даёт результат в 20 Мб. При каких обстоятельствах может возникнуть описанная ситуация?
Когда файл удален т. к. файловый дескриптор «держит» его.
Ищем файл через:
lsof -a +L1 | grep var | grep httpdПри удалении файла, который в этот момент был «занят» процессом — его имя удаляется, но inode — остаётся в файловой системе до тех пор, пока не завершится процесс, который «держит» этот файл.
Соответственно, что бы «освободить» уже удалённые файлы — необходимо перезапустить процесс, который этот файл держит.
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1🔥1
Что такое Docker? В чем отличие контейнера от образа?
Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации.
Образ — шаблон приложения, который содержит слои файловой системы в режиме "только-чтение".
Контейнер — запущенный образ приложения, который кроме нижних слоев в режиме "только чтение" содержит верхний слой в режиме "чтение-запись".
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации.
Образ — шаблон приложения, который содержит слои файловой системы в режиме "только-чтение".
Контейнер — запущенный образ приложения, который кроме нижних слоев в режиме "только чтение" содержит верхний слой в режиме "чтение-запись".
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Объясните концепцию Ingress в Kubernetes
Ingress — это объект API Kubernetes, который используется для предоставления маршрутов HTTP и HTTPS извне кластера к сервисам внутри кластера. Это обеспечивает единую точку входа в кластер, позволяет более просто управлять приложениями и устранять проблемы с маршрутизацией.
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Ingress — это объект API Kubernetes, который используется для предоставления маршрутов HTTP и HTTPS извне кластера к сервисам внутри кластера. Это обеспечивает единую точку входа в кластер, позволяет более просто управлять приложениями и устранять проблемы с маршрутизацией.
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Объясните, что такое диспетчер облачного контроллера.
Cloud Controller Manager позволяет связать кластер с API облачного провайдера. Cloud-controller manager позволяет поставщикам облачных услуг развиваться независимо от основного кода Kubernetes, абстрагируя специфичный код. Это позволяет поставщикам облачных услуг разрабатывать и поддерживать свой код независимо от основного кода Kubernetes.
Используя CCM, облачные операции, такие как создание и управление балансировщиками нагрузки, томами блочного хранения и облачными сетевыми ресурсами, могут выполняться бесперебойно в кластере Kubernetes. Это позволяет пользователям использовать преимущества как Kubernetes, так и облачного провайдера, сводя к минимуму потенциальные проблемы совместимости.
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Cloud Controller Manager позволяет связать кластер с API облачного провайдера. Cloud-controller manager позволяет поставщикам облачных услуг развиваться независимо от основного кода Kubernetes, абстрагируя специфичный код. Это позволяет поставщикам облачных услуг разрабатывать и поддерживать свой код независимо от основного кода Kubernetes.
Используя CCM, облачные операции, такие как создание и управление балансировщиками нагрузки, томами блочного хранения и облачными сетевыми ресурсами, могут выполняться бесперебойно в кластере Kubernetes. Это позволяет пользователям использовать преимущества как Kubernetes, так и облачного провайдера, сводя к минимуму потенциальные проблемы совместимости.
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🚀 Kubernetes операторы: зачем они нужны?
Если ты когда-нибудь настраивал stateful сервисы в Kubernetes (Postgres, Kafka, Elasticsearch и т.д.), то знаешь: манифесты Deployment/StatefulSet сами по себе редко закрывают все потребности. Нужен кто-то, кто будет следить за жизненным циклом приложения: бэкапы, апгрейды, реплики, восстановление.
Вот тут и появляются Operators.
Оператор — это контроллер, который расширяет Kubernetes API и умеет управлять сложными приложениями как «живым организмом». По сути, он кодирует опыт SRE/админа внутри кластера.
Как это работает?
1. Создаётся CustomResourceDefinition (CRD) - новый объект в Kubernetes (например,
2. Пишется контроллер, который следит за этим объектом и выполняет нужные действия (инициализация БД, настройка реплик, обновления).
3. Ты как DevOps просто применяешь YAML с описанием кластера, а оператор сам делает всю грязную работу.
Примеры операторов
Zalando Postgres Operator — управляет кластерами PostgreSQL.
Strimzi - Kafka в Kubernetes.
Prometheus Operator - автоматизация деплоя Prometheus + Alertmanager.
Почему это круто?
-Снижается рутина → не нужно писать километры bash-скриптов.
-Упрощается управление → вместо «кучи манифестов» ты работаешь с одним объектом.
-Автоматизация best practices → разработчики операторов уже заложили правильные сценарии.
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Если ты когда-нибудь настраивал stateful сервисы в Kubernetes (Postgres, Kafka, Elasticsearch и т.д.), то знаешь: манифесты Deployment/StatefulSet сами по себе редко закрывают все потребности. Нужен кто-то, кто будет следить за жизненным циклом приложения: бэкапы, апгрейды, реплики, восстановление.
Вот тут и появляются Operators.
Оператор — это контроллер, который расширяет Kubernetes API и умеет управлять сложными приложениями как «живым организмом». По сути, он кодирует опыт SRE/админа внутри кластера.
Как это работает?
1. Создаётся CustomResourceDefinition (CRD) - новый объект в Kubernetes (например,
PostgresCluster).2. Пишется контроллер, который следит за этим объектом и выполняет нужные действия (инициализация БД, настройка реплик, обновления).
3. Ты как DevOps просто применяешь YAML с описанием кластера, а оператор сам делает всю грязную работу.
Примеры операторов
Zalando Postgres Operator — управляет кластерами PostgreSQL.
Strimzi - Kafka в Kubernetes.
Prometheus Operator - автоматизация деплоя Prometheus + Alertmanager.
Почему это круто?
-Снижается рутина → не нужно писать километры bash-скриптов.
-Упрощается управление → вместо «кучи манифестов» ты работаешь с одним объектом.
-Автоматизация best practices → разработчики операторов уже заложили правильные сценарии.
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1
Наглядное руководство по туннелированию SSH и переадресации портов
Если говорить коротко, то я жалею, что не знал о пробросе портов и туннелировании раньше. В этой статье я пытаюсь лучше понять это и поделиться с вами некоторым опытом и советами.
Темы:
🔵 сценарии использования
🔵 конфигурация
🔵 SSH jumphosts
🔵 локальная/удаленная/динамическая переадресация портов и ограничения
https://i-odmin.ru/nagljadnoe-rukovodstvo-po-tunnelirovaniju-ssh-i-pereadresacii-portov/
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Если говорить коротко, то я жалею, что не знал о пробросе портов и туннелировании раньше. В этой статье я пытаюсь лучше понять это и поделиться с вами некоторым опытом и советами.
Темы:
https://i-odmin.ru/nagljadnoe-rukovodstvo-po-tunnelirovaniju-ssh-i-pereadresacii-portov/
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👌3🔥2
Чем отличается StatefulSet от Deployment?
Deployment — ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния.
StatefulSet — поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том.
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Deployment — ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния.
StatefulSet — поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том.
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Media is too big
VIEW IN TELEGRAM
Депрессия и эмоциональное выгорание айтишника - личная история DevOps
Психология айтишников довольно таки сложная штука. Эмоциональное выгорание, депрессия среди программистов не редкое дело. Все из-за напряженной работы, малой подвижности и отсутствия поддержки и общения.
В интернете много видео: "Как не выгореть на работе?"; "Что такое эмоциональное выгорание?"; "Как понять, что ты выгорел?"; "К кому обращаться за помощью?", но мало кто рассказывает на своем реальном примере.
В этом видео я расскажу свою историю, как и почему я выгорел. Так же расскажу к каким последствиям может привести наплевательское отношение к себе и вовремя не вылеченное эмоциональное выгорание.
источник
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Психология айтишников довольно таки сложная штука. Эмоциональное выгорание, депрессия среди программистов не редкое дело. Все из-за напряженной работы, малой подвижности и отсутствия поддержки и общения.
В интернете много видео: "Как не выгореть на работе?"; "Что такое эмоциональное выгорание?"; "Как понять, что ты выгорел?"; "К кому обращаться за помощью?", но мало кто рассказывает на своем реальном примере.
В этом видео я расскажу свою историю, как и почему я выгорел. Так же расскажу к каким последствиям может привести наплевательское отношение к себе и вовремя не вылеченное эмоциональное выгорание.
источник
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Kube API не отвечает, LoadBalancer не пропускает трафик, DNS не резолвит, исходящие запросы не уходят. Причина обычно кроется на стыке облачной сети и кластера, и найти её без понимания всей цепочки сложно.
3 ноября в 12:00 Роман Ерема, разработчик в команде Managed Kubernetes MWS Cloud Platform, на практике покажет:
⏺️ как взаимодействуют сеть облака, CNI и сеть Kubernetes
⏺️ как работают SNAT и Source IP
⏺️ когда нужен externalTrafficPolicy: Local и почему при нём может не проходить health check
⏺️ как диагностировать проблемы на реальных кейсах (live-demo)
Все участники получат чек-лист для проверки доступности.
Полезно инженерам, разработчикам и специалистам по сетям и облачной инфраструктуре.
🗓 3 ноября в 12:00
Регистрируйтесь по ссылке
3 ноября в 12:00 Роман Ерема, разработчик в команде Managed Kubernetes MWS Cloud Platform, на практике покажет:
Все участники получат чек-лист для проверки доступности.
Полезно инженерам, разработчикам и специалистам по сетям и облачной инфраструктуре.
🗓 3 ноября в 12:00
Регистрируйтесь по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Неофициальный сервер, совместимый с Bitwarden, написанный на Rust (ранее известен как bitwarden_rs).
Альтернативная реализация сервера Bitwarden Client API, написанная на Rust и совместимая с официальными клиентами Bitwarden. Идеально подходит для самостоятельного размещения, особенно в случаях, когда запуск официального ресурсоёмкого сервиса может быть нежелателен.
https://github.com/dani-garcia/vaultwarden
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Альтернативная реализация сервера Bitwarden Client API, написанная на Rust и совместимая с официальными клиентами Bitwarden. Идеально подходит для самостоятельного размещения, особенно в случаях, когда запуск официального ресурсоёмкого сервиса может быть нежелателен.
https://github.com/dani-garcia/vaultwarden
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Kubernetes сам не запускает контейнеры.
Между кластером и контейнером работает отдельный слой — контейнерный runtime. От его выбора зависят особенности инфраструктуры, производительность и безопасность.
На открытом уроке разберём, как Kubernetes взаимодействует с runtime через CRI, сравним containerd, CRI-O и Kata Containers и обсудим сценарии их применения.
10 ноября в 20:00 МСК. Урок проходит в преддверии старта курса «Инфраструктурная платформа на основе Kubernetes». Все участники получат скидку на обучение. Принять участие: https://vk.cc/d3maVl
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Между кластером и контейнером работает отдельный слой — контейнерный runtime. От его выбора зависят особенности инфраструктуры, производительность и безопасность.
На открытом уроке разберём, как Kubernetes взаимодействует с runtime через CRI, сравним containerd, CRI-O и Kata Containers и обсудим сценарии их применения.
10 ноября в 20:00 МСК. Урок проходит в преддверии старта курса «Инфраструктурная платформа на основе Kubernetes». Все участники получат скидку на обучение. Принять участие: https://vk.cc/d3maVl
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
❤1