This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.2.4. 在受限环境中使用 odo
2.4.1. 受限环境中的 odo 复制链接链接已复制到粘贴板!
要在断开连接的 OpenShift Container Platform 集群或受限环境中置备的集群中运行 odo
,集群管理员需要创建带有registry 镜像(mirror)的集群。
要在断开连接的集群中工作,必须首先将 将 odo init
镜像推送到集群的 registry 中,然后使用 ODO_BOOTSTRAPPER_IMAGE
环境变量覆盖 odo init
镜像路径。
在推送 odo init
镜像后,您需要为 registry 中的支持的构建程序镜像(builder image)在本地创建一个镜像(mirror),覆盖 registry 镜像(mirror),然后创建您的应用程序。构建程序镜像是为应用程序配置运行时环境所必需的,它还包含构建应用程序所需的构建工具,例如:用于 Node.js 的 npm 或用于 Java 的 Maven。一个 registry 镜像(mirror)会包含应用程序所需的所有依赖项。
2.4.2. 将 odo init 镜像推送到受限集群的 registry 中 复制链接链接已复制到粘贴板!
根据集群和操作系统的配置,您可以将 odo init
镜像推送到一个 registry 镜像(mirror)中,或直接推送到内部 registry。
2.4.2.1. 先决条件 复制链接链接已复制到粘贴板!
-
在客户端操作系统上安装
oc
。 -
在客户端操作系统中安装
odo
。 - 访问带有已配置的内部 registry 或 registry 镜像(mirror)的 OpenShift Container Platform 受限集群。
2.4.2.2. 将 odo init 镜像推送到镜像 (mirror) registry 复制链接链接已复制到粘贴板!
根据您的操作系统,您可以将 odo init
镜像推送到带有 registry 镜像(mirror)的集群中,如下所示:
2.4.2.2.1. 将 init 镜像推送到 Linux 上的镜像 registry 复制链接链接已复制到粘贴板!
流程
使用
base64
对您的镜像 registry 的 root 认证授权 (CA) 内容进行编码:echo <content_of_additional_ca> | base64 -d > disconnect-ca.crt
$ echo <content_of_additional_ca> | base64 -d > disconnect-ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将编码的 root CA 证书复制到适当的位置:
sudo cp ./disconnect-ca.crt /etc/pki/ca-trust/source/anchors/<mirror-registry>.crt
$ sudo cp ./disconnect-ca.crt /etc/pki/ca-trust/source/anchors/<mirror-registry>.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 信任客户端平台中的 CA,并登录 OpenShift Container Platform 镜像 registry:
sudo update-ca-trust enable && sudo systemctl daemon-reload && sudo systemctl restart / docker && docker login <mirror-registry>:5000 -u <username> -p <password>
$ sudo update-ca-trust enable && sudo systemctl daemon-reload && sudo systemctl restart / docker && docker login <mirror-registry>:5000 -u <username> -p <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对
odo init
镜像进行镜像(mirror):oc image mirror registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>
$ oc image mirror registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置
ODO_BOOTSTRAPPER_IMAGE
环境变量来覆盖默认的odo init
镜像路径:export ODO_BOOTSTRAPPER_IMAGE=<mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>
$ export ODO_BOOTSTRAPPER_IMAGE=<mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.2.2.2. 将 init 镜像推送到 MacOS 上的镜像 registry 复制链接链接已复制到粘贴板!
流程
使用
base64
对您的镜像 registry 的 root 认证授权 (CA) 内容进行编码:echo <content_of_additional_ca> | base64 -d > disconnect-ca.crt
$ echo <content_of_additional_ca> | base64 -d > disconnect-ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将编码的 root CA 证书复制到适当的位置:
- 使用 Docker UI 重启 Docker。
运行以下命令:
docker login <mirror-registry>:5000 -u <username> -p <password>
$ docker login <mirror-registry>:5000 -u <username> -p <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
对
odo init
镜像进行镜像(mirror):oc image mirror registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>
$ oc image mirror registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置
ODO_BOOTSTRAPPER_IMAGE
环境变量来覆盖默认的odo init
镜像路径:export ODO_BOOTSTRAPPER_IMAGE=<mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>
$ export ODO_BOOTSTRAPPER_IMAGE=<mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.2.2.3. 将 init 镜像推送到 Windows 上的镜像 registry 复制链接链接已复制到粘贴板!
流程
使用
base64
对您的镜像 registry 的 root 认证授权 (CA) 内容进行编码:PS C:\> echo <content_of_additional_ca> | base64 -d > disconnect-ca.crt
PS C:\> echo <content_of_additional_ca> | base64 -d > disconnect-ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作为管理员,请执行以下命令将编码的 root CA 证书复制到适当的位置:
PS C:\WINDOWS\system32> certutil -addstore -f "ROOT" disconnect-ca.crt
PS C:\WINDOWS\system32> certutil -addstore -f "ROOT" disconnect-ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 信任客户端平台中的 CA,并登录 OpenShift Container Platform 镜像 registry:
- 使用 Docker UI 重启 Docker。
运行以下命令:
PS C:\WINDOWS\system32> docker login <mirror-registry>:5000 -u <username> -p <password>
PS C:\WINDOWS\system32> docker login <mirror-registry>:5000 -u <username> -p <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
对
odo init
镜像进行镜像(mirror):PS C:\> oc image mirror registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>
PS C:\> oc image mirror registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置
ODO_BOOTSTRAPPER_IMAGE
环境变量来覆盖默认的odo init
镜像路径:PS C:\> $env:ODO_BOOTSTRAPPER_IMAGE="<mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>"
PS C:\> $env:ODO_BOOTSTRAPPER_IMAGE="<mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.2.3. 将 odo init 镜像直接推送到内部 registry 复制链接链接已复制到粘贴板!
如果集群允许镜像直接推送到内部 registry,请将 odo init
镜像推送到 registry:
2.4.2.3.1. 在 Linux 中直接推送 init 镜像 复制链接链接已复制到粘贴板!
流程
启用默认路由:
oc patch configs.imageregistry.operator.openshift.io cluster -p '{"spec":{"defaultRoute":true}}' --type='merge' -n openshift-image-registry
$ oc patch configs.imageregistry.operator.openshift.io cluster -p '{"spec":{"defaultRoute":true}}' --type='merge' -n openshift-image-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取通配符路由 CA:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
base64
对您的镜像 registry 的 root 认证授权 (CA) 内容进行编码:echo <tls.crt> | base64 -d > ca.crt
$ echo <tls.crt> | base64 -d > ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在客户端平台中信任 CA:
sudo cp ca.crt /etc/pki/ca-trust/source/anchors/externalroute.crt && sudo update-ca-trust enable && sudo systemctl daemon-reload && sudo systemctl restart docker
$ sudo cp ca.crt /etc/pki/ca-trust/source/anchors/externalroute.crt && sudo update-ca-trust enable && sudo systemctl daemon-reload && sudo systemctl restart docker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 登录到内部 registry:
oc get route -n openshift-image-registry docker login <registry_path> -u kubeadmin -p $(oc whoami -t)
$ oc get route -n openshift-image-registry NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD default-route <registry_path> image-registry <all> reencrypt None $ docker login <registry_path> -u kubeadmin -p $(oc whoami -t)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 推送
odo init
镜像:docker pull registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> docker tag registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <registry_path>/openshiftdo/odo-init-image-rhel7:<tag> docker push <registry_path>/openshiftdo/odo-init-image-rhel7:<tag>
$ docker pull registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> $ docker tag registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <registry_path>/openshiftdo/odo-init-image-rhel7:<tag> $ docker push <registry_path>/openshiftdo/odo-init-image-rhel7:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置
ODO_BOOTSTRAPPER_IMAGE
环境变量来覆盖默认的odo init
镜像路径:export ODO_BOOTSTRAPPER_IMAGE=<registry_path>/openshiftdo/odo-init-image-rhel7:1.0.1
$ export ODO_BOOTSTRAPPER_IMAGE=<registry_path>/openshiftdo/odo-init-image-rhel7:1.0.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.2.3.2. 在 MacOS 上直接推送 init 镜像 复制链接链接已复制到粘贴板!
流程
启用默认路由:
oc patch configs.imageregistry.operator.openshift.io cluster -p '{"spec":{"defaultRoute":true}}' --type='merge' -n openshift-image-registry
$ oc patch configs.imageregistry.operator.openshift.io cluster -p '{"spec":{"defaultRoute":true}}' --type='merge' -n openshift-image-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取通配符路由 CA:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
base64
对您的镜像 registry 的 root 认证授权 (CA) 内容进行编码:echo <tls.crt> | base64 -d > ca.crt
$ echo <tls.crt> | base64 -d > ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在客户端平台中信任 CA:
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca.crt
$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 登录到内部 registry:
oc get route -n openshift-image-registry docker login <registry_path> -u kubeadmin -p $(oc whoami -t)
$ oc get route -n openshift-image-registry NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD default-route <registry_path> image-registry <all> reencrypt None $ docker login <registry_path> -u kubeadmin -p $(oc whoami -t)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 推送
odo init
镜像:docker pull registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> docker tag registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <registry_path>/openshiftdo/odo-init-image-rhel7:<tag> docker push <registry_path>/openshiftdo/odo-init-image-rhel7:<tag>
$ docker pull registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> $ docker tag registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <registry_path>/openshiftdo/odo-init-image-rhel7:<tag> $ docker push <registry_path>/openshiftdo/odo-init-image-rhel7:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置
ODO_BOOTSTRAPPER_IMAGE
环境变量来覆盖默认的odo init
镜像路径:export ODO_BOOTSTRAPPER_IMAGE=<registry_path>/openshiftdo/odo-init-image-rhel7:1.0.1
$ export ODO_BOOTSTRAPPER_IMAGE=<registry_path>/openshiftdo/odo-init-image-rhel7:1.0.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.2.3.3. 在 Windows 上直接推送 init 镜像 复制链接链接已复制到粘贴板!
流程
启用默认路由:
PS C:\> oc patch configs.imageregistry.operator.openshift.io cluster -p '{"spec":{"defaultRoute":true}}' --type='merge' -n openshift-image-registry
PS C:\> oc patch configs.imageregistry.operator.openshift.io cluster -p '{"spec":{"defaultRoute":true}}' --type='merge' -n openshift-image-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取通配符路由 CA:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
base64
对您的镜像 registry 的 root 认证授权 (CA) 内容进行编码:PS C:\> echo <tls.crt> | base64 -d > ca.crt
PS C:\> echo <tls.crt> | base64 -d > ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作为管理员,请执行以下命令在客户端平台中信任 CA:
PS C:\WINDOWS\system32> certutil -addstore -f "ROOT" ca.crt
PS C:\WINDOWS\system32> certutil -addstore -f "ROOT" ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 登录到内部 registry:
PS C:\> oc get route -n openshift-image-registry NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD default-route <registry_path> image-registry <all> reencrypt None PS C:\> docker login <registry_path> -u kubeadmin -p $(oc whoami -t)
PS C:\> oc get route -n openshift-image-registry NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD default-route <registry_path> image-registry <all> reencrypt None PS C:\> docker login <registry_path> -u kubeadmin -p $(oc whoami -t)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 推送
odo init
镜像:PS C:\> docker pull registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> PS C:\> docker tag registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <registry_path>/openshiftdo/odo-init-image-rhel7:<tag> PS C:\> docker push <registry_path>/openshiftdo/odo-init-image-rhel7:<tag>
PS C:\> docker pull registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> PS C:\> docker tag registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <registry_path>/openshiftdo/odo-init-image-rhel7:<tag> PS C:\> docker push <registry_path>/openshiftdo/odo-init-image-rhel7:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置
ODO_BOOTSTRAPPER_IMAGE
环境变量来覆盖默认的odo init
镜像路径:PS C:\> $env:ODO_BOOTSTRAPPER_IMAGE="<registry_path>/openshiftdo/odo-init-image-rhel7:<tag>"
PS C:\> $env:ODO_BOOTSTRAPPER_IMAGE="<registry_path>/openshiftdo/odo-init-image-rhel7:<tag>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.3. 在断开连接的集群中创建和部署组件 复制链接链接已复制到粘贴板!
将 init
镜像推送到具有镜像(mirror) registry 的集群中后,您必须使用 oc
工具为应用程序所需的构建程序镜像创建一个镜像(mirror),使用环境变量覆盖镜像 registry,然后创建组件。
2.4.3.1. 先决条件 复制链接链接已复制到粘贴板!
-
在客户端操作系统上安装
oc
。 -
在客户端操作系统中安装
odo
。 - 访问带有已配置的内部 registry 或 registry 镜像(mirror)的 OpenShift Container Platform 受限集群。
-
将
odo init
镜像推送到集群 registry。
2.4.3.2. 为支持的构建器镜像创建一个镜像(mirror) 复制链接链接已复制到粘贴板!
要使用 Node.js 依赖项的 npm 软件包及 Java 依赖项的 Maven 软件包,并为应用程序配置运行时环境,您必须从镜像 registry 中镜像相应的构建器镜像。
流程
验证所需镜像标签没有导入:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将支持的镜像标签镜像到私有 registry:
oc image mirror registry.access.redhat.com/rhscl/nodejs-10-rhel7:<tag> <private_registry>/rhscl/nodejs-10-rhel7:<tag>
$ oc image mirror registry.access.redhat.com/rhscl/nodejs-10-rhel7:<tag> <private_registry>/rhscl/nodejs-10-rhel7:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 导入镜像:
oc tag <mirror-registry>:<port>/rhscl/nodejs-10-rhel7:<tag> nodejs-10-rhel7:latest --scheduled
$ oc tag <mirror-registry>:<port>/rhscl/nodejs-10-rhel7:<tag> nodejs-10-rhel7:latest --scheduled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您必须定期重新导入镜像。
--scheduled
标志启用镜像自动重新导入。验证带有指定标签的镜像已被导入:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.3.3. mirror registry 介绍 复制链接链接已复制到粘贴板!
要从私有 mirror registry 中为 Node.js 依赖项下载 npm 软件包,及为 Java 依赖项下载 Maven 软件包,您必须在集群中创建并配置 mirror npm 或 Maven registry。然后您可以覆盖现有组件上的 mirror registry,或覆盖创建新组件时的 mirror registry。
流程
覆盖现有组件上的 mirror registry:
odo config set --env NPM_MIRROR=<npm_mirror_registry>
$ odo config set --env NPM_MIRROR=<npm_mirror_registry>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 覆盖创建组件时的 mirror registry:
odo component create nodejs --env NPM_MIRROR=<npm_mirror_registry>
$ odo component create nodejs --env NPM_MIRROR=<npm_mirror_registry>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.3.4. 使用 odo 创建 Node.js 应用程序 复制链接链接已复制到粘贴板!
要创建一个 Node.js 组件,请下载 Node.js 应用程序并使用 odo
将源代码推送到您的集群中。
流程
将当前目录变为您的应用程序的目录:
cd <directory name>
$ cd <directory name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将类型 Node.js 的组件添加到应用程序中:
odo create nodejs
$ odo create nodejs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意默认情况下使用最新的镜像。也可以使用
odo create openshift/nodejs:8
明确指定一个镜像版本。将初始源代码推送到组件中:
odo push
$ odo push
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 现在,您的组件已被部署到 OpenShift Container Platform 中。
创建一个 URL,按以下方法在本地配置文件中添加条目:
odo url create --port 8080
$ odo url create --port 8080
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 推送更改。这会在集群中创建一个 URL。
odo push
$ odo push
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出用于检查组件所需 URL 的 URL。
odo url list
$ odo url list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用生成的 URL 查看部署的应用程序。
curl <URL>
$ curl <URL>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow