kubectl run NAME - уточняющий - PullRequest
       17

kubectl run NAME - уточняющий

0 голосов
/ 09 января 2019

По документам:

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#run

kubectl run NAME --image=image

запустит изображение.

Некоторые вопросы:

  • Я предполагаю, что это контейнер, а не контейнер?

  • И я предполагаю, что ИМЯ связано со стручком?

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Snowcrash, вы правы. По сути, это то же самое, что команда docker run. Таким образом, использование kubectl run NAME --image=image точно запустит pod с именем NAME из образа докера, называемого image. Вы можете проверить, что именно происходит, используя kubectl describe pod NAME Вот пример kubectl run nginx --image=nginx

Events:
  Type     Reason            Age                From                    Message
  ----     ------            ----               ----                    -------
  Warning  FailedScheduling  89s (x2 over 89s)  default-scheduler       0/2 nodes are available: 2 node(s) had taints that the pod didn't tolerate.
  Normal   Scheduled         19s                default-scheduler       Successfully assigned default/nginx-7cdbd8cdc9-glkxq to centos-master
  Normal   Pulling           18s                kubelet, centos-master  pulling image "nginx"
  Normal   Pulled            14s                kubelet, centos-master  Successfully pulled image "nginx"
  Normal   Created           14s                kubelet, centos-master  Created container
  Normal   Started           14s                kubelet, centos-master  Started container

Итак, что произошло после kubectl run:

  • Планировщик пытался выбрать узел для запуска контейнера (сначала это не удалось из-за повреждения, потому что мой узел находится в состоянии NotReady (не важно на данный момент, но вы можете прочитать больше об этом здесь )

  • Планировщик успешно назначил модуль узлу (centos-master).

  • Кублет проверяет, доступно ли изображение докера, и извлекает его, если необходимо.

  • Затем контейнер создается и запускается.

* здесь вы можете найти интересную статью, которая объясняет это немного более подробно.

Название связано с pod, потому что Pod - самая маленькая единица работы в Kubernetes. Каждый контейнер может содержать один или несколько контейнеров. Все контейнеры в модуле имеют одинаковый IP-адрес и пространство порта, могут получить доступ к общему хранилищу на узле, на котором размещен этот модуль.

По существу, инструмент командной строки kubectl поддерживает несколько различных способов создания и управления объектами Kubernetes:

  • повелительные команды
  • императивная конфигурация объекта
  • Декларативная конфигурация объекта

* вы можете найти больше о них в этом ответе StackOverflow или в этой статье Medium .

run команда является примером императивного подхода. Проще всего начать

[...] Поскольку эта техника работает непосредственно на живых объектах, она не предоставляет историю предыдущих конфигураций.

0 голосов
/ 09 января 2019

Команда run NAME --image=image вызовет модуль с именем ИМЯ , используя изображение с именем image . Думайте здесь как имя тега в Docker.

Затем, когда вы запустите kubectl --get pods, вы увидите в списке модуль с именем ИМЯ .

...