CodeReady 容器和“vsock”模式的特别说明

CodeReady 容器和“vsock”模式的特别说明

我正在尝试使用以下方式连接 openshift 集群的内部 docker 注册表

/bin/docker login -u user -p password` `oc get svc -n default | grep docker-registry `:5000

收到以下消息:

Error response from daemon: Get https://VirtualIP:5000: cannotconnect

答案1

我假设您正在使用 OpenShift 版本 4。可能这甚至可能采用 CodeReady Containers(单节点 OpenShift 4 开发人员类型的环境)的形式。

OpenShift 将在以下 URL 上公开其容器注册表:

https://默认路线-openshift-image-registry.apps-crc.testing:5000/

(其中 apps-crc.testing 是您在部署中的应用程序域)。请注意,这是用于对图像存储库的外部访问;在内部,您需要引用图像(在本例中,项目“shiny”中的图像“shiny-proxy:latest”),如下所示:

图像注册表.openshift-图像注册表.svc:5000/shiny/shiny-proxy:最新

对于 CodeReady Containers,您可能会看到: https://code-ready.github.io/crc/#accessing-the-internal-openshift-registry_gsg

这也将帮助您解决证书问题(例如自签名证书)。

请特别注意您的登录方式;您不使用密码,而是使用令牌,您可以使用“oc whoami -t”获取令牌。

PS> docker login -u developer -p $(oc whoami -t) `
https://default-route-openshift-image-registry.apps-crc.testing:5000/

CodeReady 容器和“vsock”模式的特别说明

如果您使用的是“vsock”模式。您需要将端口转发到 image-registry 服务(作为 kubeadmin;开发人员用户无权访问)。此外,Docker 守护程序需要能够连接到该转发端口,而 127.0.0.1 将不起作用,因此允许从 0.0.0.0 连接端口转发(注意潜在的访问问题)并让 Docker 连接到“host.docker.internal”。

PS> oc -n openshift-image-registry port-forward service/image-registry 5000:5000 --address 0.0.0.0

您需要调整 Docker Daemon 的不安全注册表以添加 host.docker.internal:

{
  "registry-mirrors": [],
  "insecure-registries": [
    "host.docker.internal:5000"
  ],
  "debug": false,
  "experimental": false,
  "features": {
    "buildkit": true
  }
}
PS> docker login -u developer -p $(oc whoami -t) host.docker.internal:5000

当然,“host.docker.internal”这个名称具有误导性,让人误以为这是 OpenShift 内部注册表。让我们标记并将镜像推送到 OpenShift

PS> docker tag openshift-r-shiny:latest host.docker.internal:5000/cameron-rshiny/openshift-r-shiny:latest
docker push host.docker.internal:5000/cameron-rshiny/openshift-r-shiny:latest

核实:

PS> oc -n cameron-rshiny get is
NAME                IMAGE REPOSITORY                                                                           TAGS     UPDATED
openshift-r-shiny   default-route-openshift-image-registry.apps-crc.testing/cameron-rshiny/openshift-r-shiny   latest   About a minute ago

也可以看看[史诗] 守护进程 GA

相关内容