Обзор контейнеров HostProcess в AKS

Контейнеры HostProcess / Privileged расширяют контейнерную модель Windows, чтобы обеспечить более широкий спектр сценариев администрирования кластера Kubernetes. Контейнеры HostProcess запускаются на хосте одновременно и сохраняют поведение и доступ, аналогичные обычному процессу.

Контейнеры HostProcess позволяют пользователям упаковывать и распространять операции управления и функциональные возможности, требующие доступа к хосту, при этом защищая стратегии версионирования и развертывания, предоставляемые контейнерами.

Привилегированный DaemonSet может поднять корректировки или открыть Linux-хост в Kubernetes, но не Windows-хост. Контейнеры HostProcess — это Windows-эквивалент поднятия хоста.

Ограничения

  • Для контейнеров HostProcess требуется Kubernetes 1.23 или выше.
  • Для контейнеров HostProcess требуется контейнерная среда выполнения containerd 1.6 или выше.
  • HostProcess pods могут включать только HostProcess контейнеры. Это текущее затруднение операционной системы Windows. Непривилегированные контейнеры Windows не могут разделять vNIC с пространством имен IP хоста.
  • Контейнеры HostProcess работают как система на хосте. Единственная изоляция этих контейнеров от хоста — это ограничения ресурсов, наложенные на учетную запись HostProcess person.
  • Изоляция файловой системы и изоляция Hyper-V не поддерживаются для контейнеров HostProcess.
  • Монтирование томов поддерживается и устанавливается под томом контейнера. См. раздел «Монтирование томов».
  • По умолчанию для контейнеров Host Process доступен ограниченный набор учетных записей потребителей хоста. См. раздел Выбор учетной записи пользователя.
  • Ограничения ресурсов, такие как количество дисков, памяти и процессоров, работают так же, как и процессы на хосте.
  • Именованные монтирования труб и сокеты домена Unix теперь поддерживаются без задержки, но к ним можно получить доступ по пути к хосту, например .pipe*.

Запуск рабочей нагрузки HostProcess

Чтобы использовать возможности HostProcess в вашей установке, установите privileged: true, hostProcess: true и hostNetwork: true:

spec:
      ...
      containers:
          ...
          securityContext:
            privileged: true
            windowsOptions:
              hostProcess: true
              ...
      hostNetwork: true
      ...

Вход в полноэкранный режим Выход из полноэкранного режима

Чтобы запустить пример рабочей нагрузки, использующей функции HostProcess на существующем кластере AKS, создайте файл kcdhostprocess.yaml.

Пример рабочей нагрузки можно запустить с помощью kubectl.

kubectl apply -f kcdhostprocess.yaml
Вход в полноэкранный режим Выйдите из полноэкранного режима

Вы должны увидеть следующий результат:

$ kubectl apply -f kcdhostprocess.yaml
daemonset.apps/privileged-daemonset created
Вход в полноэкранный режим Выход из полноэкранного режима

Возможности HostProcess можно проверить, просмотрев журналы.

Имя Pod можно найти в пространстве имен kube-systemnamespace.

$ kubectl get pods --namespace kube-system

NAME                                  READY   STATUS    RESTARTS   AGE
...
privileged-daemonset-12345            1/1     Running   0          2m13s
Вход в полноэкранный режим Выход из полноэкранного режима

Вы можете использовать журнал для просмотра журналов и проверки прав администратора.

$ kubectl logs privileged-daemonset-12345 --namespace kube-system
InvalidOperation: Unable to find type [Security.Principal.WindowsPrincipal].
Process has admin rights:
Войти в полноэкранный режим Выход из полноэкранного режима

Спасибо, что дочитали мою статью до конца. Надеюсь, сегодня вы узнали что-то уникальное. Если вам понравилась эта статья, пожалуйста, поделитесь с вашими друзьями, а если у вас есть предложения или мысли, которыми вы хотите поделиться со мной, пожалуйста, напишите в поле для комментариев.

Этот блог представлен в рамках ‘Devtron Blogathon 2022’ — https://devtron.ai/.
Загляните в GitHub-репо Devtron — https://github.com/devtron-labs/devtron/ и поставьте ⭐ в знак вашей любви и поддержки.
Следите за Devtron на LinkedIn — https://www.linkedin.com/company/devtron-labs/ и Twitter — https://twitter.com/DevtronL/, чтобы быть в курсе новостей этого проекта с открытым исходным кодом.

Оцените статью
Procodings.ru
Добавить комментарий