Разрешить привилегированные контейнеры в Kubernetes в контейнере Google (GKE)

Я использую кластер Kubernetes, развернутый через Google Container Engine (GKE) из консоли разработчика Google Cloud, версия кластера 0.19.3. Я хотел бы запустить привилегированный контейнер, например, на Kubernetes NFS Server пример:

apiVersion: v1
kind: Pod
metadata:
  name: nfs-server
  labels:
    role: nfs-server
spec:
  containers:
    - name: nfs-server
      image: jsafrane/nfs-data
      ports:
        - name: nfs
          containerPort: 2049
      securityContext:
        privileged: true

Поскольку конфигурация Google Container Engine по умолчанию не допускает использование привилегированных контейнеров, Kubernetes API немедленно возвращает следующую ошибку:

Ошибка сервера: Pod "nfs-server" недействителен: spec.containers [0] .securityContext.privileged: запрещено '‹*> (0xc20a027396) true'

Как я могу разрешить привилегированные контейнеры в моем кластере Google Container Engine?


person Caleb    schedule 29.06.2015    source источник


Ответы (2)


Обновление: привилегированный режим теперь включен по умолчанию, начиная с версии 1.1 Kubernetes, которая теперь доступна в Google Container Engine.


Запуск привилегированных контейнеров (включая сервер NFS в этом примере) в настоящее время невозможен в Google Container Engine. Мы ищем способы решить эту проблему (добавление флага при создании кластера для разрешения привилегированных контейнеров; включение привилегированных контейнеров в систему контроля доступа и т. Д.). На данный момент, если вам нужно запускать привилегированные контейнеры, вам нужно запустить собственный кластер с помощью поставщика GCE.

person Robert Bailey    schedule 29.06.2015
comment
Спасибо за обновление, надеюсь, оно скоро будет добавлено! - person Caleb; 29.06.2015
comment
Теперь, когда Kubernetes имеет версию 1.0, они говорят об этом в своих документах здесь: kubernetes.io /v1.0/examples/nfs/README.html (для справки) - person four43; 12.10.2015
comment
Google Container Engine по-прежнему не поддерживает привилегированный режим в версии 1.0 Kubernetes. Он будет поддерживать привилегированный режим после выхода версии 1.1, где привилегированный режим включен по умолчанию. - person Robert Bailey; 13.10.2015
comment
Обновление: привилегированный режим теперь включен по умолчанию, начиная с версии 1.1 Kubernetes, которая теперь доступна в Google Container Engine. - person Robert Bailey; 17.11.2015

В этом сообщении говорится об этом (см. Конец).

person Thibault Deheurles    schedule 29.06.2015
comment
Эта проблема Github касается флага allow_privileged для решения для самостоятельного развертывания для поставщика Salt (gce, aws, vagrant), но не для Google Container Engine (gke), который является управляемой службой Google Cloud Platform. - person Caleb; 30.06.2015
comment
Ему понадобится allow_privileged = true для настройки кластера нет? Я понял это по тому, как вы объясняете свой собственный кластер с помощью провайдера GCE. Я ошибся ? - person Thibault Deheurles; 30.06.2015
comment
Проект kube-jenkins-imager продолжит путь к привилегированным (github.com/GoogleCloudPlatform/kube-jenkins-imager/blob/master/). Это проект gke. Это сработало, но уловки, похоже, пока не работают. (Возможно, изменится название кластера?) - person Thibault Deheurles; 30.06.2015
comment
Кластеры GKE (cloud.google.com/container-engine) полностью управляются Google. Роберт работает в Google и подтвердил, что они работают над предоставлением опции allow_privileged, но она пока недоступна. - person Caleb; 30.06.2015
comment
Я не понял, потому что подключение к узлу, переход к настройке и переключение allow_privileged = true выполняли работу над движком контейнера. Я занимался этим месяц. НО !, похоже, что больше не работает с v0.19 k8s. Есть введение управляемого мастера, который ломает трюк. - person Thibault Deheurles; 30.06.2015