DevOps Star (Звезда Девопса)
2.08K subscribers
187 photos
166 videos
14 files
227 links
Devops, Linux, SRE, Kubernetes, Сисадмин, Девопс, Python, JS, Java, Git, IT канал, программирование, безопасность, ИТ, Sysadmin
加入频道
Шпаргалка 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
Media is too big
VIEW IN TELEGRAM
Кто такой 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
👍8
Media is too big
VIEW IN TELEGRAM
Контейнеры и Mikrotik, чем еще можно нагрузить ваш девайс

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

источник

👉 @devops_star
👍3
Media is too big
VIEW IN TELEGRAM
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
👍11
Media is too big
VIEW IN TELEGRAM
Основы 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
👍82
Как настроить 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
👍7
Основные команды Docker

Рассмотрим систему управления контейнерами под названием Docker. Ознакомимся с базовыми принципами ее работы, а также подробно рассмотрим основные команды, необходимые для управления Docker и ее составляющими.

https://telegra.ph/Osnovnye-komandy-Docker-09-24

👉 @devops_star
👍3👎1🤬1
DevOps_Culture_and_Practice_with_OpenShift_Deliver_continuous_business.pdf
124.2 MB
DevOps Culture and Practice With OpenShift
Mike Hepburn, Time Beatie, Noel OConnor, Donal Spring (2021)

Have you ever wondered what the secret is to a successful DevOps transformation? What is it made up of? Where do you start? If only someone made the recipe and the ingredients available, perhaps everyone could try it out in their kitchens. We are part of the Red Hat Open Innovation Labs and Services teams, and it is in our DNA to share with you what we have learned in our kitchens and with our customers while taking these journeys to be more successful at DevOps

👉 @devops_star
🔥3👍1😐1
Как определить DNS в контейнерах Docker

Когда вы развертываете контейнер в сети, если он не может найти DNS-сервер, определенный в файле /etc/resolv.conf, по умолчанию он будет использовать DNS, настроенный для хоста.

Это может быть хорошо и удобно для определенных ситуаций.

Но что если (возможно, по соображениям безопасности) вы не хотите, чтобы ваши контейнеры использовали тот же DNS, что и хосты.

https://telegra.ph/Kak-opredelit-DNS-v-kontejnerah-Docker-09-26

👉 @devops_star
👍4
Jeffery_D_Smith_Operations_Anti_Patterns,_DevOps_Solutions_Manning.pdf
6.3 MB
Operations Anti-Patterns, DevOps Solutions
Автор: Jeffery D. Smith (2020)

В своей книге автор показывает, как реализовывать методологию DevOps в несовершенных средах, в которых работают большинство разработчиков. Отчасти учебник по технологиям, отчасти справочное руководство и отчасти справочник по психологии - эта книга показывает реалистичные способы внедрения DevOps в вашу команду, когда у вас нет гибкости для радикальных изменений в организационной структуре.

👉 @devops_star
👍4
3 довольно неизвестных команды Docker, которые помогут вам в самых различных ситуациях

Если вы какое-то время используете Docker, у вас, вероятно, уже есть адаптированный для вас простой и эффективный рабочий процесс, который включает в себя некоторые из ваших любимых команд Docker (если это технически правильные подкоманды).

https://telegra.ph/3-dovolno-neizvestnyh-komandy-Docker-kotorye-pomogut-vam-v-samyh-razlichnyh-situaciyah-09-26

👉 @devops_star
👍5🫡1
Naml - это инструмент управления конфигурацией для описания конфигурации Kubernetes в Go. Имеет хороший инструмент для преобразования YAML в Go.


Особенности
- Создавайте приложения с помощью 🎉 Go вместо YAML.
- Используйте компилятор Go для проверки синтаксиса.
- Пишите реальные тесты 🤓 на Go для проверки и валидации ваших развертываний.
- Тестируйте свои приложения в Kubernetes с использованием kind.
- Определяйте пользовательскую логику установки. Что произойдет, если она не сработает? А что насчет логических проблем во время выполнения?
- Определяйте пользовательские реестры приложений. Множество приложений одного типа? Нет проблем.
- Используйте последний клиент (тот же клиент, который использует остальная часть Kubernetes).

https://github.com/kris-nova/naml

👉 @devops_star
👍3
Как подключиться к контейнеру Docker по ssh

После того, как у вас появился контейнер Docker, работающий в системе Linux, одна из вещей, которые вам, вероятно, потребуется сделать, – это запустить команды внутри контейнера.

https://telegra.ph/Kak-podklyuchitsya-k-kontejneru-Docker-po-ssh-09-26

👉 @devops_star
👍8🤨3
Вопросы на собеседований

Напишите простой демон для systemd, который будет поддерживать работу процесса и перезапускаться в случае выхода из строя процесса.

[Unit]
Description=Test_service
After=postgres.service
StartLimitBurst=5
StartLimitIntervalSec=10
[Service]
Type=simple
Restart=always
RestartSec=1
User=centos
ExecStart=/usr/bin/env python /app/server.py
[Install]
WantedBy=multi-user.target


👉 @devops_star
👍5
Nigel Poulton - The Kubernetes Book.pdf
5.7 MB
The Kubernetes Book
Автор: Nigel Poulton (2020)

Kubernetes - это популярная технология для управления и развёртывания контейнеризированных приложений, в
основном используется в связке с другой популярной технологией - Docker. Это руководство предназначено для опытных разработчиков, уже использовавших Docker и работающих с высоконагруженными приложениями. В книге множество примеров, советов и рецептов по решению сложных ситуаций.

В книге рассматриваются следующие темы:
✔️Установка Kubernetes;
✔️Основные принципы работы и использования;
✔️Работа с контейнерами;
✔️Сервисы;
✔️Деплой приложения с помощью Kubernetes и многое другое.

👉 @devops_star
👍3