Skip to main content
Bumped by Community user
edited tags; edited tags
Link
030
  • 13.3k
  • 16
  • 75
  • 175
Source Link
acd
  • 121
  • 2
  • 6

Kubernets docker registry behind nginx-ingress

I try to setup docker-registry in Kubernetes cluster behind the nginx-ingress controller. The issue is, when I try to push the image into private registry, it tells me:

Get https://registry.local/v2/: x509: certificate is valid for ingress.local, not registry.local

When I curl it, I get response from ingress' backend - 404.

Here's ingress' manifest:

kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: docker-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  tls:
  - hosts: [ 'registry.local' ]
  - secretName: registry
  rules:
  - host: registry.local
    http:
      paths:
      - backend:
          serviceName: docker-registry
          servicePort: 5000
        path: /

And here's docker-registry manifest:

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  labels:
    app: docker-registry
  name: docker-registry
spec:
  replicas: 1
  selector:
    matchLabels:
      app: docker-registry
  template:
    metadata:
      labels:
        app: docker-registry
    spec:
      containers:
      - command:
        - /bin/registry
        - serve
        - /etc/docker/registry/config.yml
        env:
        - name: REGISTRY_HTTP_ADDR
          value: 0.0.0.0:5000
        - name: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY
          value: /var/lib/registry
        - name: REGISTRY_HTTP_TLS_CERTIFICATE
          value: /certs/ca.crt
        - name: REGISTRY_HTTP_TLS_KEY
          value: /certs/domain.key
        image: registry:2.6.2
        imagePullPolicy: IfNotPresent
        name: docker-registry
        ports:
        - containerPort: 5000
          name: http
          protocol: TCP
        volumeMounts:
        - mountPath: /var/lib/registry
          name: image-store
        - mountPath: /certs
          name: certs
      volumes:
      - name: image-store
        emptyDir: {}
      - name: certs
        configMap:
          name: certs
---
kind: Service
apiVersion: v1
metadata:
  labels:
    app: docker-registry
  name: docker-registry
spec:
  ports:
  - name: http
    port: 5000
    protocol: TCP
    targetPort: 5000
  selector:
    app: docker-registry
  type: ClusterIP

Separetly, nginx-ingress and docker-registry, work fine, but don't together.

Nothing valuabe from the ingress controller logs can be found.