ru
Feedback
DevOps Star (Звезда Девопса)

DevOps Star (Звезда Девопса)

Открыть в Telegram

Devops, Linux, SRE, Kubernetes, Сисадмин, Девопс, Python, JS, Java, Git, IT канал, программирование, безопасность, ИТ, Sysadmin По всем вопросам @evgenycarter

Больше
2 148
Подписчики
Нет данных24 часа
-17 дней
+1030 день
Архив постов
Как настроить Docker, чтобы он переподнимался при ошибках и перезапуске хоста Настройка политики перезапуска Docker контейнеров Для начала стоит добавить параметр --restart=always к команде запуска Docker: docker run --restart=always -d {{ name }} Политика перезапуска Docker-контейнера устанавливается параметром --restart – именно он указывает как поступать с контейнером, который завершил свою работу / упал с ошибкой / при старте системы. Возможные варианты: - no – не перезапускать docker-контейнер; - on-failure – рестартануть контейнер, в случае если entry point процесс завершился с ненулевым кодом; - always – перезапускать всегда, вне зависимости от того, что случилось с docker-контейнером. Также можно установить максимальное количество попыток перезапустить контейнер при использовании политики перезапуска on-failure. По умолчанию Docker будет постоянно пытаться перезапустить. docker run --restart=always {{ name }} А здесь Docker попытается только 10 раз: docker run --restart=on-failure:10 {{ name }} Если контейнер поднимется хотя бы и завершится с нулевым кодом возврата, то счётчик начнётся с начала. Работает это только с политикой on-failure. 👉 @devops_star

Основы Docker. Большой практический выпуск 0:00:00 Вступление 0:02:22 Что такое Docker? 0:16:29 Простой пример Hello World 0:31:34 Пример WEB приложения 0:35:55 Работаем с портами 0:41:10 Что такое docker volume 0:46:54 Поднимаем временную базу данных 0:55:26 Разворачиваем реальный проект 1:00:35 Что такое docker-compose 1:05:23 Создаем виртуальную машину (подробно) 1:08:25 Ставим Docker и Docker compose на Linux 1:10:17 Delpoy проекта с ипользованием GitHub 1:16:50 Delpoy проекта с ипользованием DockerHub источник 👉 @devops_star

DevOps Engineering курс для начинающих 16:22 -TDD 20:33 - CI 24:44 - CI Setup 34:44 - Code Coverage 46:55 - Linting 57:33 - Ephemeral Environments 1:10:55 - VM vs Container 1:23:22 - Rolling Deployments 1:28:33 - Blue Green Deployments 1:45:33 - Auto Scaling 1:58:44 - Service Discovery 2:02:22 - Log Aggregation 2:11:11 - Vital Production Metrics 👉 @devops_star

Контейнеры и Mikrotik, чем еще можно нагрузить ваш девайс Расширение возможностей в приборах латвийского производителя сетевого оборудования практически не знает границ, но и сейчас их смогли широко раздвинуть при помощи введения дополнительного функционала - контейнеров. Во время доклада пообщаемся о том, как это все работает и как нам могут быть полезны контейнеры. Обсудим подводные и надводные камни. источник 👉 @devops_star

Кто такой DevOps-инженер // Что должен уметь, какие задачи, сколько платят Кто такой этот ваш DevOps-инженер? Чем он занимается, какие задачи? Что должен уметь девопс-инженер? Какие бывают Девопс-инженеры? За что им столько платят, а главное — сколько платят? Всё это я разбираю в видео. ⏱️ Таймкоды: 0:00 Вступление 1:00 Цикл разработки по DevOps 2:14 Какие бывают DevOps-инженеры 2:37 И швец, и жнец 4:40 Делаешь что-то одно 6:25 Общие плюсы и минусы профессии 8:15 Программисты и ChatGPT забирают работу 10:00 Задачи DevOps-инженера 11:30 Формы развития навыков, I, T-shaped 12:34 Софт-скиллы DevOps-инженера 13:25 Хард-скиллы DevOps-инженера 15:12 Кто становится DevOps-инженером 15:56 За что нам платят деньги 17:00 Смотрим вакансии и анализ зарплат источник 👉 @devops_star

