Ventana acoplable de Azure Kubernetes en la ventana acoplable: 'superposición' no es compatible con overlayfs

Ventana acoplable de Azure Kubernetes en la ventana acoplable: 'superposición' no es compatible con overlayfs

Estoy intentando ejecutar una ventana acoplable en un escenario de ventana acoplable dentro de un clúster de Kubernetes administrado por Azure (aks).

He montado el socket Docker Unix en el pod. Mi intención es utilizar aks pods como agentes de Azure Devops para construir y probar mi proyecto. Esto requiere una base de datos y un wiremock ejecutándose en Docker, lo que significa que creará una red Docker.

A continuación puedes ver mi configuración actual:

Name:           my-devopsagent-javaagent-64855bb796-smpkz
Namespace:      my-devops-agents
Priority:       0
Node:           aks-default-21935887-vmss000000/10.128.0.4
Start Time:     Mon, 16 Dec 2019 14:09:04 +0200
Labels:         app=my-devopsagent-javaagent
                pod-template-hash=64855bb796
Annotations:    <none>
Status:         Running
IP:             10.128.0.28
IPs:            <none>
Controlled By:  ReplicaSet/my-devopsagent-javaagent-64855bb796
Containers:
  my-devopsagent-javaagent:
    Container ID:   docker://ffffff26c3b4a92678a95f446c0ada685986f30c56138109b080
    Image:          mycontainerregistry.azurecr.io/mycompany/devopsagent/javaagent:latest
    Image ID:       docker-pullable://mycontainerregistry.azurecr.io/mycompany/devopsagent/javaagent@sha256:4422edb12d1b4bbff92bc36e7d33715222daab6ef3439cfffffff
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Mon, 16 Dec 2019 14:09:06 +0200
    Ready:          True
    Restart Count:  0
    Environment:
      AZP_AGENT_NAME:  CONTAINER_JAVA_AGENT
      AZP_URL:         https://dev.azure.com/mycompany
      AZP_POOL:        Default
      AZP_TOKEN:       <set to the key 'pat' in secret 'pat'>  Optional: false
    Mounts:
      /var/run/docker.sock from dockersock (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-2msgf (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  dockersock:
    Type:          HostPath (bare host directory volume)
    Path:          /var/run/docker.sock
    HostPathType:
  default-token-2msgf:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-2msgf
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:          <none>

el error que recibo es

ERRO[0000] 'overlay' is not supported over overlayfs    
error creating libpod runtime: 'overlay' is not supported over overlayfs: backing file system is unsupported for this graph driver

¿Alguna idea sobre cómo puedo resolver este problema?

PD: También probé el primer comentario en elventana acoplable en ventana acoplableproblema, lo que significa que intenté montar el /bin/docker que introdujo diferentes problemas

Respuesta1

Para ejecutar Docker en Docker, el /var/lib/dockersistema de archivos no puede ser el sistema de archivos contenedor que está construido con overlayfs. En su lugar, debe montarlo desde un volumen externo a un sistema de archivos compatible en el host externo, ya sea xfscon ftype=1o ext4. Esto está documentado enhttps://docs.docker.com/storage/storagedriver/#supported-backing-filesystems

Puede usar un volumen con nombre en el host para esto, ya que /var/lib/docker en el sistema de archivos del host estará en un FS compatible. Por ejemplo, mi propia CLI DinD se ve así:

docker run -d --rm --privileged \
  -v "dind-${port}:/var/lib/docker" \
  -v "dind-${port}-ccerts:/certs/client" -e DOCKER_TLS_CERTDIR=/certs \
  -v "$HOME:$HOME" \
  --name "dind-${port}" -p "127.0.0.1:${port}:2376" \
  "docker:${opt_t}-dind"

Tenga en cuenta que el primer montaje de volumen es algo así como dind-1234:/var/lib/dockerlo que creó un volumen con nombre para este directorio en el contenedor.

información relacionada