Как получить диаграммы Skaffold и Helm для работы с локальным репозиторием изображений?

Мы пытаемся настроить локальную среду разработки с несколькими приложениями для микросервисов под Skaffold. Нам удалось сделать это с помощью базового Skaffold, используя (слегка устаревшее) руководство по адресу https://github.com/ahmetb/skaffold-from-laptop-to-cloud. И чтобы Skaffold отправлял изображения в локальный репозиторий без Helm, все, что мне нужно было сделать, это настроить imageName для использования чего-то вроде localhost:5000/image_name.

Но с Helm, хорошо... Я установил очень грубую установку Helm (ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я еще не очень знаком с Helm), просто изменив скаффолд YAML для использования Helm и выгрузив все файлы развертывания и обслуживания.YAML в Каталог рулетки /templates, и это бомбили.

Затем Skaffold успешно создает любые модули, основанные на стандартном внешнем образе (например, redis), но затем всякий раз, когда что-либо использует изображение, которое будет сгенерировано из локального файла Docker, оно застревает и выдает эту ошибку:

Не удалось получить изображение "localhost:5000/k8s-skaffold/php-test": ошибка rpc: code = Unknown desc = Ответ об ошибке от демона: Получить http://localhost:5000/v2/: dial tcp [:: 1]: 5000: соединение: соединение отказано

Насколько я могу судить, это ошибка, которая возникает, когда мы не инициализировали локальный репозиторий образов Docker - но с версией не-Helm нам не нужно запускать локальный репозиторий изображений, Skaffold просто делает эту магию бывает. Что является частью апелляции Скаффолда.

Итак, как нам автоматически заставить Skaffold создать диаграммы Хелма, которые создают и извлекают из локального репозитория? (Как уже отмечалось, это может быть мое незнакомство с Хелмом. Если это так, я прошу прощения.)

Skaffold YAML это:

apiVersion: skaffold/v1beta7
kind: Config
build:
  tagPolicy:
    sha256: {}
  artifacts:
  - image: localhost:5000/k8s-skaffold/php-test
    context: voting-app/php-test  
deploy:
  helm:
    releases:
    - name: php-help-test
      chartPath: helm
      #wait: true
      #valuesFiles:
      #- helm-skaffold-values.yaml
      values:
        image: localhost:5000/k8s-skaffold/php-test
      #recreatePods will pass --recreate-pods to helm upgrade
      #recreatePods: true
      #overrides builds an override values.yaml file to run with the helm deploy
      #overrides:
      # some:
      #   key: someValue
      #setValues get appended to the helm deploy with --set.  
      #setValues:
        #some.key: someValue

И значения Helm Chart values.yaml по умолчанию предоставляются сгенерированной диаграммой. Я также могу предоставить Dockerfile, если нужно, но он просто извлекает из этого изображения.

1 ответ

Вы не можете использовать localhost в вашем определении изображения. Для тестирования вы можете попробовать использовать ip хоста, на котором работает ваш личный реестр, например, если у хоста есть адрес 222.0.0.2, тогда используйте image: 222.0.0.2:5000/k8s-skaffold/php-test,

Конечно, нежелательно жестко кодировать адрес, поэтому лучшим способом является полное исключение части "хост";

  image: k8s-skaffold/php-test:v0.1

В этом случае ваш плагин CRI (Container Runtime Interface) попробует, например, последовательность серверов docker.io, Серверы настраиваются, но, к сожалению, я не знаю, как настроить его для "докера", так как я использую cri-o себя.

Другие вопросы по тегам