Создайте модуль kubernetes с объемом, используя kubectl run

Я понимаю, что вы можете создать модуль с помощью Deployment / Job, используя kubectl run. Но возможно ли создать тот, к которому прикреплен том? Я попытался запустить эту команду:

kubectl run -i --rm --tty ubuntu --overrides='{ "apiVersion":"batch/v1", "spec": {"containers": {"image": "ubuntu:14.04", "volumeMounts": {"mountPath": "/home/store", "name":"store"}}, "volumes":{"name":"store", "emptyDir":{}}}}' --image=ubuntu:14.04 --restart=Never -- bash

Но громкость не появляется в интерактивном bash.

Есть ли лучший способ создать стручок с объемом, к которому вы можете прикрепить?

 Kenny Ho01 июн. 2016 г., 20:01
Я также попытался с помощью kubectl создать и затем выполнить exec / attach, но это не сработало для меня. Но это, вероятно, потому что я столкнулся с этой ошибкой:github.com/kubernetes/kubernetes/issues/16670

Ответы на вопрос(1)

Решение Вопроса

Ваше переопределение JSON указано неправильно. К сожалению, kubectl run просто игнорирует поля, которые он не понимает.

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

Для устранения этой проблемы я запустил указанную вами команду, а затем в другом терминале запустил:

kubectl get job ubuntu -o json

Оттуда вы можете видеть, что фактическая структура задания отличается от вашего переопределения json (вы пропустили вложенный шаблон / спецификацию, и тома, volumeMounts и контейнеры должны быть массивами).

 Kenny Ho03 июн. 2016 г., 22:42
Спасибо, особенно совет по его устранению. Похоже, создание, а затем присоединение может быть лучшим способом ... если только я смогу заставить его работать. (По какой-то причине мне труднее всего заставить работать даже шаг проверки skydns. Шаг attach / exec просто зависает.) Есть ли у вас какие-либо советы по отладке этой ситуации?
 Cameron Taggart27 июл. 2018 г., 19:01
kubectl run --overrides игнорировать несуществующие поля действительно неудачноgithub.com/kubernetes/kubernetes/issues/26804 , Для того, чтобы сделать его интерактивным,tty а такжеstdin необходимы в переопределении контейнера. Аргументы также исходят из переопределения. Вот обновленная сутьgist.github.com/ctaggart/c372783291162d9c0b8e40441ab14845

Ваш ответ на вопрос