kubernetes - 如何引用 kubernetes docker-registry
问题描述
我已经通过 helm 在 Kubernetes 上安装了 docker-registry。
我可以通过 docker push 来docker push 0.0.0.0:5000/<my-container>:v1
使用端口转发。
现在如何从 deployment.yaml 引用注册表中的图像?
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: <my-container>-deployment-v1
spec:
replicas: 1
template:
metadata:
labels:
app: <my-container>-deployment
version: v1
spec:
containers:
- name: <my-container>
image: 0.0.0.0:5000/<my-container>:v1 # <<< ????
imagePullPolicy: Always
ports:
- containerPort: 80
imagePullSecrets:
- name: private-docker-registry-secret
这确实列出了我的容器:
curl -X GET http://0.0.0.0:5000/v2/_catalog
部署时我不断收到ImagePullBackOff。
我使用内部服务名称和集群 IP 地址绑定,仍然无法正常工作。
然后尝试使用秘密:
{
"kind": "Secret",
"apiVersion": "v1",
"metadata": {
"name": "running-buffoon-docker-registry-secret",
"namespace": "default",
"selfLink": "/api/v1/namespaces/default/secrets/running-buffoon-docker-registry-secret",
"uid": "127c93c1-53df-11e9-8ede-a63ad724d5b9",
"resourceVersion": "216488",
"creationTimestamp": "2019-03-31T18:01:56Z",
"labels": {
"app": "docker-registry",
"chart": "docker-registry-1.7.0",
"heritage": "Tiller",
"release": "running-buffoon"
}
},
"data": {
"haSharedSecret": "xxx"
},
"type": "Opaque"
}
并将秘密添加到deployment.yaml:
imagePullSecrets:
- name: running-buffoon-docker-registry-secret
然后我得到:
image "x.x.x.x/:<my-container>v1": rpc error: code = Unknown desc = Error response from daemon: Get https://x.x.x.x/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
解决方案
您需要获取本地 docker 注册表的cluster-ip。
您将在仪表板中找到它 - 只需访问注册表 pod 页面,然后访问相关的service
. 将您的图像规格替换0.0.0.0
为集群 ip。还要确保port
匹配 - 通常注册表服务公开的端口与集群内公开的实际端口不同。如果您在注册表中设置了身份验证,则也需要imagepullsecret
。
我已经在博客中介绍了使用本地注册表设置 minikube - 可能会有所帮助。https://amritbera.com/journal/minikube-insecure-registry.html
推荐阅读
- sql - 根据“主”表和“客场”表中的条件计算引用数量的最佳方法是什么?
- rest - React 的麻烦,安静的 DELETE
- ios - 如何解决此问题“未找到 GRPCClient 框架,链接器命令失败,退出代码为 1(使用 -v 查看调用)”?
- c++ - 为什么c ++ pthread自行退出而没有进程崩溃?
- apache-nifi - NiFi - CaptureChangeMySQL 将 json 转换为 ["col_name": "col_value"] 格式
- windows - 如何使用主机名访问连接在本地网络中的设备?
- c# - 在 C# 中动态更改列表视图图标大小
- azure - 为 ASP.NET Core Web 应用程序覆盖 AddMicrosoftAccount() 标识 OAuth 中的重定向 URL
- typescript - 合并现有类型的类声明
- javascript - 触发点击 SVG 图像