Перейти к содержимому
Технологии IT обновлён 14.05.2023

DevOps

Docker, Kubernetes, облачные сервисы (AWS, GCP, Azure), Infrastructure as a Code (Terraform, CloudFormation), администрирование Windows и Linux, сети TCP, IP, скрипты (Bash, PowerShell), Ansible, Jenkins, DevSecOps, логирование.

Публикации канала

Kubernetes сам не запускает контейнеры. Между кластером и контейнером работает отдельный слой — контейнерный runtime. От его выбора зависят особенности инфраструктуры, производительность и безопасность. На открытом уроке разберём, как Kubernetes взаимодействует с runtime через CRI, сравним containerd, CRI-O и Kata Containers и обсудим сценарии их применения. 10 ноября в 20:00 МСК. Урок проходит в преддверии старта курса «Инфраструктурная платформа на основе Kubernetes». Все участники получат скидку на обучение. Принять участие: https://vk.cc/d3maVl Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Открыть в Telegram

Неофициальный сервер, совместимый с Bitwarden, написанный на Rust (ранее известен как bitwarden_rs). Альтернативная реализация сервера Bitwarden Client API, написанная на Rust и совместимая с официальными клиентами Bitwarden. Идеально подходит для самостоятельного размещения, особенно в случаях, когда запуск официального ресурсоёмкого сервиса может быть нежелателен. https://github.com/dani-garcia/vaultwarden #devops #девопс 📲 Мы в MAX Подпишись 👉@i_DevOps

Открыть в Telegram

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 Регистрируйтесь по ссылке

Открыть в Telegram

Депрессия и эмоциональное выгорание айтишника - личная история DevOps Психология айтишников довольно таки сложная штука. Эмоциональное выгорание, депрессия среди программистов не редкое дело. Все из-за напряженной работы, малой подвижности и отсутствия поддержки и общения. В интернете много видео: "Как не выгореть на работе?"; "Что такое эмоциональное выгорание?"; "Как понять, что ты выгорел?"; "К кому обращаться за помощью?", но мало кто рассказывает на своем реальном примере. В этом видео я расскажу свою историю, как и почему я выгорел. Так же расскажу к каким последствиям может привести наплевательское отношение к себе и вовремя не вылеченное эмоциональное выгорание. источник #devops #девопс 📲 Мы в MAX Подпишись 👉@i_DevOps Video is too big

Открыть в Telegram

Чем отличается StatefulSet от Deployment? Deployment — ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния. StatefulSet — поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том. #devops #девопс 📲 Мы в MAX Подпишись 👉@i_DevOps

Открыть в Telegram

Наглядное руководство по туннелированию SSH и переадресации портов Если говорить коротко, то я жалею, что не знал о пробросе портов и туннелировании раньше. В этой статье я пытаюсь лучше понять это и поделиться с вами некоторым опытом и советами. Темы: 🔵сценарии использования 🔵конфигурация 🔵SSH jumphosts 🔵локальная/удаленная/динамическая переадресация портов и ограничения https://i-odmin.ru/nagljadnoe-rukovodstvo-po-tunnelirovaniju-ssh-i-pereadresacii-portov/ #devops #девопс 📲 Мы в MAX Подпишись 👉@i_DevOps

Открыть в Telegram

🚀 Kubernetes операторы: зачем они нужны? Если ты когда-нибудь настраивал 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 #девопс 📲 Мы в MAX Подпишись 👉@i_DevOps

Открыть в Telegram

Объясните, что такое диспетчер облачного контроллера. Cloud Controller Manager позволяет связать кластер с API облачного провайдера. Cloud-controller manager позволяет поставщикам облачных услуг развиваться независимо от основного кода Kubernetes, абстрагируя специфичный код. Это позволяет поставщикам облачных услуг разрабатывать и поддерживать свой код независимо от основного кода Kubernetes. Используя CCM, облачные операции, такие как создание и управление балансировщиками нагрузки, томами блочного хранения и облачными сетевыми ресурсами, могут выполняться бесперебойно в кластере Kubernetes. Это позволяет пользователям использовать преимущества как Kubernetes, так и облачного провайдера, сводя к минимуму потенциальные проблемы совместимости. #devops #девопс 📲 Мы в MAX Подпишись 👉@i_DevOps

Открыть в Telegram

Объясните концепцию Ingress в Kubernetes Ingress — это объект API Kubernetes, который используется для предоставления маршрутов HTTP и HTTPS извне кластера к сервисам внутри кластера. Это обеспечивает единую точку входа в кластер, позволяет более просто управлять приложениями и устранять проблемы с маршрутизацией. #devops #девопс 📲 Мы в MAX Подпишись 👉@i_DevOps

Открыть в Telegram

Что такое Docker? В чем отличие контейнера от образа? Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации. Образ — шаблон приложения, который содержит слои файловой системы в режиме "только-чтение". Контейнер — запущенный образ приложения, который кроме нижних слоев в режиме "только чтение" содержит верхний слой в режиме "чтение-запись". #devops #девопс 📲 Мы в MAX Подпишись 👉@i_DevOps

Открыть в Telegram

