DevOps Star (Звезда Девопса)
2.08K subscribers
191 photos
166 videos
14 files
232 links
Devops, Linux, SRE, Kubernetes, Сисадмин, Девопс, Python, JS, Java, Git, IT канал, программирование, безопасность, ИТ, Sysadmin

По всем вопросам @evgenycarter
加入频道
Шпаргалка по kubectl

Автодополнение ввода для Kubectl


source <(kubectl completion bash) # настройка автодополнения в текущую сессию bash, предварительно должен быть установлен пакет bash-completion .
echo "source <(kubectl completion bash)" >> ~/.bashrc # добавление автодополнения autocomplete постоянно в командную оболочку bash.


Вы также можете использовать короткий псевдоним для kubectl, который можно интегрировать с автодополнениями:

alias k=kubectl
complete -F __start_kubectl k



https://kubernetes.io/ru/docs/reference/kubectl/cheatsheet/

👉 @devops_star
👍3
Лекторий по SRE

Примеры сбоев
Что такое SRE
Цели мониторинга, логи и метрики
Детектирование проблем до и во время сбоя
SLA, SLO, SLI
Причины сбоев
Устранение сбоев
Постмортемы
Приемы уменьшения количества сбоев
Устойчивый к сбою код

источник

👉 @devops_star
👍6
Docker справочник cli

docker images — показать все локальные образы docker
docker rmi [-f] <id|label> — удалить образ c локальной машины
docker rmi -f $(docker images -q) — удалить все докер образы
docker build [-t <label>] <path> — построить образ на основе докерфайла
docker run [-dt] [--name <name>] [-v <path:path>] [-p <port:port>] [--...] <id|label> [cmd] — запустить образ в контейнере c cmd-командой (необязательно)
-d — в фоновом режиме
-t — прикрепляет к контейнеру терминал
-i — перенаправляет ввод/вывод на текущий терминал
--name — явно указать имя контейнера, по которому можно будет обращаться к нему (иначе будет сгенерировано рэндомно)
-p <external_port:internal_port> — проброс портов
-v --volume <external_path:internal_path> — монтирует папки хоста в контейнер
--rm — удаляет контейнер после завершения работы
--memory <n> — позволяет указать количество ОЗУ, доступной контейнеру
-P — пробрасывает все порты контейнера в хост-систему
--expose — позволяет пробросить несколько портов из контейнера в хост-систему
-e <"FOO=bar"> — добавляет переменную окружения в контейнер
docker ps [-a] — показать все запущенные [существующие] докер контейнеры
`docker ps -q | xargs docker stats —no-stream` — посмотреть ресурсы, потребляемые запущенными контейнерами
docker stop <name> — останавливает указанный образ (с сохранением данных)
docker kill <name> — то же самое без сохранения данных
docker rm <name> — удаляет указанный контейнер
docker attach <name> — подключиться к выбранному докер-контейнеру
docker exec [-ti] <name> <cmd> — выполняет команду в докер-контейнере
docker push <imagename> — отправить образ в удаленный реестр
docker ps -q | xargs docker stats --no-stream — посмотреть нагрузку на процессор и память каждого из контейнеров
docker stats — похожа на предыдущую команду, но более короткая
docker info --format '{{.LoggingDriver}}' — посмотреть используемый по умолчанию лог драйвер (json-file)
docker logs [<container_name>] [-f --tail 100] — показать логи [конкретного контейнера] в терминал [последние 100 строк]
docker inspect --format='{{.LogPath}}' <containername> -показать, где хранятся логи для конкретного контейнера

👉 @devops_star
👍5
Как работает Docker

👉 @devops_star
👍4
Media is too big
VIEW IN TELEGRAM
Нюансы Kubernetes

Контейнеризация и, в частности, Kubernetes – стандарт для запуска приложений в бою. Это несложно, но есть нюансы. Вместе с Андреем Новиковым из Evil Martians обсуждаем, что нужно сделать, чтобы приложение работало быстро и надежно. Смотрим, как работают requests и limits на ресурсы, чем должны отличаться liveness и readiness пробы и на что следует обращать внимание в мониторинге.

👉 @devops_star
👍42
Задаём порядок деплоя ресурсов в Kubernetes с помощью werf/Helm

При деплое в Kubernetes часто требуется выкатывать ресурсы в определённом порядке, а иногда и дожидаться готовности сторонних ресурсов. Например, сначала нужно запустить БД, дождаться создания динамического Secret’а сторонним оператором, потом выполнить инициализацию/миграции БД, а уже затем запустить само приложение.

Рассмотрим, как решать такие задачи с помощью Helm, а также сравним с более быстрым и удобным вариантом, который предлагает Open Source-утилита werf.

https://habr.com/ru/companies/flant/articles/682804/

👉 @devops_star
👍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_star
👍5🫡1
Grafana OnCall — Open Source хаб для алертов и инцидентов

Если кратко, OnCall — это инструмент, который поможет организовать надежные оповещения/реагирование на инциденты в команде, соблюдать SLA и не просыпаться ночью от звонков.

OnCall — новичок в мире Open Source, но уже совсем не новичок как продукт. Он начался как отдельный SaaS под названием Amixr. IO несколько лет назад. Потом Amixr. IO приобрела Grafana Labs и интегрировала в свою экосистему. И вот недавно, наконец, мы смогли выложить исходный код OnCall в открытый доступ 🎉 А это значит, что он стал доступен большему кругу пользователей — и тем, кто работает в инфраструктуре без интернета, и тем, кто просто любит Open Source. Далее

https://habr.com/ru/articles/688794/

👉 @devops_star
👍5🫡1
Media is too big
VIEW IN TELEGRAM
Реальное собеседования DevOps инженер Junior++

Недавно мне знакомый прислал свое DevOps собеседование. Он DevOps инженер уровня Junior++. Опыт работы больше года. До этого работал сисадмином 2 года. Пришлось изменить голоса и убрать видео чтобы участников собеседования никто не узнал. А так же не узнал в какую компанию собеседовался Девопс инженер.

источник

👉 @devops_star
👍2
Haskell Dockerfile Linter

Интеллектуальный распаковщик Dockerfile, помогающий создавать лучшие образы Docker. Линтер разбирает Docker-файл на AST и выполняет правила поверх AST. Он опирается на поддержку ShellCheck для проверки Bash-кода внутри инструкций RUN.

https://github.com/hadolint/hadolint

👉 @devops_star
👍3