Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker登录到artifactory_Docker_Kubernetes_Artifactory_Nginx Ingress - Fatal编程技术网

docker登录到artifactory

docker登录到artifactory,docker,kubernetes,artifactory,nginx-ingress,Docker,Kubernetes,Artifactory,Nginx Ingress,我得到一个错误: 来自守护进程的错误响应:Get:Get:net/http:request cancele d(等待标头时超过Client.Timeout)(等待标头时超过Client.Timeout) 从我所看到的,它试图从我的VIP没有监听的“http”获取脱机令牌,而不是“https” Artifactory的这个实例部署在我们的内部K8中,我怀疑它可能与此部署的nginx入口有关。我已经很直接地设置好了: apiVersion: networking.k8s.io/v1beta1 kin

我得到一个错误:

来自守护进程的错误响应:Get:Get:net/http:request cancele d(等待标头时超过Client.Timeout)(等待标头时超过Client.Timeout)

从我所看到的,它试图从我的VIP没有监听的“http”获取脱机令牌,而不是“https”

Artifactory的这个实例部署在我们的内部K8中,我怀疑它可能与此部署的nginx入口有关。我已经很直接地设置好了:

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、helm、NPM等。。这个问题似乎与码头工人有关

如您所见,它尝试使用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可能会有所帮助()

还可以尝试以下方法:

$ curl -vL -u admin https://my-registry.local:443/v2/token 
看看你是否得到一个令牌作为回应