首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes上的私有docker注册中心

Kubernetes上的私有docker注册中心
EN

Stack Overflow用户
提问于 2019-04-13 08:54:32
回答 2查看 963关注 0票数 1

我正在尝试使用注册表的官方docker镜像在Kubernetes上部署一个私有Docker注册表。但是,我在部署时收到了一些警告,而且我无法在pod中访问它。

来自注册表容器的输出:

代码语言:javascript
复制
time="2019-04-12T18:40:21Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_PORT" 
time="2019-04-12T18:40:21Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_PORT_5000_TCP"  
time="2019-04-12T18:40:21Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_PORT_5000_TCP_ADDR" 
time="2019-04-12T18:40:21Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_PORT_5000_TCP_PORT" 
time="2019-04-12T18:40:21Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_PORT_5000_TCP_PROTO" 
time="2019-04-12T18:40:21Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_SERVICE_HOST" 
time="2019-04-12T18:40:21Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_SERVICE_PORT" 
time="2019-04-12T18:40:21.145278902Z" level=warning msg="No HTTP secret provided - generated random secret. This may cause problems with uploads if multiple registries are behind a load-balancer. To provide a shared secret, fill in http.secret in the configuration file or set the REGISTRY_HTTP_SECRET environment variable." go.version=go1.11.2 instance.id=988660e4-d4b9-4d21-a42e-c60c82d00a73 service=registry version=v2.7.1 
time="2019-04-12T18:40:21.145343563Z" level=info msg="redis not configured" go.version=go1.11.2 instance.id=988660e4-d4b9-4d21-a42e-c60c82d00a73 service=registry version=v2.7.1 
time="2019-04-12T18:40:21.149771291Z" level=info msg="Starting upload purge in 2m0s" go.version=go1.11.2 instance.id=988660e4-d4b9-4d21-a42e-c60c82d00a73 service=registry version=v2.7.1 
time="2019-04-12T18:40:21.163063574Z" level=info msg="using inmemory blob descriptor cache" go.version=go1.11.2 instance.id=988660e4-d4b9-4d21-a42e-c60c82d00a73 service=registry version=v2.7.1 
time="2019-04-12T18:40:21.163689856Z" level=info msg="listening on [::]:5000" go.version=go1.11.2 instance.id=988660e4-d4b9-4d21-a42e-c60c82d00a73 service=registry version=v2.7.1 

Kubernetes上部署的yaml文件:

代码语言:javascript
复制
104 apiVersion: extensions/v1beta1
105 kind: Deployment
106 metadata:
107   name: registry
108   namespace: docker
109 spec:
110   replicas: 1
111   template:
112     metadata:
113       labels:
114         name: registry
115     spec:
116       containers:
117       - resources:
118         name: registry
119         image: registry:2
120         ports:
121         - containerPort: 5000
122         volumeMounts:
123         - mountPath: /var/lib/registry
124           name: images
140       volumes:
141       - name: images
142         hostPath:
143           path: /mnt/nfs/docker-local-registry/images
150       nodeSelector:
151         name: master
152 ---
153 apiVersion: v1
154 kind: Service
155 metadata:
156   name: registry
157   namespace: docker
158 spec:
159   ports:
160   - port: 5000
161     targetPort: 5000
162   selector:
163     name: registry

即使我忽略这些警告,使用registry.docker:5000/image_nameregistry.docker.svc.cluster.local/image_name访问pod级别的注册表也不会起作用,因为无法解析主机。我不想暴露注册表。我想要的是能够从那里的豆荚中拉出图像。

EN

回答 2

Stack Overflow用户

发布于 2019-04-13 22:39:17

不确定,我完全理解您的用例,但如果您想要启动一个基于内部注册表提供的镜像的pod,重要的是要了解集群节点上的pod而不是dockerd正在拉取镜像。无法在那里解析内部DNS名称,如*svc.cluster.local。至少在许多K8s环境中是这样的。有些人在这里讨论这个:https://github.com/knative/serving/issues/1996它可能会有帮助,如果你张贴哪个Kubernetes提供商(GKE,EKS等)您正在使用。解决方案是配置集群节点来解析这些名称,或者使用入口在外部公开您的注册表。

票数 3
EN

Stack Overflow用户

发布于 2019-04-18 00:06:21

似乎您在没有检查需求的情况下将注册表映像打包到部署中。在使用您的部署时,我遇到了同样的错误。经过一段时间尝试正确打包并读取docker hub上的requirements。此映像需要一些其他设置。您需要存储您的htpasswd,为HTPASSWD创建证书,并为镜像创建目录。此外,您还需要指定env vars并在容器中创建相应的路径。

代码语言:javascript
复制
REGISTRY_AUTH 
REGISTRY_AUTH_HTPASSWD_REALM 
REGISTRY_AUTH_HTPASSWD_PATH 
REGISTRY_HTTP_TLS_CERTIFICATE 
REGISTRY_HTTP_TLS_KEY

这是一个我用过并成功部署的注册表tutorial。如果你有问题,请更新问题,我会尽力帮助你。此外,这个中等的article可以给你一些想法(但要注意,docker撰写文件需要一些编辑,因为它不能在文章中发布的形式中工作)。

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

https://stackoverflow.com/questions/55661067

复制
相关文章

相似问题

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