k3d: локальный репозиторий не найден

#kubernetes #rancher #k3s

#kubernetes #ранчер #k3s

Вопрос:

Я создал свой реестр loca:

 $ docker container run -d 
  --name registry.localhost
  --restart always
  -p 5000:5000
  registry:2
  

Он запущен и работает:

 $ curl -s registry.localhost:5000/v2/_catalog | jq
{
  "repositories": [
   "greenplum-for-kubernetes",
   "greenplum-operator"
  ]
}
  

Я пытаюсь создать развертывание. Однако я получаю:

 4m7s        Normal    ScalingReplicaSet         deployment/greenplum-operator              Scaled up replica set greenplum-operator-76b544fbb9 to 1
4m7s        Normal    SuccessfulCreate          replicaset/greenplum-operator-76b544fbb9   Created pod: greenplum-operator-76b544fbb9-pm7t2
<unknown>   Normal    Scheduled                 pod/greenplum-operator-76b544fbb9-pm7t2    Successfully assigned default/greenplum-operator-76b544fbb9-pm7t2 to k3d-k3s-default-agent-0
3m23s       Normal    Pulling                   pod/greenplum-operator-76b544fbb9-pm7t2    Pulling image "registry.localhost:5000/greenplum-operator:v2.2.0"
3m23s       Warning   Failed                    pod/greenplum-operator-76b544fbb9-pm7t2    Error: ErrImagePull
3m23s       Warning   Failed                    pod/greenplum-operator-76b544fbb9-pm7t2    Failed to pull image "registry.localhost:5000/greenplum-operator:v2.2.0": rpc error: code = Unknown desc = failed to pull and unpack image "registry.localhost:5000/greenplum-operator:v2.2.0": failed to resolve reference "registry.localhost:5000/greenplum-operator:v2.2.0": failed to do request: Head https://registry.localhost:5000/v2/greenplum-operator/manifests/v2.2.0: http: server gave HTTP response to HTTPS client
3m1s        Warning   Failed                    pod/greenplum-operator-76b544fbb9-pm7t2    Error: ImagePullBackOff
3m1s        Normal    BackOff                   pod/greenplum-operator-76b544fbb9-pm7t2    Back-off pulling image "registry.localhost:5000/greenplum-operator:v2.2.0"
  

Короче говоря:

http: сервер дал HTTP-ответ клиенту HTTPS

Мой кластер также запущен и работает:

 $ k3d cluster create --agents 2 --k3s-server-arg --disable=traefik
  --volume $HOME/.k3d/registries.yaml:/etc/rancher/k3s/my-registries.yaml
  

Как вы можете видеть:

 $ cat ${HOME}/.k3d/registries.yaml
mirrors:
  "registry.localhost:5000":
    endpoint:
      - "http://registry.localhost:5000"
  

Есть идеи?

Ответ №1:

Сделайте это своими работниками

Создайте или измените файл /etc/docker/daemon.json

 { "insecure-registries":["registry.localhost:5000"] }
  

Перезапустите демон docker

 sudo service docker restart
  

Источник: https://github.com/docker/distribution/issues/1874

Ответ №2:

Проблема была связана с неправильной записью. k3s

k3s необходимо получить доступ к /etc/rancher/k3s/registries.yaml файлу, как вы можете видеть здесь.

Проблема my-registries.yaml в том, что вместо registries.yaml :

 $ k3d cluster create --agents 2 --k3s-server-arg --disable=traefik
  --volume $HOME/.k3d/registries.yaml:/etc/rancher/k3s/my-registries.yaml
  

Проблема была решена:

 $ k3d cluster create --agents 2 --k3s-server-arg --disable=traefik
  --volume $HOME/.k3d/registries.yaml:/etc/rancher/k3s/registries.yaml