Kubernetes поддерживает более 30 контроллеров поступления. После Авторизация и Аутентификация , Контроллеры приема являются последним шагом в 3-ступенчатом процессе до того, как Kubernetes сохранит ресурс в и т.д. (Постоянный и высокодоступный хранилище значений ключей, используемый в качестве хранилища поддержки Kubernetes для всех данных кластера). Некоторые соответствующие контроллеры поступления для обеспечения бегающих контейнеров:
- PodsecurityPolicy : Этот вариант реализует поступление POD на основе контекста безопасности и доступных политик.
- DenyescalingExec : Когда хакеры открывают оболочки в привилегированных контейнерах, они имеют доступ к хосту. Эта опция гарантирует, что
исполнительныйиПрикрепитьКоманды из привилегированных контейнеров заблокированы. - Всегда пауллевс : Несмотря на то, что существует преимущество в производительности для хранения и повторного использования изображения на узле, гигиена и гарантия того, что вы всегда запускаете актуальные изображения контейнеров, могут быть важны. Поскольку уязвимости исправляются вверх по течению, вытягивание изображений гарантирует, что последнее восстановление всегда загружается.
- Limitrange и Resourcequota : Чтобы предотвратить отрицание атак на обслуживание, и любое нересство несанкционированных процессов из установленных стручков, этот вариант наблюдает входящие запросы на нарушение этих пределов.
- Noderestriction : Это ограничивает разрешения каждого
Кубелет, гарантируя, что он может изменить только стручки, которые связаны с ним, и свой собственный объект узла.
Noderestriction
Этот контроллер поступления ограничивает Узел и POD Объекты a Кубелет может изменить. Чтобы быть ограниченным этим контроллером поступления, Кубелет должен использовать учетные данные в Система: узел Группа, с именем пользователя в форме Система: Узел: Анкет Такой Кубелет будет разрешено только изменять свой собственный Узел API объект.
Noderestriction плагин входного билета предотвращает Кубелет от удаления его Узел API объект и обеспечивает соблюдение Кубелет Модификация ярлыков под kubernetes.io/ или k8s.io/ Префиксы следующим образом:
- Позволяет
КубелетЧтобы добавить/удалить/обновить эти этикетки и префиксы метки: - Предотвращает
Кубелетот добавления/снятия/обновления метки с помощьюnode-restriction.kubernetes.io/префикс. Этот префикс этикетки зарезервирован для администраторов, чтобы пометить ихУзелОбъекты для целей изоляции рабочей нагрузки иКубелетне будет разрешено изменять метки с помощью этого префикса.
Использование любых других ярлыков под kubernetes.io или k8s.io Префиксы Kubelet зарезервированы и могут быть запрещены или разрешены Noderestriction Входной плагин в будущем.
Будущая версия может добавить дополнительные ограничения для обеспечения Кубелет иметь минимальный набор разрешений, необходимых для правильной работы.
Они нужны нам?
Многие расширенные функции в Kubernetes требуют включения контроллера входного билета для правильной поддержки этой функции. В результате, сервер API Kubernetes, который не настроен должным образом с правильным набором контроллеров входных средств является неполным сервером и не будет поддерживать все ожидаемые функции.
Включите контроллер входного билета
Флаг сервера API Kubernetes enable-admission-plugins принимает запятую список плагинов управления поступлением, чтобы вызвать перед изменением объектов в кластере. Например, следующая командная строка включает Namespacelifecycle и Limitranger Плагины управления входом:
kube-apiserver --enable-admission-plugins=NamespaceLifecycle,LimitRanger
Примечание: В зависимости от того, как развертывается ваш кластер Kubernetes, и как начинается сервер API, вам может потребоваться применять настройки по -разному. Например, вам, возможно, придется изменить Systemd Файл блока, если API развернут как Systemd оказание услуг; Хотя вам, возможно, придется изменить манифестный файл для сервера API, если Kubernetes развернут самостоятельным образом Анкет
Рекомендуемый набор контроллеров приема
Для Kubernetes версии 1.10 и позже рекомендуется запустить набор контроллеров входных билетов, используя -Флаг-Адмиссия-Плугинс Анкет
Для Kubernetes 1.9 и ранее рекомендуется запустить набор контроллеров входных билетов, используя -Адмиссия-контроль флаг.
Оригинал: «https://dev.to/appfleet/kubernetes-admission-controllers-54cc»