6.7. 使用镜像流
以下小节介绍了如何使用镜像流和镜像流标签。
不要在默认项目中运行工作负载或共享对默认项目的访问权限。为运行核心集群组件保留默认项目。
以下默认项目被视为具有高度特权:default, kube-public, kube-system, openshift, openshift-infra, openshift-node,其他系统创建的项目的标签 openshift.io/run-level 被设置为 0 或 1。依赖于准入插件(如 pod 安全准入、安全性上下文约束、集群资源配额和镜像引用解析)的功能无法在高特权项目中工作。
6.7.1. 获取有关镜像流的信息 复制链接链接已复制到粘贴板!
要在 OpenShift Container Platform 中有效地管理和监控镜像流,请检索有关其版本的信息。您可以获取有关镜像流的常规信息及其指向的所有标签的详细信息,确保部署的应用程序依赖于正确的镜像版本。
流程
要获取有关镜像流的常规信息及其指向的所有标签的详细信息,请输入以下命令:
oc describe is/<image-name>
$ oc describe is/<image-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
oc describe is/python
$ oc describe is/pythonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要获取有关特定镜像流标签的所有信息,请输入以下命令:
oc describe istag/<image-stream>:<tag-name>
$ oc describe istag/<image-stream>:<tag-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
oc describe istag/python:latest
$ oc describe istag/python:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意输出的信息多于显示的信息。
输入以下命令发现镜像流标签支持的构架或操作系统:
oc get istag <image-stream-tag> -ojsonpath="{range .image.dockerImageManifests[*]}{.os}/{.architecture}{'\n'}{end}"$ oc get istag <image-stream-tag> -ojsonpath="{range .image.dockerImageManifests[*]}{.os}/{.architecture}{'\n'}{end}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
oc get istag busybox:latest -ojsonpath="{range .image.dockerImageManifests[*]}{.os}/{.architecture}{'\n'}{end}"$ oc get istag busybox:latest -ojsonpath="{range .image.dockerImageManifests[*]}{.os}/{.architecture}{'\n'}{end}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.7.2. 为镜像流添加标签 复制链接链接已复制到粘贴板!
要准确管理和跟踪容器镜像的具体版本,请在 OpenShift Container Platform 中的镜像流中添加标签,以确保在整个环境中可靠引用和部署。
流程
使用 `oc tag` 命令添加指向其中一个现有标签的标签:
oc tag <image-name:tag1> <image-name:tag2>
$ oc tag <image-name:tag1> <image-name:tag2>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
oc tag python:3.5 python:latest
$ oc tag python:3.5 python:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Tag python:latest set to python@sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25.
Tag python:latest set to python@sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认镜像流有两个标签,
3.5指向外部容器镜像,latest指向同一镜像,因为它基于第一个标签创建而成。oc describe is/python
$ oc describe is/pythonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.7.3. 为外部镜像添加标签 复制链接链接已复制到粘贴板!
要启用 OpenShift Container Platform 资源来跟踪和消耗来自外部 registry 的容器镜像,请向对应的镜像流添加标签。此操作将外部镜像内容安全地集成到集群的本地镜像管理系统中。
流程
通过使用
oc tag命令执行所有标签相关操作,添加指向内部或外部镜像的标签:oc tag <repository/image> <image-name:tag>
$ oc tag <repository/image> <image-name:tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,该命令可将
docker.io/python:3.6.0镜像映射到python镜像流中的3.6标签。oc tag docker.io/python:3.6.0 python:3.6
$ oc tag docker.io/python:3.6.0 python:3.6Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Tag python:3.6 set to docker.io/python:3.6.0.
Tag python:3.6 set to docker.io/python:3.6.0.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果外部镜像安全,则您必须创建带有凭证的 secret 以访问该 registry。
6.7.4. 更新镜像流标签 复制链接链接已复制到粘贴板!
要在部署定义中保持灵活性和一致性,请更新镜像流标签以反映 OpenShift Container Platform 中的不同标签。特别是,您可以更新标签以反映镜像流中的另一标签,这对有效地管理镜像版本至关重要。
流程
更新标签:
oc tag <image-name:tag> <image-name:latest>
$ oc tag <image-name:tag> <image-name:latest>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,以下命令更新了
latest标签,以反映镜像流中的3.6标签:oc tag python:3.6 python:latest
$ oc tag python:3.6 python:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Tag python:latest set to python@sha256:438208801c4806548460b27bd1fbcb7bb188273d13871ab43f.
Tag python:latest set to python@sha256:438208801c4806548460b27bd1fbcb7bb188273d13871ab43f.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.7.5. 删除镜像流标签 复制链接链接已复制到粘贴板!
要保持对镜像历史记录的控制并简化 OpenShift Container Platform 中的管理,您可以从镜像流中删除旧标签。此操作有助于确保您的资源只跟踪当前和必要的镜像引用。
流程
从镜像流中删除旧标签:
oc tag -d <image-name:tag>
$ oc tag -d <image-name:tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
oc tag -d python:3.6
$ oc tag -d python:3.6Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Deleted tag default/python:3.6
Deleted tag default/python:3.6Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如需有关 Cluster Samples Operator 如何处理已弃用的镜像流标签的更多信息,请参阅从 Cluster Samples Operator 中删除已弃用的镜像流标签。
6.7.6. 配置定期导入镜像流标签 复制链接链接已复制到粘贴板!
要从外部容器镜像 registry 中维护最新的镜像定义,请配置定期导入镜像流标签。这个过程允许您使用- scheduled 标志为关键安全更新快速重新导入镜像。
流程
调度导入镜像:
oc tag <repository/image> <image-name:tag> --scheduled
$ oc tag <repository/image> <image-name:tag> --scheduledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
oc tag docker.io/python:3.6.0 python:3.6 --scheduled
$ oc tag docker.io/python:3.6.0 python:3.6 --scheduledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Tag python:3.6 set to import docker.io/python:3.6.0 periodically.
Tag python:3.6 set to import docker.io/python:3.6.0 periodically.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该命令可使 OpenShift Container Platform 定期更新该特定镜像流标签。此周期是集群范围的设置,默认设为 15 分钟。
删除定期检查,重新运行上述命令,但忽略
--scheduled标志。这会将其行为重置为默认值。oc tag <repositiory/image> <image-name:tag>
$ oc tag <repositiory/image> <image-name:tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow