Kubernetes DaemonSet Отказано в доступе для подключенного тома - Docker in Docker dind - PullRequest
0 голосов
/ 20 февраля 2020

Я попытался запустить простой DaemonSet на кластере кубов - идея заключалась в том, чтобы другие модули кубов подключались к этим контейнерам docker демон (dockerd) и выполняли на нем команды. (Другие модули являются подчиненными Jenkins и должны были просто указать env DOCKER_HOST на 'tcp: // localhost: 2375'); Короче, конфиг выглядит так:

dind.yaml

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: dind
spec:
  selector:
    matchLabels:
      name: dind
  template:
    metadata:
      labels:
        name: dind
    spec:
            #      tolerations:
            #      - key: node-role.kubernetes.io/master
            #        effect: NoSchedule
      containers:
      - name: dind
        image: docker:18.05-dind
        resources:
          limits:
            memory: 2000Mi
          requests:
            cpu: 100m
            memory: 500Mi
        volumeMounts:
        - name: dind-storage
          mountPath: /var/lib/docker
      volumes:
        - name: dind-storage
          emptyDir: {}

Сообщение об ошибке при запуске

mount: mounting none on /sys/kernel/security failed: Permission denied
Could not mount /sys/kernel/security.
AppArmor detection and --privileged mode might break.
mount: mounting none on /tmp failed: Permission denied

Я взял идею из среднего поста, который не сделал опишите это полностью: https://medium.com/hootsuite-engineering/building-docker-images-inside-kubernetes-42c6af855f25 описание docker из docker, docker в docker и Kaniko

1 Ответ

1 голос
/ 21 февраля 2020

нашел решение

apiVersion: v1
kind: Pod
metadata:
    name: dind
spec:
    containers:
      - name: jenkins-slave
        image: gcr.io/<my-project>/myimg     # it has docker installed on it
        command: ['docker', 'run', '-p', '80:80', 'httpd:latest']
        resources:
            requests:
                cpu: 10m
                memory: 256Mi
        env:
          - name: DOCKER_HOST
            value: tcp://localhost:2375
      - name: dind-daemon
        image: docker:18.05-dind
        resources:
            requests:
                cpu: 20m
                memory: 512Mi
        securityContext:
            privileged: true
        volumeMounts:
          - name: docker-graph-storage
            mountPath: /var/lib/docker
    volumes:
      - name: docker-graph-storage
        emptyDir: {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...