Контейнеры в Kubernetes: образы (images)
Обычно вы создаете свой Docker образ и помещаете его в реестр, прежде чем обращаться к нему в модуле (pod) Kubernetes.
Свойство image контейнера поддерживает тот же синтаксис, что и команда docker, включая частные реестры и теги.
Обновление образов
Политика извлечения по умолчанию - IfNotPresent, которая заставляет Kubelet пропускать вытягивание образа, если он уже существует. Если вы хотите всегда принудительно загружать образ, вы можете выполнить одно из следующих действий:
- установите для imagePullPolicy контейнера значение Always.
- опустите imagePullPolicy и используйте :latest в качестве тега для используемого образа.
- опустите imagePullPolicy и используйте конкретный тег для используемого образа.
- включите контроллер доступа AlwaysPullImages.
Обратите внимание, что согласно Best Practices конфигурации рекомендуется избегать использования тега :latest.
Создание мультиархитектурных образов с помощью манифестов
Docker CLI поддерживает команду docker manifest с такими подкомандами, как create, annotate и push. Эти команды могут быть использованы для создания и продвижения манифестов. Вы можете использовать docker manifest inspect для просмотра манифеста.
Смотрите Docker документацию о манифестах здесь.
Вот примеры того, как это используется в сборке Kubernetes: https://cs.k8s.io/?q=docker%20manifest%20(create%7Cpush%7Cannotate)&i=nope&files=&repos=
Эти команды основаны и реализованы исключительно на интерфейсе командной строки Docker. Вам нужно будет либо отредактировать $HOME/.docker/config.json и установить experimental key (экспериментальный ключ) в положение enabled (включено), либо вы можете просто установить переменную среды DOCKER_CLI_EXPERIMENTAL в состояние enabled (включено) при вызове команд консоли.
Примечание: используйте Docker 18.06 или выше, версии ниже, которые либо содержат ошибки, либо не поддерживают опцию экспериментальной командной строки.
Если у вас возникли проблемы с загрузкой устаревших манифестов, просто очистите старые манифесты в $HOME/.docker/manifest, чтобы начать заново.
Для Kubernetes обычно используются образы с суффиксом -$(ARCH). Для обратной совместимости, создайте старые образы с суффиксами. Идея состоит в том, чтобы сгенерировать, скажем, образ pause, который имеет манифест для всех arch, и сказать, что pause-amd64 обратно совместим для старых конфигураций или файлов YAML, которые могут иметь жестко закодировать образы с суффиксами.
Читайте также:
- Архитектура Kubernetes: узлы (Nodes)
- Архитектура Kubernetes: управление узлами
- Kubernetes компоненты: узловые компоненты (Node Components), Addons (дополнения)
Комментарии
Отправить комментарий