Multus Admission Controller#

Network Attachment Definition (NAD) Admission Controller* представляет собой инструмент, который используется для проверки ресурсов, определенных согласно спецификации Custom Resource Definition (CRD) от Network Plumbing Working Group. Предназначен для обеспечения соответствия создаваемых пользователем ресурсов Network Attachment Definition требованиям и форматам. Это специфический контроллер, который обеспечивает соблюдение определенных стандартов при создании сетевых ресурсов.

Multus Admission Controller предоставляет функции:

  1. Валидация ресурсов: проверка создаваемых пользователем ресурсов Network Attachment Definition на соответствие определенным требованиям и форматам.

  2. Предоставление обратной связи: в случае обнаружения ошибок или несоответствий в формате или структуре создаваемых ресурсов, контроллер возвращает сообщение об ошибке, предоставляя информацию о том, что именно не так.

  3. Улучшение опыта пользователя: путем предоставления обратной связи о формате и структуре ресурсов, контроллер помогает пользователям создавать правильно сформированные и валидные сетевые ресурсы, что улучшает их опыт работы.

Основные команды для работы с Multus Admission Controller:

  1. ./hack/webhook-deployment.sh: команда для развертывания контроллера.

  2. make: команда для сборки контроллера.

Последовательность выполнения#

Для установки Multus Admission Controller выполните:

  1. Развертывание веб-приложения вебхука: создайте файл SSL-сертификата, который будет использоваться для контроллера допуска:

    ./hack/webhook-create-signed-cert.sh
    

    Примечание

    Если хотите использовать non-self-signed certificate, создайте секретный ресурс.

    oc create secret generic net-attach-def-admission-controller-secret \
            --from-file=key.pem=<your server-key.pem> \
            --from-file=cert.pem=<your server-cert.pem> \
            -n kube-system
    
  2. Запустите Kubernetes Job, который создаст следующие необходимые ресурсы для запуска вебхука:

    • конфигурация валидации вебхука;

    • сервис для экспозиции развертывания вебхука к API-серверу.

    Выполните команду:

    cat deployments/webhook.yaml | ./hack/webhook-patch-ca-bundle.sh | oc create -f -
    oc apply -f deployments/service.yaml
    

    Примечание

    Проверьте, что у Kubernetes controller manager установлены параметры --cluster-signing-cert-file и --cluster-signing-key-file, указывающие на пути паре ключей CA, чтобы убедиться, что API сертификатов включено для генерации сертификата, подписанного кластером CA.

  3. Если Job успешно завершен, можете запустить фактическое веб-приложение вебхука.

    Создайте развертывание сервера вебхука:

    oc apply -f deployments/deployment.yaml
    

Результат#

Multus Admission Controller успешно установлен.