Obtener 401 no autorizado al intentar extraer imágenes del registro local de Docker (puerto) desde k3s

Obtener 401 no autorizado al intentar extraer imágenes del registro local de Docker (puerto) desde k3s

Debido al trabajo, necesito autohospedar un caché proxy de Docker local usandoPuerto. Entonces fui a su documento, instalé el servidor y lo configuré correctamente, accediendo a él a través de FQDN y usando un certificado autofirmado. Puedo usarlo docker logindesde clientes externos y docker pullsin problema.

Mi idea es servir este servidor Harbor alcontenedorservicio que se ejecuta dentro de un clúster k3s que tengo. Desde el plano de control del clúster (nombre de host: control01) puedo extraer imágenes:

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

Entonces configuro el /etc/rancher/k3s/registries.yamlde la siguiente maneradocumento 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

Lo he probado con y sin la configsección pero sigue diciéndome:

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

He pasado las últimas 4 horas en esto, he leído algunos hilos de problemas de github, el documento oficial y varias guías de solución de problemas, pero todavía no sé qué estoy haciendo mal.

401 No autorizado

Respuesta1

Las configsentradas contienen las secciones authy tlspero parece que la tlssección no se tiene en cuenta debido a una entrada de registro redundante y extraviada.

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

No dudes en eliminarlo y avísame si eso resuelve el problema.

Además, como nota al margen, es posible que desee utilizar la --debugmarca de dockerpara obtener más detalles sobre el error encontrado.

información relacionada