【问题标题】:Ingress for Nexus Docker repository hosted on Kubernetes托管在 Kubernetes 上的 Nexus Docker 存储库的入口
【发布时间】:2021-02-14 13:55:00
【问题描述】:

我只是将一个 nexus 存储库部署到 Kubernetes 集群。这个关系有 3 个 docker 存储库。一个 docker hub 的代理,一个是私有的,一个是之前的。

我使用 haproxy 作为入口控制器。是否可以部署与此处描述的配置匹配的入口? Nexus3: Push to Docker Group Repo

我的目标是只有一个 url 可以推送和拉取到 docker 存储库。

【问题讨论】:

  • 不,但这不是解决方案,因为 npm 项目并不是唯一需要 docker 的项目
  • 对不起...错误的大脑范围:)
  • 但同样的概念也适用于 docker。污染全局命名空间不是一个好的解决方案。私有注册表的不同虚拟主机将关注点分开。
  • 污染全局命名空间是什么意思?
  • issues.sonatype.org/browse/NEXUS-10471。这将由 3.27 PRO 功能中的 nexus 本地处理

标签: docker kubernetes nexus haproxy-ingress


【解决方案1】:

我在这里发布我的解决方案。我使用自定义注释来实现生根以根据请求的 url 更正端点。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nexus-ingress-docker
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.org/client-max-body-size: "1G"
    nginx.org/proxy-buffering: "off"
    nginx.org/server-snippets: |
      location ~ ^/(v1|v2)/[^/]+/?[^/]+/blobs/ {
        if ($request_method ~* (POST|PUT|DELETE|PATCH|HEAD) ) {
            rewrite ^/(.*)$ /repository/docker-private/$1 last;
        }
        rewrite ^/(.*)$ /repository/docker-public/$1 last;
      }

      location ~ ^/(v1|v2)/ {
        if ($request_method ~* (POST|PUT|DELETE|PATCH) ) {
            rewrite ^/(.*)$ /repository/docker-private/$1 last;
        }
        rewrite ^/(.*)$ /repository/docker-public/$1 last;
      }
    nginx.org/location-snippets: |
      proxy_set_header X-Forwarded-Proto https;


spec:
  ingressClassName: nginx
  rules:
    - host: my-host
      http:
        paths:
          - backend:
              service:
                name: nexus
                port:
                  name: nexus
            path: /
            pathType: Prefix

还有服务:

apiVersion: v1
kind: Service
metadata:
  name: nexus
  labels:
    app: nexus
spec:
  type: ClusterIP
  ports:
    - port: 8081
      name: nexus
    - port: 8082
      name: docker-private
    - port: 8083
      name: docker-public
  selector:
    app: nexus

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 2021-10-24
    相关资源
    最近更新 更多