Вопросы с собеседования df сообщает о наличии 20 Гб занятого пространства, подсчёт занятого файлами места при помощи du даёт результат в 20 Мб. При каких обстоятельствах может возникнуть описанная ситуация? Когда файл удален т. к. файловый дескриптор «держит» его. Ищем файл через: lsof -a +L1 | grep var | grep httpd При удалении файла, который в этот момент был «занят» процессом — его имя удаляется, но inode — остаётся в файловой системе до тех пор, пока не завершится процесс, который «держит» этот файл. Соответственно, что бы «освободить» уже удалённые файлы — необходимо перезапустить процесс, который этот файл держит. #devops #девопс 📲 Мы в MAX Подпишись 👉@i_DevOps

Открыть в Telegram

📈Picosnitch - мониторинг сетевого трафика на каждый исполняемый файл с помощью BPF Получение уведомлений при подключении к сети новой программы или при ее изменении Контролирует пропускную способность сети, разбивая трафик по исполняемым файлам, хэшам, родителям, доменам, портам или пользователям с течением времени При желании можно проверить хэши или исполняемые файлы с помощью VirusTotal Хеши исполняемых файлов кэшируются на основе устройства + inode для повышения производительности и работают с приложениями, запущенными в контейнерах Используется BPF для точного мониторинга пропускной способности с низкими накладными расходами и fanotify для контроля исполняемых файлов на предмет модификации Поскольку приложения могут вызывать других пользователей для отправки/получения данных для них, родительский исполняемый файл и хэш также регистрируются для каждого соединения Прагматичный и минималистичный дизайн, сфокусированный на точном обнаружении с четким сообщением об ошибке, когда это невозможно https://github.com/elesiuta/picosnitch https://elesiuta.github.io/picosnitch/ #devops #девопс 📲 Мы в MAX Подпишись 👉@i_DevOps

Открыть в Telegram

Работа с правами доступа файлов и директорий в Linux # 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 #девопс 📲 Мы в MAX Подпишись 👉@i_DevOps

Открыть в Telegram

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

Открыть в Telegram

ContainerSSH SSH-сервер, который запускает контейнеры в Kubernetes и Docker https://github.com/ContainerSSH/ContainerSSH #devops #девопс 📲 Мы в MAX Подпишись 👉@i_DevOps

Открыть в Telegram

Что такое пейджинг по требованию? Пейджинг по требованию — это метод управления памятью, при котором страницы загружаются в физическую память только при доступе к ним процесса. Он оптимизирует использование памяти, загружая страницы по требованию, что снижает задержку запуска и накладные расходы на пространство. Однако он вносит некоторую задержку при первом доступе к страницам. В целом, это экономически эффективный подход к управлению ресурсами памяти в операционных системах. #devops #девопс 📲 Мы в MAX Подпишись 👉@i_DevOps

Открыть в Telegram

Когда IT дает сбой, бизнес не должен останавливаться Не работает 1С, недоступны документы, сотрудники не могут выполнять свои задачи. Даже несколько часов простоя могут обернуться потерями для компании. Причины могут быть разными, но для руководителя главное — как быстро компания сможет вернуться к нормальной работе. Itentis Cloud — безопасная облачная среда для стабильной работы бизнеса. Мы предлагаем аренду облачных ресурсов на базе компактной инфраструктуры с контролируемой нагрузкой. Здесь можно разместить 1С, CRM и другие корпоративные системы без покупки собственного оборудования. А если вы не хотите погружаться в технические вопросы, команда Itentis возьмет вашу IT-инфраструктуру на комплексное обслуживание. Ищете надежную площадку для корпоративных систем? Обращайтесь в Itentis Cloud — подберем решение под ваши задачи. ☁️ Зарабатывайте вместе с Itentis Cloud! Один из наших партнеров, системный администратор, начал с переноса нескольких клиентов в облако, а теперь получает 70–100 тыс. руб. ежемесячно на партнерской комиссии. Подключайте и своих клиентов к Itentis Cloud, получайте процент от их расходов на инфраструктуру и увеличивайте доход. Первые 14 дней использования облака бесплатно. Подробнее — в партнерской программе

Открыть в Telegram

Шпаргалка по Kubernetes 1. Основные понятия 🔘Pod – наименьшая единица развертывания, содержит один или несколько контейнеров. 🔘Deployment – контроллер, который управляет репликами Pod’ов и их обновлением. 🔘Service – абстракция, предоставляющая доступ к Pod’ам (ClusterIP, NodePort, LoadBalancer). 🔘ConfigMap – хранит конфигурационные данные в виде ключ-значение. 🔘Secret – безопасное хранилище для конфиденциальных данных (пароли, токены). 🔘PersistentVolume (PV) – абстракция для хранения данных. 🔘PersistentVolumeClaim (PVC) – запрос на использование хранилища (PV). 🔘Namespace – логическое разделение ресурсов в кластере. 🔘Ingress – объект, предоставляющий доступ к сервисам внутри кластера через HTTP/HTTPS. 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: 80 Deployment 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: 80 Service (NodePort) apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 80 nodePort: 30080 type: NodePort Ingress 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: 80 4. Полезные команды 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 # Последние события 📲 Мы в MAX #devops #девопс Подпишись 👉@i_DevOps

Открыть в Telegram

Поднимаем кластер 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

Открыть в Telegram

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

Открыть в Telegram

Комментарии

0

Комментарии пишут вошедшие — так видно, кто автор.

Войти

Комментариев пока нет

Будьте первым, кто расскажет о канале другим.

Пожаловаться на канал

Расскажите, что не так: модератор проверит канал и примет решение. Подпись не нужна, но почту можно оставить — тогда ответим.

Причина Что не так (необязательно) Почта для ответа (необязательно)
Открыть в Telegram