Как выяснить, почему монтирование тома emptyDir не удается в Kubernetes? - PullRequest
0 голосов
/ 06 июля 2018

У меня очень странный эффект от модуля pub на Kubernetes: он пытается смонтировать том типа emptyDir, но не может этого сделать. Список событий модуля отображает следующие записи:

LAST SEEN   FIRST SEEN   COUNT     NAME                                                                            KIND      SUBOBJECT   TYPE      REASON        SOURCE                                                    MESSAGE
2m          10h          281       953fb7fe6825ce398f6243fbe2b2df9400d8cbe0-1530827425856-xbg84.153e978b9b811f46   Pod                   Warning   FailedMount   kubelet, ip-172-20-73-118.eu-central-1.compute.internal   Unable to mount volumes for pod "953fb7fe6825ce398f6243fbe2b2df9400d8cbe0-1530827425856-xbg84_example(6cfbf40a-809d-11e8-bb05-0227730cc812)": timeout expired waiting for volumes to attach/mount for pod "example"/"953fb7fe6825ce398f6243fbe2b2df9400d8cbe0-1530827425856-xbg84". list of unattached/unmounted volumes=[workspace]

Что странно, это то, что это работает в большинстве случаев, но теперь это произошло. Что может быть причиной этого? А как узнать поподробнее, что пошло не так?

Обновление: в соответствии с просьбой в комментарии, я добавил сюда спецификацию модуля:

apiVersion: v1
kind: Pod
metadata:
  name: 953fb7fe6825ce398f6243fbe2b2df9400d8cbe0-1530827425856-xbg84
  namespace: example
spec:
  containers:
  - args:
    - --context=/workspace/1b5c4fd2-bb39-4096-b055-52dc99d8da0e
    - --dockerfile=/workspace/1b5c4fd2-bb39-4096-b055-52dc99d8da0e/Dockerfile-broker
    - --destination=registry.example.com:443/example/953fb7fe6825ce398f6243fbe2b2df9400d8cbe0-broker:1530827425856
    image: gcr.io/kaniko-project/executor:732a2864f4c9f55fba71e4afd98f4fdd575479e6
    imagePullPolicy: IfNotPresent
    name: 953fb7fe6825ce398f6243fbe2b2df9400d8cbe0-1530827425856-broker
    volumeMounts:
    - mountPath: /kaniko/.docker/config.json
      name: config-json
      subPath: config.json
    - mountPath: /workspace
      name: workspace
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-mk89h
      readOnly: true
  - args:
    - --context=/workspace/1b5c4fd2-bb39-4096-b055-52dc99d8da0e
    - --dockerfile=/workspace/1b5c4fd2-bb39-4096-b055-52dc99d8da0e/Dockerfile-core
    - --destination=registry.example.com:443/example/953fb7fe6825ce398f6243fbe2b2df9400d8cbe0-core:1530827425856
    image: gcr.io/kaniko-project/executor:732a2864f4c9f55fba71e4afd98f4fdd575479e6
    imagePullPolicy: IfNotPresent
    name: 953fb7fe6825ce398f6243fbe2b2df9400d8cbe0-1530827425856-core
    volumeMounts:
    - mountPath: /kaniko/.docker/config.json
      name: config-json
      subPath: config.json
    - mountPath: /workspace
      name: workspace
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-mk89h
      readOnly: true
  - args:
    - --context=/workspace/1b5c4fd2-bb39-4096-b055-52dc99d8da0e
    - --dockerfile=/workspace/1b5c4fd2-bb39-4096-b055-52dc99d8da0e/Dockerfile-flows
    - --destination=registry.example.com:443/example/953fb7fe6825ce398f6243fbe2b2df9400d8cbe0-flows:1530827425856
    image: gcr.io/kaniko-project/executor:732a2864f4c9f55fba71e4afd98f4fdd575479e6
    imagePullPolicy: IfNotPresent
    name: 953fb7fe6825ce398f6243fbe2b2df9400d8cbe0-1530827425856-flows
    volumeMounts:
    - mountPath: /kaniko/.docker/config.json
      name: config-json
      subPath: config.json
    - mountPath: /workspace
      name: workspace
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-mk89h
      readOnly: true
  initContainers:
  - command:
    - sh
    - -c
    - echo ${CONFIG_JSON} | base64 -d > /config-json/config.json
    env:
    - name: CONFIG_JSON
      value: […]
    image: alpine:3.7
    imagePullPolicy: IfNotPresent
    name: store-config-json
    volumeMounts:
    - mountPath: /config-json
      name: config-json
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-mk89h
      readOnly: true
  restartPolicy: Never
  volumes:
  - emptyDir: {}
    name: config-json
  - name: workspace
    persistentVolumeClaim:
      claimName: example
  - name: default-token-mk89h
    secret:
      defaultMode: 420
      secretName: default-token-mk89h

1 Ответ

0 голосов
/ 06 июля 2018

Вы не используете emptyDir в podSpec напрямую.Я бы предложил заменить PVC на emptyDir: {} и проверить, решил ли он что-то для вас.

Если вы все еще хотите использовать подход PVC и PV, предоставьте их манифесты и описания.Возможно, что то есть.у вас есть PVC-соединение с PV с пустым каталогом на другом хосте, на котором запущен модуль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...