Получение ошибки 401 Unauthorized при попытке получить изображения из локального реестра докеров (гавани) из k3s.

В связи с работой мне нужно самостоятельно разместить локальный прокси-кеш докера с помощью Harbour . Итак, я обратился к их документу, установил сервер и правильно настроил его, получив доступ к нему через полное доменное имя и используя самозаверяющий сертификат. я могу использоватьdocker loginот внешних клиентов иdocker pullбез проблем.

Моя идея состоит в том, чтобы обслуживать этот сервер Harbour для службы контейнеров , работающей внутри моего кластера k3s. Из плоскости управления кластера (имя хоста: control01) я могу получить изображения:

      /usr/local/bin/ctr -a /run/k3s/containerd/containerd.sock image pull 

harbor.virtalus.com/dockerhubproxy/library/ubuntu:20.04
harbor.virtalus.com/dockerhubproxy/library/ubuntu:20.04:                          resolved       |++++++++++++++++++++++++++++++++++++++|
index-sha256:4e9ed8dc49c4c21888f4053e59d7ef0959f57e77d0fbe47ba0063fddd6b70f2c:    done           |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:7b3e30a1f373b0621681f13b92feb928129c1c38977481ee788a793fcae64fb9: exists         |++++++++++++++++++++++++++++++++++++++|
layer-sha256:8e5c1b329fe39c318c0d49821b339fb94a215c5dc0a2898c8030b5a4d091bcba:    exists         |++++++++++++++++++++++++++++++++++++++|
config-sha256:1a437e363abfa47bfe4b3f5906b7444d12346102d944ebddd537e47a62fc6f52:   exists         |++++++++++++++++++++++++++++++++++++++|
elapsed: 10.3s                                                                    total:  1.4 Ki (137.0 B/s)
unpacking linux/amd64 sha256:4e9ed8dc49c4c21888f4053e59d7ef0959f57e77d0fbe47ba0063fddd6b70f2c...

Поэтому я настраиваю/etc/rancher/k3s/registries.yamlкак следует из официального документа Rancher :

      cat << EOF > /etc/rancher/k3s/registries.yaml
mirrors:
  "*":
    endpoint:
      - "https://harbor.virtalus.com"
configs:
  "https://harbor.virtalus.com":
    auth:
      username: admin
      password: Harbor12345  
    tls:
      cert_file: /root/harbor.virtalus.com.cert
      key_file: /root/harbor.virtalus.com.key
      ca_file: /root/ca.crt
      insecure_skip_verify: true
EOF

Я пробовал с и безconfigраздел, но он продолжает говорить мне:

      pulling from host harbor.virtalus.com failed with status code [manifests 1.8.6]: 401 Unauthorized

Я потратил на это последние 4 часа, прочитал несколько тем о проблемах на GitHub, официальный документ и несколько руководств по устранению неполадок, но до сих пор не знаю, что делаю не так.

1 ответ

The configsзаписи содержатauthи разделы, но похоже, чтоtlsраздел не учитывается из-за лишней и неуместной записи реестра

      cat << EOF > /etc/rancher/k3s/registries.yaml
mirrors:
  "*":
    endpoint:
      - "https://harbor.virtalus.com"
configs:
  "https://harbor.virtalus.com":
    auth:
      username: admin
      password: Harbor12345

"https://harbor.virtalus.com":

          tls:
      cert_file: /root/harbor.virtalus.com.cert
      key_file: /root/harbor.virtalus.com.key
      ca_file: /root/ca.crt
      insecure_skip_verify: true
 EOF

Не стесняйтесь удалить его и дайте мне знать, решит ли это проблему.

Кроме того, в качестве примечания вы можете использовать--debugфлагdockerчтобы получить более подробную информацию о возникшей ошибке

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