Держите годную статью
О чём она:
• Wasm может стать жизнеспособной альтернативой контейнерам, если создаст свою экосистему или станет частью экосистемы Docker и Kubernetes.
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3🌚2🔥1
Отличное видео, в нём говорится про:
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2🤔1
Схема взаимодействия контейнерных технологий в рамках работы с привычными инструментами может быть представлена так:
podman
с помощью Libpod API обращается к библиотеке libpod
, которая вызывает низкоуровневый container runtime
(по умолчанию утилиту runc
)containers/podman
Podman Commands
docker
с помощью Docker API вызывает сервис dockerd
docker/cli
Docker CLI reference
Docker architecture
Docker API
dockerd
вызывает сервис containerd
Dockerd reference
containerd
вызывает низкоуровневый container runtime
(по умолчанию утилиту runc
)containerd/containerd
Containerd Scope and principles
kubelet
с помощью протокола CRI вызывает сервис container runtime
(например, containerd
или crio
)Container Runtime Interface
Container Runtimes
CRI: the Container Runtime Interface
containerd
вызывает низкоуровневый container runtime
(по умолчанию runc
)Containerd CRI
cri-o
вызывает низкоуровневый container runtime
(по умолчанию runc
)cri-o/cri-o
container runtime
(по умолчанию runc
):runc
с помощью библиотеки libcontainer
создает контейнер по runtime-spec
, взаимодействуя с подсистемами ядра Linux – пространствами имен (namespaces
) и контрольными группами (cgroups
)opencontainers/runc
runc man
opencontainers/runc/libcontainer
crun
создает контейнер по runtime-spec
, взаимодействуя с подсистемами ядра Linux – пространствами имен (namespaces
) и контрольными группами (cgroups
)containers/crun
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4🔥2
runc
1.1.12. В runtime LXC
, crun
и youki
, альтернативных runc
, проблема не проявляется.Dockerfile
. Уязвимость также может быть эксплуатирована в случае запуска в контейнере процессов командой runc exec
через привязку рабочего каталога к пространству имён хостового окруженияrunc
выполняется закрытие файловых дескрипторов при помощи флага O_CLOEXEC
. Однако, после последующего выполнения функции setcwd()
остаётся открытым файловый дескриптор, указывающий на рабочий каталог и продолжающий оставаться доступным после запуска контейнера. Предложено несколько базовых сценария атаки на хост-окружение, используя оставшийся файловый дескриптор"/proc/self/fd/7/"
, что приведёт к привязке к процессу pid1
в контейнере рабочего каталога, находящегося в пространстве монтирования хост-окружения. Таким образом, в образе контейнера можно настроить запуск "/proc/self/fd/7/../../../bin/bash"
и через выполнение shell-скрипта перезаписать содержимое "/proc/self/exe"
, которое ссылается на хостовую копию /bin/bash
.@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3❤2
Неплохая статья о том, какую топологию может иметь кластер Apache Kafka при межрегиональной репликации по нескольким ЦОД и как это реализовать.
Плюс описывается, чем брокеры-наблюдатели отличаются от подписчиков в Confluent Server и при чем здесь конфигурация подтверждений acks в приложении-продюсере.
Для репликации в нескольких регионах кластер Kafka может иметь следующую топологию:
Преимущество растянутого кластера в том, что он сохраняет смещения, а также обеспечивает быстрое аварийное восстановление и автоматическое переключение клиента при сбое без дополнительного кода.
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🔥2
Временами работа с контейнерами может казаться чем-то непостижимым и удивительным. В хорошем смысле для тех, кто понимает как устроено внутри, и в ужасающем - для тех, кто этого не понимает.
Если вы уже Docker-гуру, то знаете, что контейнеры - это просто изолированные и ограниченные процессы Linux, что образы на самом деле не нужны для запуска контейнеров, и что, наоборот, для создания образа нам, возможно, потребуется запускать контейнеры.
Также неплохо бы разобраться с работой сети в контейнерах. Для этого в статье освещаются такие вопросы:
Параллельно в статье строится контейнерная сеть с одним хостом с нуля при помощи стандартных инструментов Linux.
В общем, отличная статья, рекомендую)
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥2🥰1
⚡️ ИИ-самоучитель Learn Anything - новый идеальный инструмент для освоения любых навыков.
Нейронная сеть преобразует абстрактные желания в структурированный учебный план, предоставляя статьи, руководства и видеоуроки.
▪Github
@DevOPSitsec
Нейронная сеть преобразует абстрактные желания в структурированный учебный план, предоставляя статьи, руководства и видеоуроки.
▪Github
@DevOPSitsec
👍9❤2🔥1😁1
Использование Docker не обязательно должно быть принципом «все или ничего». Вы можете использовать Docker для развертывания и создания образов для продакшн, но вам не обязательно использовать его в разработке.
Каждая инструкция в вашем Dockerfile приводит к созданию слоя изображения. Docker использует слои для повторного использования работы. Слои кэшируются и их не нужно пересобирать, если:
— Все предыдущие слои не изменяются.
— В случае инструкции
COPY
: файлы/папки не изменяются.— В случае всех остальных инструкций: текст команды не изменяется.
Представьте, что у нас есть следующий фрагмент Dockerfile:
RUN mkdir /code
COPY code code/
RUN pip install code/requirements.txt
Каждый раз, когда что-либо в каталоге кода меняется, вторую строку необходимо запускать заново, а также каждую последующую строку.
Вот как мы могли бы избежать повторного запуска этапа установки при каждом изменении кода:
RUN mkdir /code
COPY code/requirements.txt code/
RUN pip install code/requirements.txt
COPY code /code
Во-первых, проверьте, не загружаете ли вы зависимости разработки, которые вообще не нужны вашему образу.
Ещё нужно помнить про поведение менеджера пакетов на уровне ОС. Например, `apt`который используется в Ubuntu и Debian, по умолчанию устанавливает «рекомендуемые» пакеты.
Вы можете избежать этого, добавив к
apt-get install
флаг --no-install-recommends
BuildKit — это новый механизм сборки образов, который можно использовать вместо стандартного Docker. С ним вы получаете больше параллелизма и эффективности кэширования, плюс новые интересные функции
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤3
Держите рекомендации по безопасной работе с образами и контейнерами
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤2🔥1
Ну и для того, что приложение предсказуемо работало и там, и там, мы используем Docker, конечно же.
Уверен, будет полезно, держите
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤3👎1
Полезная статья, рекомендую)
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4❤1👀1
Мы запустили профессиональную сертификацию по облачным технологиям!
Наша программа сертификации ориентирована на международные стандарты, поэтому теперь специалисты по облачным технологиям смогут официально подтвердить свои компетенции. Это поможет им получить конкурентное преимущество при трудоустройстве, ускорить развитие карьеры и претендовать на более высокую оплату. А для тех, кто работает с заказчиками напрямую, — получать более выгодные контракты.
Экзамен на сертификат Yandex Cloud Certified Engineer Associate проверяет знания и навыки в шести областях:
• Базовые облачные технологии
• Хранение и обработка данных
• DevOps и автоматизация
• Бессерверные вычисления
• Информационная безопасность
• Биллинг
🔍 О том, как устроена сертификация, что нужно сделать для подготовки и участия в первом экзамене, читайте по ссылке.
Наша программа сертификации ориентирована на международные стандарты, поэтому теперь специалисты по облачным технологиям смогут официально подтвердить свои компетенции. Это поможет им получить конкурентное преимущество при трудоустройстве, ускорить развитие карьеры и претендовать на более высокую оплату. А для тех, кто работает с заказчиками напрямую, — получать более выгодные контракты.
Экзамен на сертификат Yandex Cloud Certified Engineer Associate проверяет знания и навыки в шести областях:
• Базовые облачные технологии
• Хранение и обработка данных
• DevOps и автоматизация
• Бессерверные вычисления
• Информационная безопасность
• Биллинг
🔍 О том, как устроена сертификация, что нужно сделать для подготовки и участия в первом экзамене, читайте по ссылке.
👍4
Деплой проводится с помощью Open Source CLI-утилиты werf. Она помогает организовать полный цикл доставки приложений в Kubernetes и рассматривает Git как единый источник истины для состояния развёрнутого приложения.
Статья рассчитана на тех, кто только начинает свой путь в мире облаков и кластеризации, рекомендую)
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍3❤🔥1🔥1