嘗試從 k3s 的本機 docker 註冊表(harbor)提取映像時出現 401 Unauthorized

嘗試從 k3s 的本機 docker 註冊表(harbor)提取映像時出現 401 Unauthorized

由於工作原因,我需要使用以下命令自行託管本機 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條目包含authtls部分,但由於冗餘的錯誤放置的註冊表項,該部分似乎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

請隨意刪除它,並讓我知道這是否可以解決問題

此外,作為旁注,您可能需要使用 標誌--debugdocker獲取有關遇到的錯誤的更多詳細信息

相關內容