Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

configmap mount fail read-only file system #63477

Closed
13567436138 opened this issue May 7, 2018 · 7 comments
Closed

configmap mount fail read-only file system #63477

13567436138 opened this issue May 7, 2018 · 7 comments
Labels
sig/storage Categorizes an issue or PR as relevant to SIG Storage.

Comments

@13567436138
Copy link

 ----     ------                 ----             ----               -------
  Normal   SuccessfulMountVolume  1m               kubelet, node5     MountVolume.SetUp succeeded for volume "config-volume"
  Normal   SuccessfulMountVolume  1m               kubelet, node5     MountVolume.SetUp succeeded for volume "default-token-xf8z2"
  Warning  Failed                 1m               kubelet, node5     Error: failed to start container "dnsmasq": Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "process_linux.go:359: container init caused \"rootfs_linux.go:54: mounting \\\"/var/lib/docker/containers/28522215b76e8d67a463d0febd262c5d34e939478a4ba42f0da9b961781dc975/resolv.conf\\\" to rootfs \\\"/var/lib/docker/overlay/21308c3e7dc62edbb252e56a2f0e56f947b27d8fe1ec4cf005f5c70ae2d9569a/merged\\\" at \\\"/var/lib/docker/overlay/21308c3e7dc62edbb252e56a2f0e56f947b27d8fe1ec4cf005f5c70ae2d9569a/merged/etc/resolv.conf\\\" caused \\\"open /var/lib/docker/overlay/21308c3e7dc62edbb252e56a2f0e56f947b27d8fe1ec4cf005f5c70ae2d9569a/merged/etc/resolv.conf: read-only file system\\\"\""
  Warning  Failed                 1m               kubelet, node5     Error: failed to start container "dnsmasq": Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "process_linux.go:359: container init caused \"rootfs_linux.go:54: mounting \\\"/var/lib/docker/containers/28522215b76e8d67a463d0febd262c5d34e939478a4ba42f0da9b961781dc975/resolv.conf\\\" to rootfs \\\"/var/lib/docker/overlay/12d4e68c278b04b1463933f352a87ac2ede13944aa11511b505bde526c40fc4e/merged\\\" at \\\"/var/lib/docker/overlay/12d4e68c278b04b1463933f352a87ac2ede13944aa11511b505bde526c40fc4e/merged/etc/resolv.conf\\\" caused \\\"open /var/lib/docker/overlay/12d4e68c278b04b1463933f352a87ac2ede13944aa11511b505bde526c40fc4e/merged/etc/resolv.conf: read-only file system\\\"\""
  Warning  BackOff                1m               kubelet, node5     Back-off restarting failed container
  Normal   Pulling                1m (x3 over 1m)  kubelet, node5     pulling image "andyshinn/dnsmasq:latest"
  Normal   Pulled                 1m (x3 over 1m)  kubelet, node5     Successfully pulled image "andyshinn/dnsmasq:latest"
  Normal   Created                1m (x3 over 1m)  kubelet, node5     Created container
  Warning  Failed                 1m               kubelet, node5     Error: failed to start container "dnsmasq": Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "process_linux.go:359: container init caused \"rootfs_linux.go:54: mounting \\\"/var/lib/docker/containers/28522215b76e8d67a463d0febd262c5d34e939478a4ba42f0da9b961781dc975/resolv.conf\\\" to rootfs \\\"/var/lib/docker/overlay/2e7ffc4e24bf357e60de4defaecb7b133d9dcc018e8f4ff0361128773b0deae3/merged\\\" at \\\"/var/lib/docker/overlay/2e7ffc4e24bf357e60de4defaecb7b133d9dcc018e8f4ff0361128773b0deae3/merged/etc/resolv.conf\\\" caused \\\"open /var/lib/docker/overlay/2e7ffc4e24bf357e60de4defaecb7b133d9dcc018e8f4ff0361128773b0deae3/merged/etc/resolv.conf: read-only file system\\\"\""
  Normal   Scheduled              38s              default-scheduler  Successfully assigned dnsmasq-c8f9bfd68-kz8cx to node5
@k8s-ci-robot k8s-ci-robot added the needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. label May 7, 2018
@13567436138
Copy link
Author

apiVersion: v1
kind: ConfigMap
metadata:
  name: dnsmasq-configmap
data:
  dnsmasq.conf: |
    resolv-file=/etc/resolv.dnsmasq
    addn-hosts=/etc/dnsmasqhosts
  dnsmasqhosts: |
    192.168.1.225 gw.api.taobao.com
  resolv.dnsmasq: |
    nameserver 114.114.114.114
    nameserver 8.8.8.8
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: dnsmasq
  labels:
    app: dnsmasq
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: dnsmasq
    spec:
      nodeSelector:
        deploy: app
      containers:
      - name: dnsmasq
        image: andyshinn/dnsmasq:latest
        securityContext:
          capabilities:
            add:
            - NET_ADMIN
        readinessProbe:
          tcpSocket:
            port: 53
          initialDelaySeconds: 30
          timeoutSeconds: 1
        livenessProbe:
          tcpSocket:
            port: 53
          initialDelaySeconds: 30
          timeoutSeconds: 1
        ports:
        - containerPort: 53
          protocol: UDP
          name: dns-udp
        - containerPort: 53
          protocol: TCP
          name: dns-tcp  
        
        volumeMounts:
        - name: config-volume
          mountPath: /etc
        
      volumes:
        - name: config-volume
          configMap:
            name: dnsmasq-configmap
---
apiVersion: v1
kind: Service
metadata:
  name: dnsmasq
  labels:
    app: dnsmasq
spec:
  ports:
  - port: 53
    targetPort: 53
    protocol: TCP
    name: dns-tcp
  - port: 53
    targetPort: 53
    protocol: UDP
    name: dns-udp
  selector:
    app: dnsmasq

@dims
Copy link
Member

dims commented May 7, 2018

/sig storage

@k8s-ci-robot k8s-ci-robot added sig/storage Categorizes an issue or PR as relevant to SIG Storage. and removed needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels May 7, 2018
@13567436138
Copy link
Author

I found the problem ,the mountpath is not correct

@xiyangxdy
Copy link

I have a similar problem. Where did you modify it, Can you tell me?

@dvoros
Copy link

dvoros commented Feb 4, 2019

@xiyangxdy you'd have to modify the mountPath: /etc part not to overmount /etc with a read-only fs.

@xiyangxdy
Copy link

@dvoros Thanks, I modify mountPath: /etc, It's running.

@va3093
Copy link

va3093 commented Oct 4, 2021

For anyone who do not know exactly what the problem here is. When you mount a config map it creates a read only directory for the files in your config map. When you set the mount point to be etc it will not work because it looks like k8s tries and save other files to that dir like resolv.conf

To fix this, change your mountPath from a shared directory like /etc to one specific to your app. Like /etc/myapp. myapp will become a read only directory, but thats ok because only you are using that directory.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
sig/storage Categorizes an issue or PR as relevant to SIG Storage.
Projects
None yet
Development

No branches or pull requests

6 participants