将OpenShift内部注册表公开到外部,并使用Docker / Podman CLI登录


您可以通过以下链接以PDF格式下载本文来支持我们。

将指南下载为PDF



OpenShift容器平台提供了一个内部集成的容器映像注册表,可以将其部署在OpenShift容器平台环境中以本地管理映像。该注册表允许您从源代码构建容器映像,并将其部署到OpenShift平台以管理其生命周期。在群集的初始设置过程中设置内部注册表。可以在以下文档中找到完整的安装指南: 将注册表部署到现有群集 部分。

OpenShift内部映像注册表设置

在不提供可共享对象存储的基础架构平台上,OpenShift Image Registry Operator会按以下方式自我引导: Removed..由于您是在裸机服务器上运行群集,因此请更改注册表操作员配置。 管理状态 从删除到托管。

$ oc edit configs.imageregistry/cluster
spec:
  managementState: Managed

您还需要在内部注册表中设置持久卷请求。请参见下面的示例。

...
storage:
    pvc:
      claim: ocs4registry

确保将pvc绑定到映像注册表名称空间。

$ oc get pvc -n openshift-image-registry
NAME           STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
ocs4registry   Bound    pvc-a07963ea-2b23-477f-936d-4f8f674de9a5   100Gi      RWX            cephfs         57d

确保没有注册表容器。

$ oc get pod -n openshift-image-registry
NAME                                               READY   STATUS      RESTARTS   AGE
cluster-image-registry-operator-674b759cfb-vvsmr   2/2     Running     0          41d
image-pruner-1600387200-5qzgn                      0/1     Completed   0          2d10h
image-pruner-1600473600-x8rd6                      0/1     Completed   0          34h
image-pruner-1600560000-ss6mn                      0/1     Completed   0          10h
image-registry-6f4b4db789-2wdmt                    1/1     Running     0          41d
node-ca-7pkp4                                      1/1     Running     0          53d
node-ca-f5pnq                                      1/1     Running     0          53d
node-ca-h5v2f                                      1/1     Running     0          53d
node-ca-ldgvv                                      1/1     Running     0          53d
node-ca-ldplz                                      1/1     Running     0          53d
node-ca-rl8xt                                      1/1     Running     0          53d
node-ca-s59td                                      1/1     Running     0          53d
node-ca-shk7l                                      1/1     Running     0          53d
node-ca-t7ghk                                      1/1     Running     0          53d
node-ca-vk9sl                                      1/1     Running     0          53d
node-ca-xjz45                                      1/1     Running     0          53d
node-ca-xr75h                                      1/1     Running     0          53d

将OpenShift内部映像注册表公开给外界

安装注册表后,它不会暴露给外界。也就是说,注册表只能在群集内使用。对于外部访问,必须使用OpenShift根目录公开服务。

可以使用configs.imageregistry.operator.openshift.io资源的DefaultRoute参数或使用自定义路由来发布路由。运行以下命令以更改DefaultRoute参数并公开路由。

oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=merge

预期产量:

config.imageregistry.operator.openshift.io/cluster patched

确认路由已创建。

$ oc get  route  -n openshift-image-registry
NAME            HOST/PORT                                                          PATH   SERVICES         PORT    TERMINATION   WILDCARD
default-route   default-route-openshift-image-registry.apps.ocp.example.net               image-registry      reencrypt     None

使用Docker登录到OpenShift注册表| Podman

登录到OpenShift集群 OC 命令行工具。

$ oc login https://api..:6443

登录后,使用以下命令自动获取注册表根目录。

HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}')

您可以使用以下方法检查值:

$ echo $HOST

然后,您可以使用以下命令登录发布的注册表:

$ podman login -u $(oc whoami) -p $(oc whoami -t) --tls-verify=false $HOST 

使用Docker CLI登录:

$ docker login -u $(oc whoami) -p $(oc whoami -t) --tls-verify=false $HOST 

将容器映像推送到OpenShift注册表

要将容器映像推送到注册表,请首先对其进行标记。请参见下面的示例。

$ docker pull busybox:latest
$ docker tag busybox:latest registry.dev.example.com/testplatform/busybox:latest
$ docker push  registry.dev.example.com/testplatform/busybox:latest
$ oc get is busybox

当您将图像推送到注册表时,会自动创建一个OpenShift Image Stream。不需要采取进一步行动。

其他OpenShift指南:

如何在OpenShift / OKD 4.x群集中允许不安全的注册表

使用HTPasswd身份提供者管理OpenShift / OKD用户

如何在OpenShift v4 CoreOS节点上运行telnet / tcpdump


您可以通过以下链接以PDF格式下载本文来支持我们。

以PDF格式下载指南



Sidebar