Kubernetes private registry doesn't work

3/30/2017

I'm using these configs: https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/registry

registry.yml:

apiVersion: v1
kind: ReplicationController
metadata:
  name: kube-registry-v0
  namespace: default
  labels:
    k8s-app: kube-registry
    version: v0
    kubernetes.io/cluster-service: "true"
spec:
  replicas: 1
  selector:
    k8s-app: kube-registry
    version: v0
  template:
    metadata:
      labels:
        k8s-app: kube-registry
        version: v0
        kubernetes.io/cluster-service: "true"
    spec:
      containers:
      - name: registry
        image: registry:2
        resources:
          limits:
            cpu: 100m
            memory: 100Mi
        env:
        - name: REGISTRY_HTTP_ADDR
          value: :5050
        - name: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY
          value: /var/lib/registry
        volumeMounts:
        - name: image-store
          mountPath: /var/lib/registry
        ports:
        - containerPort: 5050
          name: registry
          protocol: TCP
      volumes:
      - name: image-store
        emptyDir: {}

registry-service.yml:

apiVersion: v1
kind: Service
metadata:
  name: kube-registry
  namespace: default
  labels:
    k8s-app: kube-registry
    kubernetes.io/cluster-service: "true"
    kubernetes.io/name: "KubeRegistry"
spec:
  selector:
    k8s-app: kube-registry
  ports:
  - name: registry
    port: 5050
    protocol: TCP

registry-expose.yml:

apiVersion: v1
kind: Pod
metadata:
  name: kube-registry-proxy
  namespace: default
spec:
  containers:
  - name: kube-registry-proxy
    image: gcr.io/google_containers/kube-registry-proxy:0.3
    resources:
      limits:
        cpu: 100m
        memory: 50Mi
    env:
    - name: REGISTRY_HOST
      value: kube-registry.kube-system.svc.cluster.local
    - name: REGISTRY_PORT
      value: "5050"
    - name: FORWARD_PORT
      value: "5050"
    ports:
    - name: registry
      containerPort: 5050
      hostPort: 5050

Status:

$ kubectl get pods
NAME                     READY     STATUS    RESTARTS   AGE
kube-registry-proxy      1/1       Running   0          33m
kube-registry-v0-m57gk   1/1       Running   1          33m

$ kubectl get services
NAME            CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
kube-registry   10.98.134.140   <none>        5050/TCP   34m
kubernetes      10.96.0.1       <none>        443/TCP    2h

$ kubectl get componentstatuses
NAME                 STATUS    MESSAGE              ERROR
scheduler            Healthy   ok                   
controller-manager   Healthy   ok                   
etcd-0               Healthy   {"health": "true"} 

Can't see what's happening:

$ kubectl exec -it kube-registry-v0-m57gk -- bash
rpc error: code = 2 desc = containerd: container not started

There is no 5050 port opened on the host, but I'm unsure if it's the desired outcome or not. From inside the kube-registry-proxy some other containers can be pinged, but there are not enough tools installed to see clearly.

How to make the local registry work?

-- Velkan
docker
docker-registry
kubernetes

3 Answers

4/12/2017

can you please docker version on that node. this was major issue with docker 1.11.2 , and got fixed in 1.12.x

-- Suraj Narwade
Source: StackOverflow

4/1/2017

Run kubectl describe pod kube-registry-v0-m57gk and check pod status? It seems like container in kube-registry-v0-m57gk does't start correctly.

-- cute-frog
Source: StackOverflow

4/6/2017

Only with the registry container that happened that or with other cointaners as well?

If it happened to others it is because you are without a network plugin, for this you can use that of weave for example.

Kubectl apply -f https://git.io/weave-kube

-- Cristhian Bicca
Source: StackOverflow