###### tags: `redhat` `OpenShift` # 存取 OpenShift 內部的 Registry 因為 Opeshift 本身提供 Image Registry, 但預設並不能由外部來存取,只能通過 Deployment/DeploymentcConfig 來指向內部 entrypoint。 但如果使用 oc new-app 產生的 images 會自動存入其中,如要備份要匯出,則需要能從外部經由 podman/docker cli 來存取並匯出。由於預設的 route 並不能提供此功能,所以需要以下步驟開啟 HTTPS route 提供外部存取之用 ### 手動建立路由 (route) 使用 OpenShift CLI 來開啟此通道 ``` oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=merge ``` 完成後,可以取得存取用的URL ``` URL=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}') ``` 取得此連結的憑證, 並放在 Linux 中 ``` oc get secret -n openshift-ingress router-certs-default -o go-template='{{index .data "tls.crt"}}' | base64 -d | sudo tee /etc/pki/ca-trust/source/anchors/${HOST}.crt > /dev/null ``` 更新系統憑證 ``` sudo update-ca-trust enable ``` 如此一來就可以登入 ``` podman login -u kubeadmin -p $(oc whoami -t) $URL ``` 如果不想安裝憑證也可先使用不安全的方式先登入 ``` podman login -u kubeadmin -p $(oc whoami -t) --tls-verify=false $URL ``` 如果在載入憑證的條件下又是使用 docker cli, 則需要在 `/etc/docker/daemon.json` 中設定不安全的連結;以下範例需將 $URL 改成上面取後的連結 ``` { "insecure-registries" : ["$URL"] } ``` ``` doceker login -u kubeadmin -p $(oc whoami -t) --tls-verify=false $URL ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up