Шпаргалка docker Best Practice 🟢Следуй принципу минимальных привилегий, процессы в контейнере никогда не должны выполняться из под рута, кроме редких случаев, нужно добавлять команду user и менять юзера на non-root. 🟢Не привязываться к UID, он динамичен, можно записать во временную папку UID. 🟢Сделать все исполняемые файлы владельцем рута, чтобы никто не изменил исполняемые файлы, а пользователю достаточно только права на выполнение. 🟢Чем меньше компонентов и открытых портов, тем меньше поверхность для атак. 🟢Использовать multistage для промежуточного контейнера для компиляции всего, зависимостей, временных файлов, образ может весить на треть меньше. 🟢Distroless с чистого листа, использовать минимальный набор пакетов, например избавиться от образа Ubuntuи выбрать Debian-base, наши контейнеры содержат уязвимости изначального образа, чекать это. 🟢Нужно обновлять всё до того, как выйдет из под поддержки. 🟢Оставлять только те порты, которые реально нужны, избегать 22 и 21 3389 (ssh & ftp & rdp). 🟢Никогда не помещайте логины/пароли в команде, в докерфайлах, переменных, docker secret или любой другой менеджер секретов ok. 🟢Не использовать ADD, только COPY (когда используем точку - это воркдир где лежит докерфайл). 🟢При сборке используйте .dockerignore чтобы убрать сенситив дату, это как .gitignore. 🟢При сборке вначале команд лучше кешировать команду ран, а потом скопировать исходные данные. 🟢Метадату записать. 🟢Использовать тесты типа Linter и сканеры образов для CI. 🟢Время от времени делать prune, докер любит много места жрать 👉 @devops_star

Шпаргалка docker Install DOCKER curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh Info and Registry docker info - Информация обо всём в установленном Docker docker history - История образа docker tag - Дать тег образу локально или в registry docker login - Залогиниться в registry docker search - Поиск образа в registry docker pull - Загрузить образ из Registry себе на хост docker push - Отправить локальный образ в registry Container Management docker ps -а - Посмотреть все контейнеры docker start container-name - Запустить контейнер docker kill/stop container-name - Убить (SIGKILL) /Остановить (SIGTERM) контейнер docker logs --tail 100 container-name - Вывести логи контейнера, последние 100 строк docker inspect container-name - Вся инфа о контейнере + IP docker rm container-name - Удалить контейнер (поле каждой сборки Dockerfile) docker rm -f $(docker ps -aq) - Удалить все запущенные и остановленные контейнеры docker events container-name docker port container-name - Показать публичный порт контейнера docker top container-name - Отобразить процессы в контейнере docker stats container-name - Статистика использования ресурсов в контейнере docker diff container-name - Изменения в ФС контейнера Images docker build -t my_app . - Билд контейнера в текущей папке, Скачивает все слои для запуска образа docker images / docker image ls - Показать все образы в системе docker image rm / docker rmi image - Удалить image docker commit <containerName/ID> lepkov/debian11slim:version3- Создает образ из контейнера docker insert URL - вставляет файл из URL в контейнер docker save -o backup.tar - Сохранить образ в backup.tar в STDOUT с тегами, версиями, слоями docker load - Загрузить образ в .tar в STDIN с тегами, версиями, слоями docker import - Создать образ из .tar docker image history --no-trunc - Посмотреть историю слоёв образа docker system prune -f - Удалит все, кроме используемого (лучше не использовать на проде, ещё кстати из-за старого кеша может собираться cтарая версия контейнера) Run docker run -d -p 80:80 -p 22:22 debian:11.1-slim sleep infinity (--rm удалит после закрытия контейнера, --restart unless-stopped добавит автозапуск контейнера) - Запуск контейнера интерактивно или как демона/detached (-d), Порты: слева хостовая система, справа в контейнере, пробрасывается сразу 2 порта 80 и 22, используется легкий образ Debian 11 и команда бесконечный сон docker update --restart unless-stopped redis - добавит к контейнеру правило перезапускаться при закрытии, за исключением команды стоп, автозапуск по-сути docker exec -it container-name /bin/bash (ash для alpine) - Интерактивно подключиться к контейнеру для управления, exit чтобы выйти docker attach container-name - Подключиться к контейнеру чтоб мониторить ошибки логи в реалтайме 👉 @devops_star

Kubernetes Tutorial for Beginners [FULL COURSE in 4 Hours] 0:00 - Course Overview 2:18 - What is K8s 5:20 - Main K8s Components 22:29 - K8s Architecture 34:47 - Minikube and kubectl - Local Setup 44:52 - Main Kubectl Commands - K8s CLI 1:02:03 - K8s YAML Configuration File 1:16:16 - Demo Project: MongoDB and MongoExpress 1:46:16 - Organizing your components with K8s Namespaces 2:01:52 - K8s Ingress explained 2:24:17 - Helm - Package Manager 2:38:07 - Persisting Data in K8s with Volumes 2:58:38 - Deploying Stateful Apps with StatefulSet 3:13:43 - K8s Services explained 👉 @devops_star

jless — CLI-просмотрщик JSON с подсветкой синтаксиса 🔧 https://jless.io/ 👉 @devops_star

