Монтирование тома с помощью kubectl - PullRequest
0 голосов
/ 29 сентября 2018

Я хочу смонтировать том с помощью kubectl и получить оболочку в среде.

Я пробовал это:

kubectl run -i --rm --tty alpine --overrides='
{
  "apiVersion": "v1",
  "spec": {
    "template": {
      "spec": {
        "containers": [
          {
            "name": "alpine",
            "image": "alpine:latest",
            "args": [
              "sh"
            ],
            "stdin": true,
            "stdinOnce": true,
            "tty": true,
            "volumeMounts": [{
              "mountPath": "/home/store",
              "name": "store"
            }]
          }
        ],
        "volumes": [{
          "name":"store",
          "emptyDir":{}
        }]
      }
    }
  }
}
'  --image=alpine:latest --restart=Never -- sh

Я не получаю никаких ошибок, нотом отсутствует в пути монтирования /home/store:

~ # ls -lah /home/
total 8
drwxr-xr-x    2 root     root        4.0K Sep 11 20:23 .
drwxr-xr-x    1 root     root        4.0K Sep 29 09:47 ..

Я ищу наиболее прямой способ использования тома с kubectl run для целей отладки.

1 Ответ

0 голосов
/ 29 сентября 2018

TL; DR Я не знаю, в чем проблема, но в итоге я решил эту проблему, сделав запрос на сборку очень подробным.

В итоге я решил эту проблему, установив для debug значениеочень многословно (v=0) и заметил, что мое монтирование тома было полностью проигнорировано kubectl и отсутствует в запросе к API:

I0929 13:31:22.429307   14616 request.go:897] Request Body: {"kind":"Pod","apiVersion":"v1","metadata":{"name":"alpine","creationTimestamp":null,"labels":{"run":"alpine"}},"spec":{"volumes":[{"name":"store","emptyDir":{}}],"containers":[{"name":"alpine","image":"alpine:latest","args":["sh"],"resources":{},"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File","imagePullPolicy":"IfNotPresent","stdin":true,"stdinOnce":true,"tty":true}],"restartPolicy":"Never","terminationGracePeriodSeconds":30,"dnsPolicy":"ClusterFirst","securityContext":{},"schedulerName":"default-scheduler"},"status":{}}

Я скопировал, вставил этот запрос и отредактировал его, чтобы добавитьсмонтирован тот же том, что и выше, и он работал:

kubectl run -i --rm --tty alpine --overrides='
{
    "kind": "Pod",
    "apiVersion": "v1",
    "metadata": {
        "name": "alpine",
        "creationTimestamp": null,
        "labels": {
            "run": "alpine"
        }
    },
    "spec": {
        "containers": [{
            "name": "alpine",
            "image": "alpine:latest",
            "args": ["sh"],
            "resources": {},
            "terminationMessagePath": "/dev/termination-log",
            "terminationMessagePolicy": "File",
            "imagePullPolicy": "IfNotPresent",
            "stdin": true,
            "stdinOnce": true,
            "tty": true,
            "volumeMounts": [{
              "mountPath": "/home/store",
              "name": "store"
            }]
        }],
        "volumes": [{
          "name":"store",
          "emptyDir":{}
        }],
        "restartPolicy": "Never",
        "terminationGracePeriodSeconds": 30,
        "dnsPolicy": "ClusterFirst",
        "securityContext": {},
        "schedulerName": "default-scheduler"
    },
    "status": {}
}
'  --image=alpine:latest -v=9 --restart=Never -- sh
...