Получение 401 Unauthorized при попытке извлечь образы из локального реестра Docker (harbor) из k3s

Получение 401 Unauthorized при попытке извлечь образы из локального реестра Docker (harbor) из k3s

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

Моя идея заключается в том, чтобы обслуживать этот сервер Harborконтейнерdслужба, запущенная внутри кластера 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, официальную документацию и несколько руководств по устранению неполадок, но так и не понял, что я делаю не так.

401 Несанкционированный

решение1

Записи configsсодержат разделы authи , tlsно, по-видимому, 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чтобы получить более подробную информацию о возникшей ошибке.

Связанный контент