+9
Ansible На Русском Языке 1 - Автоконфигурирование для DevOps - Полный Курс на Простом Языке 2 - Установка на Ubuntu и CentOS 3 - Установка на Amazon Linux через PIP 4 - Подключение к серверам LINUX 5 - Подключение к серверам WINDOWS 6 - Правила создания файла Inventory 7 - Запуск Ad-Hoc Комманд 8 - Правила Формата YAML 9 - Перенос переменных в group_vars 10 - Первые Playbook 👉 @devops_star

Топ-10 опций команды docker run Консольная команда docker run имеет около сотни опций, в том числе -d, -i, -t, -v и -w. В данной статье рассмотрим десять наиболее популярных опций, с которыми наверняка придется работать. Давайте разберемся! Пример команды с опциями, которые будут рассмотрены в данной статье: docker run \ --rm \ --detach \ --env KEY=VALUE \ --ip 10.10.9.75 \ --publish 3000:3000 \ --volume my_volume \ --name my_container \ --tty --interactive \ --volume /my_volume \ --workdir /app \ IMAGE bash Начнем с азов. Консольная команда docker run создает из docker-образа контейнер (точнее создает доступный для записи слой поверх слоев, содержащихся в docker-образе) и запускает его (выполняет указанную команду). В общем виде это выглядит так: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Команда docker run очень похожа на комбинацию команд docker create ... и docker start ..., подробнее о которых можно узнать в официальной документации. Топ-10 опций команды docker run в алфавитном порядке. --detach, -d - по умолчанию, docker-контейнер запускается присоединенным (attached) к стандартным потокам ввода-вывода. Параметр -d, --detach позволяет запускать контейнер в фоне и не выводить на экран содержимое потоков ввода-вывода. --entrypoint - устанавливает или переопределяет используемую по умолчанию команду (и параметры) из docker-образа. Подробнее о Docker ENTRYPOINT можно узнать здесь. --env, -e - устанавливает переменные окружения в формате пар КЛЮЧ=ЗНАЧЕНИЕ. Если у вас есть список переменных окружения в файле, тогда необходимо использовать опцию --env-file. --ip - назначает docker-контейнеру IP-адрес, например, --ip=10.10.9.75. --name - назначает docker-контейнеру имя (--name my-super-container). --publish, -p или --publish-all, -P - сопоставляет порт(ы) docker-контейнера порту(ам) на хост системе. Стоит отметить, что --publish-all откроет доступ к портам, описанным в Dockerfile с помощью директивы EXPOSE. --rm - автоматически удалить контейнер после завершения его работы (в том числе, при завершении с ошибкой). --tty, -t - назначает псевдо-TTY, подключенный к STDIN контейнера. Зачастую используется с опцией --interactive, -i - например, если вам нужно подключиться к оболочке (bash) внутри docker-контейнера для выполнения каких-то действий. --volume, -v - монтирование тома. Подробнее о томах можно почитать здесь. --workdir, -w - устанавливает рабочую директорию внутри docker-контейнера. Например, если вы скопировали некие файлы в папку app контейнера, то вполне разумно будет установить этот каталог в качестве рабочей директории. 👉 @devops_star

Что такое CI/CD? // Зачем и как работает Что такое CI/CD: простое объяснение для новичков про Continuous Integration, Continuous Delivery/Deployment. Они же - непрерывная интеграция и непрерывная доставка или развертывание. Что там за магия происходит под капотом, зачем это вообще придумали и какие цели преследуются? Расскажу про то, какие есть процессы внутри, как и где это запускается без привязки к конкретным инструментам вроде Gitlab и Jenkins. Про артефакты, Nexus, тест-гейты, агенты и раннеры. источник 👉 @devops_star

Выводим список установленных пакетов в Linux по дате Порой необходимо узнать когда тот или иной пакет был установлен в операц
Выводим список установленных пакетов в Linux по дате Порой необходимо узнать когда тот или иной пакет был установлен в операционной системе (например, в целях аудита). В данной статье рассмотрим как вывести список установленных пакетов в Linux, отсортированный по дате установки - давайте разберемся! https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10 👉 @devops_star

Как стать DevOps Инженером с Нуля, что учить и в каком порядке 00:00 – 1. Вступление 01:06 – 2. Всевозможные компетенции DevOps инженера 10:35 – 3. Кому проще стать DevOps 15:01 – 4. Что учить по минимуму и в каком порядке 30:04 – 4.1. Основы Network TCP/IP 31:36 – 4.2. Администрирование Windows 34:09 – 4.3. Основы Linux 35:54 – 4.4. Ansible 36:48 – 4.5. Git 37:37 – 4.6. GitHub 38:04 – 4.7. Jenkins 38:23 – 4.8. Docker+DockerHub 38:44 – 4.9. Cloud Platform AWS 42:10 – 4.10. CloudFormation + Terraform 43:25 – 5. Курс DevOps Engineering в JohnBryce, Израиль 49:12 – 6. Как стать профессиональным DevOps инженером 54:24 – 7. Эпилог 👉 @devops_star

