Получение ошибки 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
чтобы получить более подробную информацию о возникшей ошибке