автордың кітабынан сөз тіркестері Безопасность контейнеров. Фундаментальный подход к защите контейнеризированных приложений
рекомендую заглянуть в книгу Kubernetes Security издательства O’Reilly (https://oreil.ly/Of6yK)
Команда iplinkadd сообщает, что мы хотим добавить сетевое подключение.
Для этого, после того как будет создана корневая файловая система для контейнера, создается каталог target контейнера, после чего производится связанное монтирование каталога source хоста к этому каталогу target.
• Время загрузки виртуальной машины на несколько порядков больше, чем у контейнера. В конце концов, запуск контейнера означает просто запуск нового процесса Linux, а не полномасштабную загрузку и инициализацию виртуальной машины. Относительно медленная загрузка виртуальных машин означает медленную масштабируемость, не говоря уже о важности быстрой загрузки в случае частой поставки нового кода, например несколько раз в день. (Впрочем, обсуждаемая в разделе «Виртуальная машина Firecracker» на с. 144 технология виртуализации Firecracker от Amazon обеспечивает виртуальные машины с очень быстрой загрузкой, порядка 100 миллисекунд на момент написания данной книги.)
• Благодаря контейнерам разработчики могут «создать один раз, выполнять где угодно» быстро и эффективно. Можно, конечно, хотя это и займет немало времени, собрать образ виртуальной машины целиком и запускать его на своем ноутбуке, но данный подход не стал чрезмерно популярным среди разработчиков, в отличие от контейнеров.
• В современных облачных средах при аренде виртуальной машины выбирается CPU и объем оперативной памяти, за которые необходимо вносить арендную плату вне зависимости от того, какая часть этих ресурсов фактически используется работающим в ней кодом приложения.
• Каждая виртуальная машина влечет накладные расходы по выполнению всего ядра целиком. Благодаря совместному использованию ядра контейнеры гораздо рациональнее задействуют ресурсы и демонстрируют высокую производительность.
В Kubernetes с помощью пространств имен (namespaces) кластер компьютеров можно разбить на части, используемые различными людьми, командами или приложениями.
«Пространство имен» — термин с несколькими значениями. В Kubernetes пространство имен представляет собой высокоуровневую абстракцию, которая предназначена для разбиения ресурсов кластера с возможным применением к ним различных режимов управления доступом. В Linux пространство имен — низкоуровневый механизм изоляции ресурсов машины, доступных процессу. Более подробно эти пространства имен будут описаны в главе 4.
Используйте механизмы управления доступом на основе ролей (role-based access control, RBAC), чтобы указать, какие пользователи и компоненты могут обращаться к тем или иным пространствам имен Kubernetes. Подробная инструкция по выполнению этого выходит за рамки данной книги. Хотелось бы лишь упомянуть, что RBAC Kubernetes позволяет контролировать только действия, производимые через API Kubernetes. Контейнеры приложений в модулях Kubernetes, работающих на одном хосте, защищены друг от друга лишь с помощью изоляции контейнеров, как описано в данной книге, даже если находятся в разных пространствах имен. Если злоумышленнику удастся выйти за рамки контейнера на хост, то границы пространств имен Kubernetes ни на йоту не изменят его возможностей влиять на другие контейнеры.
