This documentation is for a release that is no longer maintained
See documentation for the latest supported version.3.5. 缓存镜像以便更快地启动工作区
要提高 OpenShift Dev Spaces 工作区的开始时间性能,请使用 Image Puller,它是一个 OpenShift Dev Spaces-agnostic 组件,可用于预拉取 OpenShift 集群的镜像。
Image Puller 是一个额外的 OpenShift 部署,它会创建一个 DaemonSet,它可以配置为在每个节点上预拉取相关的 OpenShift Dev Spaces 工作区镜像。当 OpenShift Dev Spaces 工作区启动时,这些镜像将可用,从而改进了工作区启动时间。
- https://access.redhat.com/documentation/zh-cn/red_hat_openshift_dev_spaces/3.14/html-single/user_guide/index#installing-image-puller-on-kubernetes-by-using-cli
- 第 3.5.2 节 “使用 Web 控制台在 OpenShift 上安装 Image Puller”
- 第 3.5.1 节 “使用 CLI 在 OpenShift 上安装 Image Puller”
- 第 3.5.3 节 “将 Image Puller 配置为预拉取默认 Dev Spaces 镜像”
- 第 3.5.4 节 “将 Image Puller 配置为预拉取自定义镜像”
- 第 3.5.5 节 “配置 Image Puller 以预拉取额外镜像”
3.5.1. 使用 CLI 在 OpenShift 上安装 Image Puller 复制链接链接已复制到粘贴板!
您可以使用 OpenShift oc 管理工具在 OpenShift 上安装 Kubernetes Image Puller。
先决条件
-
具有 OpenShift 集群的管理权限的活跃
oc会话。请参阅 OpenShift CLI 入门。
流程
进入链接来收集要拉取的相关容器镜像列表:
-
https://<openshift_dev_spaces_fqdn>/plugin-registry/v3/external_images.txt -
https://<openshift_dev_spaces_fqdn>/devfile-registry/devfiles/external_images.txt
-
定义内存请求和限值参数,以确保拉取的容器和平台有足够的内存来运行。
在为
CACHING_MEMORY_REQUEST或CACHING_MEMORY_LIMIT定义最小值时,请考虑运行每个容器镜像进行拉取所需的内存量。当为
CACHING_MEMORY_REQUEST或CACHING_MEMORY_LIMIT定义 maximal 值时,请考虑分配给集群中的 DaemonSet Pod 的总内存:(memory limit) * (number of images) * (number of nodes in the cluster)
(memory limit) * (number of images) * (number of nodes in the cluster)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 20 个节点上拉取 5 个镜像,容器内存限值为
20Mi需要2000Mi内存。克隆 Image Puller 存储库,并在包含 OpenShift 模板的目录中:
git clone https://github.com/che-incubator/kubernetes-image-puller cd kubernetes-image-puller/deploy/openshift
$ git clone https://github.com/che-incubator/kubernetes-image-puller $ cd kubernetes-image-puller/deploy/openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下参数配置
app.yaml、configmap.yaml和serviceaccount.yamlOpenShift 模板:Expand 表 3.37. app.yaml中的 Image Puller OpenShift 模板参数 值 使用方法 默认值 DEPLOYMENT_NAMEConfigMap 中的
DEPLOYMENT_NAME的值kubernetes-image-pullerIMAGE用于
kubernetes-image-puller部署的镜像registry.redhat.io/devspaces/imagepuller-rhel8IMAGE_TAG要拉取的镜像标签
latestSERVICEACCOUNT_NAME部署创建和使用的 ServiceAccount 的名称
kubernetes-image-pullerExpand 表 3.38. configmap.yaml 中的 Image Puller OpenShift 模板参数 值 使用方法 默认值 CACHING_CPU_LIMITConfigMap 中的
CACHING_CPU_LIMIT的值.2CACHING_CPU_REQUESTConfigMap 中的
CACHING_CPU_REQUEST的值.05CACHE_INTERVAL_HOURSConfigMap 中的
CACHING_INTERVAL_HOURS的值"1"CACHING_MEMORY_LIMITConfigMap 中的
CACHING_MEMORY_LIMIT的值"20Mi"CACHING_MEMORY_REQUESTConfigMap 中的
CACHING_MEMORY_REQUEST的值"10Mi"DAEMONSET_NAMEConfigMap 中的
DAEMONSET_NAME的值kubernetes-image-pullerDEPLOYMENT_NAMEConfigMap 中的
DEPLOYMENT_NAME的值kubernetes-image-puller镜像ConfigMap 中的
IMAGES值{}NAMESPACEConfigMap 中的
NAMESPACE值k8s-image-pullerNODE_SELECTORConfigMap 中的
NODE_SELECTOR的值"{}"Expand 表 3.39. serviceaccount.yaml 中的 Image Puller OpenShift 模板参数 值 使用方法 默认值 SERVICEACCOUNT_NAME部署创建和使用的 ServiceAccount 的名称
kubernetes-image-puller创建 OpenShift 项目来托管 Image Puller:
oc new-project <k8s-image-puller>
$ oc new-project <k8s-image-puller>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 处理并应用模板来安装拉取程序:
oc process -f serviceaccount.yaml | oc apply -f - oc process -f configmap.yaml | oc apply -f - oc process -f app.yaml | oc apply -f -
$ oc process -f serviceaccount.yaml | oc apply -f - $ oc process -f configmap.yaml | oc apply -f - $ oc process -f app.yaml | oc apply -f -Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤
验证是否存在 < kubernetes-image-puller> 部署和 < kubernetes-image-puller> DaemonSet。DaemonSet 需要为集群中的每个节点有一个 Pod:
oc get deployment,daemonset,pod --namespace <k8s-image-puller>
$ oc get deployment,daemonset,pod --namespace <k8s-image-puller>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 < kubernetes-image-puller >
ConfigMap的值。oc get configmap <kubernetes-image-puller> --output yaml
$ oc get configmap <kubernetes-image-puller> --output yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5.2. 使用 Web 控制台在 OpenShift 上安装 Image Puller 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Web 控制台在 OpenShift 上安装支持的 Kubernetes Image Puller Operator。
先决条件
- 集群管理员的 OpenShift Web 控制台会话。请参阅 访问 Web 控制台。
流程
- 安装社区支持的 Kubernetes Image Puller Operator。请参阅使用 Web 控制台从 OperatorHub 安装。
-
从社区支持的
Kubernetes Image PullerOperator 创建一个 kubernetes-image-puller KubernetesImagePuller 操作对象。请参阅 从已安装的 Operator 创建应用程序。
3.5.3. 将 Image Puller 配置为预拉取默认 Dev Spaces 镜像 复制链接链接已复制到粘贴板!
您可以将 Kubernetes Image Puller 配置为预拉取默认的 OpenShift Dev Spaces 镜像。Red Hat OpenShift Dev Spaces operator 将控制镜像列表到预拉取(pull)并在 OpenShift Dev Spaces 升级时自动更新它们。
先决条件
- 您的机构 OpenShift Dev Spaces 实例已安装并在 Kubernetes 集群上运行。
- Image Puller 在 Kubernetes 集群上安装。
-
具有对目标 OpenShift 集群的管理权限的活跃
oc会话。请参阅 CLI 入门。
流程
将 Image Puller 配置为预拉取 OpenShift Dev Spaces 镜像。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5.4. 将 Image Puller 配置为预拉取自定义镜像 复制链接链接已复制到粘贴板!
您可以将 Kubernetes Image Puller 配置为预拉取自定义镜像。
先决条件
- 您的机构 OpenShift Dev Spaces 实例已安装并在 Kubernetes 集群上运行。
- Image Puller 在 Kubernetes 集群上安装。
-
具有对目标 OpenShift 集群的管理权限的活跃
oc会话。请参阅 CLI 入门。
流程
将 Image Puller 配置为预拉取自定义镜像。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 分号分隔的镜像列表
3.5.5. 配置 Image Puller 以预拉取额外镜像 复制链接链接已复制到粘贴板!
您可以将 Kubernetes Image Puller 配置为预拉取额外的 OpenShift Dev Spaces 镜像。
先决条件
- 您的机构 OpenShift Dev Spaces 实例已安装并在 Kubernetes 集群上运行。
- Image Puller 在 Kubernetes 集群上安装。
-
具有对目标 OpenShift 集群的管理权限的活跃
oc会话。请参阅 CLI 入门。
流程
创建
k8s-image-puller命名空间:oc create namespace k8s-image-puller
oc create namespace k8s-image-pullerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
KubernetesImagePuller自定义资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 分号分隔的镜像列表