Как дать корневое разрешение контейнера (serviceaccount) перед началом сборки - PullRequest
0 голосов
/ 30 марта 2019

Openshift не позволяет запускать контейнеры от имени root, но вы можете сделать это, создав учетную запись службы:

oc adm policy add-scc-to-user anyuid -z useroot

, а затем исправление конфигурации развертывания, в результате чего будет развернута новая версия контроллера репликации с новыми изменениями, возможно ли создать учетную запись службы и включить ее в следующую команду:

oc new-app --name=test --docker-image=myregistry.com/test:latest

и включите имя учетной записи службы в вышеупомянутую команду, чтобы избежать появления новой версии приложения или если есть какая-либо другая возможность предвидеть эту ошибку разрешения root и снизить безопасность для модуля, работающего от имени root, без исправлений или повторного развертывания приложение

1 Ответ

0 голосов
/ 31 марта 2019

Уилл и Грэм уже предоставили вам отличные комментарии, поэтому я предлагаю дополнительные практические детали из них следующим образом:

Если вы предоставите anyuid scc до default ServiceAccount до oc new-app, модули test будут работать с правами root без изменения версии.

# oc adm policy add-scc-to-user anyuid -z default
# oc new-app --name=test --docker-image=myregistry.com/test:latest

# oc rollout history dc/test
deploymentconfigs "test"
REVISION    STATUS      CAUSE
1       Complete    config change

# oc rsh dc/test id
uid=0(root) gid=0(root) groups=0(root)

ИЛИ

Если вам нужно указать пользовательское имя ServiceAccount, вы можетераспакуйте oc new-app yaml и создайте ресурсы после добавления в него элемента serviceAccountName: useroot.Эти шаги также не изменяют версию развертывания.

# oc create sa useroot
# oc adm policy add-scc-to-user anyuid -z useroot
# oc new-app --name=test --docker-image=myregistry.com/test:latest -o yaml --dry-run > test.yml
# vim test.yml
apiVersion: v1
items:
- apiVersion: apps.openshift.io/v1
  kind: DeploymentConfig
  ...
  spec:
  ...
    template:
      spec:
        serviceAccountName: useroot
  ...
# oc create -f ./test.yml
imagestream.image.openshift.io/test created
deploymentconfig.apps.openshift.io/test created
service/test created

# oc rollout history dc/test
deploymentconfigs "test"
REVISION    STATUS      CAUSE
1       Complete    config change

# oc rsh dc/test id
uid=0(root) gid=0(root) groups=0(root)
...