【问题标题】:Intermittent failure of container mounts in KubernetesKubernetes 中容器挂载的间歇性失败
【发布时间】:2019-03-26 15:46:39
【问题描述】:

我们看到卷安装间歇性失败并出现以下错误消息:

错误:找不到要挂载到容器“笔记本”的卷“工作”。

大约 5% 的 pod 启动时会出现此问题(它们都具有相同的配置)。该卷由 PVC 支持,PVC 是在 Pod 创建之前立即创建的。

我们在 GKE 上运行,版本为 v1.11.7-gke.12

Pod 清单在这里:

{
      apiVersion: 'v1',
      kind: 'Pod',
      metadata: {
        name: 'some pod name',
        annotations: {},
        labels: {},
      },
      spec: {
        restartPolicy: 'OnFailure',
        securityContext: {
          fsGroup: 100,
        },
        automountServiceAccountToken: false,
        volumes: [
          {
            name: 'work',
            persistentVolumeClaim: {
              claimName: pvcName,
            },
          },
        ],
        containers: [
          {
            name: 'notebook',
            image,
            workingDir: undefined, // this is defined in Dockerfile
            ports: [
              {
                name: 'notebook-port',
                containerPort: port,
              },
            ],
            args: [...command.split(' '), ...args],
            imagePullPolicy: 'IfNotPresent',
            volumeMounts: [
              {
                name: 'work',
                mountPath: '/home/jovyan/work',
              },
            ],
            resources: {
              requests: {
                memory: '256M',
              },
              limits: {
                memory: '1G',
              },
            },
          },
          {
            name: 'watcher',
            image: 'gcr.io/deepnote-200602/wacher:0.0.3',
            imagePullPolicy: 'Always',
            volumeMounts: [
              {
                name: 'work',
                mountPath: '/home/jovyan/work',
              },
            ],
          },
        ],
      },
    }
  }

任何帮助或想法将不胜感激!此外,很高兴尝试任何其他日志/步骤可能有助于隔离问题的建议。

【问题讨论】:

  • 关于 SO 的一个看似相关的问题是:stackoverflow.com/questions/52114457/… 但除了版本更改之外,没有答案也没有提示如何进行,因为我们在 GKE 上,所以我们不能这样做。
  • 文档状态“挂载选项未经验证,因此如果一个选项无效,挂载将失败。”您是使用清单文件还是使用 kubectl create 命令来创建集群?您提供了 pod 规格,但未提及 pv 规格。 kubernetes.io/docs/concepts/storage/persistent-volumes/… 的文档讨论了 PV 可能发生的许多错误可能性。您需要为您的系统找到 PV 配置。
  • 你能检查PV & PVC status/describe 的输出和他们的清单吗。

标签: kubernetes google-kubernetes-engine


【解决方案1】:

很可能该卷未绑定。你能检查并确认下面pvc的状态吗

声明名称:pvcName

kubectl get pvc | grep pvcName

【讨论】:

    猜你喜欢
    • 2015-08-29
    • 2016-10-20
    • 1970-01-01
    • 2019-04-18
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    相关资源
    最近更新 更多