Murex - bash-подобная среда оболочки и сценариев с расширенными возможностями, разработанными для обеспечения безопасности и производительности (например, более интеллектуальный инструментарий DevOps). https://github.com/lmorg/murex 👉 @devops_star

Практика DevOps: разворачиваем простое приложение на AWS Илия Карин демонстрирует развертывание простого приложения с не самой простой архитектурой на Amazon Web Services. Проходится весь процесс, который присущ вполне реальному проекту. 00:00 Знакомство с Илией Кариным. План действий. 01:56 Запускаем создание инфраструктуры на Amazon Web Services (AWS). 03:30 Переходим к Terraform - инструмента для описания инфраструктуры кодом. 04:37 Что такое Docker и Docker-Compose? Их сравнение. 08:53 Рассмотрение нашего стендового приложения (калькулятор Фибоначчи). 11:11 Архитектура приложения. 12:14 Локальное демо приложения. 16:28 Сверяем проделанное по шагам. Повторный запуск Terraform для исправления проблем. 19:38 Что такое Continuous Integration и Continuous Delivery (CI/CD)? Работа с Travis CI. Разнообразие CD-сервисов. 24:12 Окончание развертывания архитектуры на AWS. 28:31 Еще про CI/CD. Командная работа и пайплайн CI/CD. 29:42 Инфраструктура развернута на AWS. Вносим изменение и пушим его в Git. Подхват изменений Travis'ом и их развертывание. 36:34 Смотрим на наше приложение на AWS. Делаем еще изменение. 38:10 Проверяем инфраструктуру. Опасность снятия немалой суммы денег, если не обратить внимание! 40:23 Смотрим на результат последнего коммита. Тест успешно развернутого приложения. 👉 @devops_star

Стать DevOps-инженером в 2023 году: [Практическая дорожная карта] В этом подробном руководстве я расскажу о практической доро
Стать DevOps-инженером в 2023 году: [Практическая дорожная карта] В этом подробном руководстве я расскажу о практической дорожной карте становления DevOps-инженера, основанной на моем 10-летнем опыте работы в качестве DevOps-инженера в различных организациях. На современном ИТ-рынке сфера DevOps является одним из лучших вариантов для повышения заработной платы и карьерного роста ИТ-специалистов. Один из часто задаваемых мне вопросов: "Как стать инженером DevOps?". Многие утверждают (в том числе и я), что нет ничего похожего на "DevOps-инженера" или "DevOps-команду", потому что этого понятия не существует. Однако все в отрасли уже привыкли к термину "инженер DevOps", и если вы понимаете философию DevOps, то эти названия не имеют большого значения. Ближе к концу статьи я добавил различные команды, в которые может входить инженер DevOps. https://devopscube.com/become-devops-engineer#devops-engineer-roadmap #devops #девопс 👉 @devops_star

Зачем нужен и как работает Docker? Чтобы научиться работать с докером, важно понимать принципы его работы. В этом видео вы разберете зачем вообще нужен Docker, почему он стал популярным, а также в чем его сила и слабые стороны. #devops #Docker 👉 @devops_star

Куда уходит время? Боремся за миллисекунды в Kubernetes Меня зовут Вова, я разрабатываю observability-платформу в Ozon. Как-т
Куда уходит время? Боремся за миллисекунды в Kubernetes Меня зовут Вова, я разрабатываю observability-платформу в Ozon. Как-то раз в наш уголок на 42 этаже заглянули коллеги — и поделились наблюдением. Если открыть рядом графики времён запросов и ответов двух живущих в Kubernetes и общающихся между собой микросервисов, то иногда можно наблюдать большую разницу в высоких квантилях: клиент считает, что один ответ из сотни ему приходит за сто миллисекунд, сервер же говорит, что успевает ответить за десять. Куда ушло время? Можно ли его вернуть? Сегодня расскажу о том, с какими граблями может столкнуться микросервис, живущий в типичной инсталляции Kubernetes. https://habr.com/ru/companies/ozontech/articles/662758/ #devops #Kubernetes 👉 @devops_star

Что должен знать DevOps инженер junior? Как стать DevOps инженером? Какими минимальными навыками для этого нужно обладать? На эти вопросы автор отвечает в данном видео. Вы узнаете о фундаменте знаний для DevOps инженера. #devops 👉 @devops_star