После удаления изображения из реестра контейнеров Google и загрузки другого изображения с тем же тегом удаленное изображение по-прежнему извлекается.

Я не знаю, является ли это предполагаемым поведением или ошибкой в ​​GCR. В основном я пробовал сделать это так:

  1. Создайте образ из локальных файлов с помощью Docker в Windows (образ на базе Linux).
  2. Перед созданием изображения я удаляю все локальные изображения с тем же именем / тегом.
  3. Изображение помечено как репозиторий / проект / имя: v1
  4. При тестировании локально образ имеют правильные версии исполняемых файлов (docker run imageID).
  5. Перед тем, как отправить изображение в GCR, я удаляю все изображения из GCR с тем же тегом / именем.
  6. Когда вы пытаетесь вытащить новое изображение из GCR в пример кубернетов, он вытаскивает первое (когда-либо) изображение, загруженное под определенным тегом.

Я хочу повторно использовать один и тот же тег, чтобы не изменять файл конфигурации при каждом тесте, и мне действительно не нужно хранить предыдущие версии изображений.


person Łukasz Baran    schedule 09.06.2018    source источник
comment
Не могли бы вы предоставить журналы вывода команд push & pull?   -  person Dmitry Demidovsky    schedule 09.06.2018


Ответы (1)


Похоже, вы столкнулись с проблемой, описанной в kubernetes / kubernetes # 42171.

tl; dr, политика вытягивания по умолчанию для кубернетов нарушена по конструкции, поэтому вы не можете повторно использовать теги ( кроме latest). Я считаю, что сообщество k8s рекомендует использовать «неизменяемые теги», что является своего рода оксюмороном.

У вас есть несколько вариантов:

  1. Переключитесь на использование тега latest, так как kubernetes жестко запрограммировал это в своем логика политики вытягивания по умолчанию (я верю в попытку смягчить проблему, с которой вы столкнулись).
  2. Никогда не используйте тег повторно.
  3. Переключитесь на явное использование PullAlways ImagePullPolicy. Если вы сделаете это, вы понесете небольшие накладные расходы, так как ваш узел должен будет проверить в реестре, что тег не изменился.
  4. Переключитесь на развертывание по дайджесту образа с PullIfNotPresent ImagePullPolicy. Более подробное объяснение есть в PR, который я связал, но это дает вам лучшее из обоих миров.
person jonjohnson    schedule 09.06.2018