-
-
Save coco98/b750b3debc6d517308596c248daf3bb1 to your computer and use it in GitHub Desktop.
apiVersion: v1 | |
kind: ReplicationController | |
metadata: | |
name: kube-registry-v0 | |
namespace: kube-system | |
labels: | |
k8s-app: kube-registry | |
version: v0 | |
spec: | |
replicas: 1 | |
selector: | |
k8s-app: kube-registry | |
version: v0 | |
template: | |
metadata: | |
labels: | |
k8s-app: kube-registry | |
version: v0 | |
spec: | |
containers: | |
- name: registry | |
image: registry:2.5.1 | |
resources: | |
# keep request = limit to keep this container in guaranteed class | |
limits: | |
cpu: 100m | |
memory: 100Mi | |
requests: | |
cpu: 100m | |
memory: 100Mi | |
env: | |
- name: REGISTRY_HTTP_ADDR | |
value: :5000 | |
- name: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY | |
value: /var/lib/registry | |
volumeMounts: | |
- name: image-store | |
mountPath: /var/lib/registry | |
ports: | |
- containerPort: 5000 | |
name: registry | |
protocol: TCP | |
volumes: | |
- name: image-store | |
hostPath: | |
path: /data/registry/ | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: kube-registry | |
namespace: kube-system | |
labels: | |
k8s-app: kube-registry | |
spec: | |
selector: | |
k8s-app: kube-registry | |
ports: | |
- name: registry | |
port: 5000 | |
protocol: TCP | |
--- | |
apiVersion: extensions/v1beta1 | |
kind: DaemonSet | |
metadata: | |
name: kube-registry-proxy | |
namespace: kube-system | |
labels: | |
k8s-app: kube-registry | |
kubernetes.io/cluster-service: "true" | |
version: v0.4 | |
spec: | |
template: | |
metadata: | |
labels: | |
k8s-app: kube-registry | |
version: v0.4 | |
spec: | |
containers: | |
- name: kube-registry-proxy | |
image: gcr.io/google_containers/kube-registry-proxy:0.4 | |
resources: | |
limits: | |
cpu: 100m | |
memory: 50Mi | |
env: | |
- name: REGISTRY_HOST | |
value: kube-registry.kube-system.svc.cluster.local | |
- name: REGISTRY_PORT | |
value: "5000" | |
ports: | |
- name: registry | |
containerPort: 80 | |
hostPort: 5000 |
Hello - I'm getting a connection refused error, not sure what's causing it.
My setup:
MacOS with docker desktop, created kubernetes cluster with 3 nodes:
╰─ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane,master 10m v1.23.1
minikube-m02 Ready <none> 10m v1.23.1
minikube-m03 Ready <none> 9m35s v1.23.1
I added localhost:5000 as an insecure registry in docker desktop's "Docker Engine" setting; not sure if this matters but I've tried both with and without:
"insecure-registries": [
"127.0.0.1:5000"
],
Steps:
1.
Setup the registry
kubectl create -f kube-registry.yaml
2.
Created a port-forward:
kubectl port-forward --namespace kube-system \
$(kubectl get po -n kube-system | grep kube-registry-v0 | \awk '{print $1;}') 5000:5000
3.
Built docker image of a sample app and tagged it:
╰─ docker image ls | grep node
127.0.0.1:5000/node-redis-mongo-app latest bb331bf61bc4 33 hours ago 954MB
node-redis-mongo-app latest bb331bf61bc4 33 hours ago 954MB
4.
Attempted to push image to registry but ended up with the error:
╰─ docker push 127.0.0.1:5000/node-redis-mongo-app
Using default tag: latest
The push refers to repository [127.0.0.1:5000/node-redis-mongo-app]
Get "http://127.0.0.1:5000/v2/": dial tcp 127.0.0.1:5000: connect: connection refused
5.
I can curl the registry just fine:
╰─ curl 127.0.0.1:5000
Handling connection for 5000
Any ideas?
I also ran into the issue above. I'm using rootless docker fwiw. As a workaround, I added the result of minikube ip
as an insecure registry in my docker daemon and restarted it. I was able to docker push $(minikube ip):5000/<image>:<tag>
and pulling on cluster side worked fine as localhost:5000/<image>:<tag>
.
@johndiego If I understand your questions correctly, you want to know how to push images from your host machine to the docker registry running within minikube. If yes, you can follow these simple steps:
Step 1: Expose the minikube registry port to your host machine
Please refer to this this link for detailed instructions.
https://hasura.io/blog/sharing-a-local-registry-for-minikube-37c7240d0615/
Step 2: Tag image on host machine
docker tag docker/whalesay localhost:5000/whalesay
Step 3: Push image from host to minikube registry
docker push localhost:5000/whalesay