外部公开OpenShift内部注册表,并使用Docker/Podman CLI登录
时间:2020-02-23 14:30:23 来源:igfitidea点击:
OpenShift容器平台提供内部集成容器图像注册表,可在OpenShift集装箱平台环境中部署到本地管理图像。
此注册表允许我们从源代码中构建容器镜像,请在OpenShift平台上部署它们并管理其生命周期。
在初始群集设置期间,我们将设置内部注册表。
在文档中介绍了完整的安装教程,然后在现有群集部分部署注册表项下。
配置OpenShift内部图像注册表
在不提供可共享对象存储的基础架构平台上,OpenShift图像注册表运营商自行启动 Removed
。
由于我在裸机服务器上运行群集,因此我将从删除以删除到管理时更改注册表运算符配置的ManagementState。
$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
验证我们没有注册表POD:
$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.imagregersgistry.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 <all> reencrypt None
使用Docker登录OpenShift注册表|帕德曼
使用OC命令行工具登录OpenShift群集。
$oc login https://api.<cluster>.<domain>: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 ImageStream。
不需要采取进一步行动。