无法在Kubernetes中将hostPath'/ var / lib / docker / containers'用作卷

问题描述 投票:2回答:1

我没有使用HostPath /var/lib/docker/containers作为卷,但有以下错误:

 Error response from daemon: linux mounts: Path /var/lib/docker/containers is 
 mounted on /var/lib/docker/containers but it is not a shared or slave mount.

这是我的YAML规范(注意:这只是在日志收集中重现我的问题的一个例子):

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  namespace: logging
  labels:
    app: test
spec:
  selector:
    matchLabels:
      app : test
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
        - name: nginx
          image: nginx:stable-alpine
          securityContext:
            privileged: true
          ports:
          - containerPort : 8003
      volumeMounts:
      - name: docker
        mountPath: /var/lib/docker/containers
        readOnly: true
  volumes:
    - name: docker
      hostPath:
        path: /var/lib/docker/containers

还有我的kubernetes版本。

Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.1", 
GitCommit:"d4ab47518836c750f9949b9e0d387f20fb92260b", GitTreeState:"clean", 
BuildDate:"2018-04-12T14:26:04Z", GoVersion:"go1.9.3", Compiler:"gc", 
Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.0", 
GitCommit:"fc32d2f3698e36b93322a3465f63a14e9f0eaead", GitTreeState:"clean", 
BuildDate:"2018-03-26T16:44:10Z", GoVersion:"go1.9.3", Compiler:"gc", 
Platform:"linux/amd64"}

非常感谢你的帮助!

docker kubernetes
1个回答
2
投票

非常感谢任何帮助!

您最有可能遇到特定于版本的问题:

/var/lib/docker/containers is intentionally mounted by Docker with private mount
propagation and thus conflicts with Kubernetes trying to mount this directory
as rslave when running the container

您应该尝试使用1.10.3+来解决问题。请参阅the official changelog了解kubernetes并检查与“默认安装传播”相关的条目。还要检查相关的(参见错误)fluentd issue以获得更深入的分析。

现在,据说......

大卫的经验丰富的评论仍然有问题和谨慎的说法,我认为:这是一个非常挑剔的人 - nginx pod深入挖掘码头引擎内部(希望它只是为了最小的可重复的例子,或者日志收集案例,你知道, ......)......确保你确切知道自己在做什么以及为什么这样做。

© www.soinside.com 2019 - 2024. All rights reserved.