Obtendo 401 não autorizado ao tentar extrair imagens do registro do docker local (porto) do k3s

Obtendo 401 não autorizado ao tentar extrair imagens do registro do docker local (porto) do k3s

Devido ao trabalho, preciso auto-hospedar um cache de proxy docker local usandoPorto. Então fui ao documento deles e instalei o servidor e configurei-o corretamente, acessando-o via FQDN e usando um certificado autoassinado. Consigo usar docker loginde clientes externos e docker pullsem problemas.

Minha ideia é servir esse servidor Harbour para ocontêinerserviço em execução dentro de um cluster k3s que tenho. Do plano de controle do cluster (nome do host: control01), posso extrair imagens:

/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...

Então eu configuro da /etc/rancher/k3s/registries.yamlseguinte formadocumento oficial de 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

Eu tentei com e sem a configseção, mas ela continua me dizendo:

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

Passei as últimas 4 horas nisso, li alguns tópicos de problemas do github, o documento oficial e vários guias de solução de problemas, mas ainda não sei o que estou fazendo de errado.

401 não autorizado

Responder1

As configsentradas contêm as seções authe tlsmas parece que a tlsseção não é levada em consideração devido a uma entrada de registro redundante e mal colocada

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

Sinta-se à vontade para removê-lo e me avise se isso resolver o problema

Além disso, como observação, você pode querer usar o --debugsinalizador de dockerpara obter mais detalhes sobre o erro encontrado

informação relacionada