热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

码头工人在工件中登录

我遇到错误:守护程序的错误响应:获取

我遇到错误:

守护程序的错误响应:获取https://my-registry.local:443/v2/:获取http://my-registry.local/v2/token?account=admin&client_id=docker&offline_token=true&service=my-registry.local:net / http:请求取消
d(等待标头时超出Client.Timeout)(等待标头时超过Client.Timeout)

据我所见,它正在尝试从我的VIP不在监听的“ http”(而不是“ https”)获取脱机令牌。

此Artifactory实例已部署在我们的内部K8中,我怀疑它可能与该部署有某些关系。我已经很简单地设置了它:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: artifactory
annotations:
ingress.kubernetes.io/force-ssl-redirect: "true"
ingress.kubernetes.io/proxy-read-timeout: "600"
ingress.kubernetes.io/proxy-send-timeout: "600"
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite ^/(v2)/token /artifactory/api/docker/null/v2/token;
rewrite ^/(v2)/([^\/]*)/(.*) /artifactory/api/docker/$2/$1/$3;
rewrite ^/webapp$ artifactory/webapp/ redirect;
nginx.ingress.kubernetes.io/proxy-body-size: "0"
spec:
rules:
- host: my-registry.local
http:
paths:
- path: /artifactory
backend:
serviceName: artifactory
servicePort: 80
- path: /v2
backend:
serviceName: artifactory
servicePort: 80
- path: /v1
backend:
serviceName: artifactory
servicePort: 80

其他所有方法都可以使用:UI,头盔,NPM等。问题似乎是特定于Docker的。

如您所见,它尝试使用https正确登录注册表,但是在后端以某种方式尝试使用'http'获取令牌,但我看不到Artifactory配置中的哪个位置解决此问题,因此为什么我认为它一定是带有入口控制器的东西。有人看过吗?



所以从这里

- path: /artifactory
backend:
serviceName: artifactory
servicePort: 80

好像您的入口进入了一个名为artifactory的nginx服务?在这种情况下,您将需要共享nginx conf。查找带有X-Artifactory-Override-Base-Url的行,并检查基本URL架构是否为https而不是http。否则,在Artifactory UI中设置custombase URL可能会有所帮助(https://my-registry.local)。

也可以尝试以下方法:

$ curl -vL -u admin https://my-registry.local:443/v2/token

查看您是否获得令牌作为回应。


推荐阅读
author-avatar
pbird
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有