k3s의 로컬 docker 레지스트리(항구)에서 이미지를 가져오는 동안 401 Unauthorized가 발생함

k3s의 로컬 docker 레지스트리(항구)에서 이미지를 가져오는 동안 401 Unauthorized가 발생함

업무로 인해 다음을 사용하여 로컬 도커 프록시 캐시를 자체 호스팅해야 합니다.항구. 그래서 나는 그들의 문서로 가서 서버를 설치하고 적절하게 구성했으며 FQDN을 통해 액세스하고 자체 서명된 인증서를 사용했습니다. docker login외부 클라이언트에서 docker pull문제 없이 사용할 수 있습니다 .

내 생각은 이 Harbor 서버를컨테이너내가 가지고 있는 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포함되어 있지만 중복된 위치가 잘못된 레지스트리 항목으로 인해 해당 섹션이 고려되지 않은 것 같습니다.authtlstls

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

관련 정보