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

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

@devops_star

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

По всем вопросам @evgenycarter
Subscribers
2.13K
Photos
309
Videos
328
Links
402

Showing posts older than #47 · Back to latest

Older Posts 11 shown
Post #46 1.02K
Как настроить 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
Post #45 1.25K
Основы 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
  • 👍 8
  • ❤ 2
Post #44 1.27K
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
Post #43 1.23K
Контейнеры и Mikrotik, чем еще можно нагрузить ваш девайс

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

источник

👉 @devops_star
  • 👍 3
Post #42 1.24K
Кто такой 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
Post #41 1.12K
Шпаргалка 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
  • 👍 8
  • 🔥 2
Post #40 1.27K
Шпаргалка 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
  • 👍 11
Post #39 1.09K
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
  • 👍 4
Post #28 1.28K
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
  • 👍 7
  • ❤ 1
Post #27 5.9K
Топ-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
  • 👍 4
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →