首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在path `/ registry‘上公开Kubernetes集群中的私有码头注册中心

在path `/ registry‘上公开Kubernetes集群中的私有码头注册中心
EN

Stack Overflow用户
提问于 2019-03-25 12:42:21
回答 2查看 520关注 0票数 3

我在Kubernetes 1.13集群中有一个私有Docker注册中心,该集群由Kubernetes NGINX入口控制器0.23.0和以下Ingress对象公开:

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
  name: my-name
  namespace: my-namespace
spec:
  rules:
  - host: my-domain
    http:
      paths:
      - backend:
          serviceName: registry
          servicePort: 5000
        path: /?(.*)
  tls:
  - hosts:
    - my-domain
    secretName: my-secret

这使我能够像下面这样提取一个现有的图像:

代码语言:javascript
复制
docker image pull my-cluster/my-image

我现在不会更改设置,使注册表在my-cluster/registry上公开。这是如何做到的,甚至可能吗?

path改为/registry/?(.*)并不能奏效。docker login my-cluster/registry现在生成以下错误消息,docker image pull my-cluster/registry/my-image也不起作用。我目前对根本原因的猜测是,注册表还使用前缀registry (在Ingress中配置)来进行内部重定向。如果适用,如何配置(最好也在Ingress中)?

代码语言:javascript
复制
Error response from daemon: login attempt to https://my-cluster/v2/ failed with status: 404 Not Found
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-25 13:45:05

我现在得出的结论是,不可能通过类似URL的位置(如my-cluster/registry)来引用Docker注册中心,而不可能使用类似主机的位置(例如带有可选端口的my-cluster )。

因此,我将为registry.my-cluster保留一个单独的IP地址和证书,然后继续进行。

票数 2
EN

Stack Overflow用户

发布于 2019-04-08 15:24:58

我也有一个类似的问题,我试图在/registry路径上公开带有nginx入口的注册用户。

首先,我成功地公开了这个配置nginx:

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: registry-ingress
  namespace: devops
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
    certmanager.k8s.io/cluster-issuer: letsencrypt-staging
    kubernetes.io/tls-acme: 'true'
spec:
  tls:
  - hosts:
    - registry.host.com
    secretName: letsencrypt-staging
  rules:
  - host: registry.host.com
    http:
      paths:
      - path: /
        backend:
          serviceName: registry-ui
          servicePort: 8080

另一方面,当我尝试使用路径公开服务时,我只有工作的主页,因为我试图在子页面(图像的一个页面)中导航,我有一个404错误。

代码语言:javascript
复制
spec:
  tls:
  - hosts:
    - host.com
    secretName: letsencrypt-staging
  rules:
  - host: host.com
    http:
      paths:
      - path: /registry
        backend:
          serviceName: registry-ui
          servicePort: 8080

我想知道你是如何得出这样的结论的:不可能有一个主机/regitry链接起作用?

衷心感谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55338074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档