从Kubernetes内部访问Docker注册表时出现问题

从Kubernetes内部访问Docker注册表时出现问题,kubernetes,docker-registry,haproxy-ingress,Kubernetes,Docker Registry,Haproxy Ingress,我在Kubernetes集群中设置了一个私有docker注册表。部署如下 apiVersion:apps/v1 种类:部署 元数据: 姓名:注册处 标签: 应用程序:注册表 规格: 副本:1份 选择器: 火柴标签: 应用程序:注册表 模板: 元数据: 标签: 应用程序:注册表 规格: 卷数: -名称:auth vol 秘密: secretName:“注册表凭据” 容器: -图像:注册表:2 姓名:注册处 imagePullPolicy:如果不存在 环境: -名称:注册表_AUTH 值:“htpa

我在Kubernetes集群中设置了一个私有docker注册表。部署如下

apiVersion:apps/v1 种类:部署 元数据: 姓名:注册处 标签: 应用程序:注册表 规格: 副本:1份 选择器: 火柴标签: 应用程序:注册表 模板: 元数据: 标签: 应用程序:注册表 规格: 卷数: -名称:auth vol 秘密: secretName:“注册表凭据” 容器: -图像:注册表:2 姓名:注册处 imagePullPolicy:如果不存在 环境: -名称:注册表_AUTH 值:“htpasswd” -名称:REGISTRY\u AUTH\u HTPASSWD\u REALM 值:“k8s_用户” -名称:注册表\u验证\u HTPASSWD\u路径 值:“/auth/htpasswd” 端口: -集装箱港口:5000 体积数量: -名称:auth vol 装载路径:/auth 我正在使用以下入口进行路由

apiVersion:networking.k8s.io/v1 种类:入口 元数据: 名称:注册表入口 规格: 规则: -主持人:“注册表。” http: 路径: -路径:“/” 路径类型:前缀 后端: 服务: 姓名:注册处 端口: 电话:80 在外部,我有一个负载平衡器终止SSL,然后将请求转发到适当的HTTP流量入口端口。从网络外部,我从注册表中推/拉没有问题。然而,在网络内部,当我尝试部署某些东西并运行
kubectl pod descripe

从消息中键入原因年龄
----     ------     ----               ----               -------
正常计划的26s默认计划程序已成功将default/server-6df575c99c-ltwqr分配给k8s-root-default-pool-3de67
正常后退24秒(x2/25秒)kubelet后退拉取图像“注册表/服务器:0.0.1”
警告失败24秒(x2超过25秒)kubelet错误:ImagePullBackOff
正常拉取11s(x2/25s)kubelet拉取映像“注册表/服务器:0.0.1”
警告失败11s(x2/25s)kubelet未能提取映像“registry./server:0.0.1”:rpc错误:code=Unknown desc=来自守护程序的错误响应:Gethttps://registry./v2/: x509:证书对haproxy-controller.default有效,而不是注册表..io
警告失败11秒(x2超过25秒)kubelet错误:ErrImagePull

似乎请求正在命中HAProxy Ingress控制器证书,而不是进入外部世界并命中负载平衡器的SSL证书。有没有更好的方法可以让我这样做?

我想出来了。在我使用
kubectl expose deployment/registry
自动创建服务之前。我发现,如果我创建一个NodePort服务,这将在所有节点的固定端口上公开它

apiVersion:v1 种类:服务 元数据: 姓名:注册处 规格: 类型:节点端口 选择器: 应用程序:注册表 端口: -港口:5000 目标港:5000 节点端口:32500 这就允许我使用“localhost:32500”访问所有节点上的注册表。我还必须更新部署以从“localhost:32500”中提取映像

  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  26s                default-scheduler  Successfully assigned default/server-6df575c99c-ltwqr to k8s-root-default-pool-3de67
  Normal   BackOff    24s (x2 over 25s)  kubelet            Back-off pulling image "registry.<mydomain>/server:0.0.1"
  Warning  Failed     24s (x2 over 25s)  kubelet            Error: ImagePullBackOff
  Normal   Pulling    11s (x2 over 25s)  kubelet            Pulling image "registry.<mydomain>/server:0.0.1"
  Warning  Failed     11s (x2 over 25s)  kubelet            Failed to pull image "registry.<mydomain>/server:0.0.1": rpc error: code = Unknown desc = Error response from daemon: Get https://registry.<mydomain>/v2/: x509: certificate is valid for haproxy-controller.default, not registry.<mydomain>.io
  Warning  Failed     11s (x2 over 25s)  kubelet            Error: ErrImagePull