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
команда является примером императивного подхода. Проще всего начать
[...] Поскольку эта техника работает непосредственно на живых объектах, она
не предоставляет историю предыдущих конфигураций.