6.7. 使用镜像流
以下小节介绍了如何使用镜像流和镜像流标签。
不要在默认项目中运行工作负载或共享对默认项目的访问权限。为运行核心集群组件保留默认项目。
以下默认项目被视为具有高度特权:default
, kube-public
, kube-system
, openshift
, openshift-infra
, openshift-node
,其他系统创建的项目的标签 openshift.io/run-level
被设置为 0
或 1
。依赖于准入插件(如 pod 安全准入、安全性上下文约束、集群资源配额和镜像引用解析)的功能无法在高特权项目中工作。
6.7.1. 获取有关镜像流的信息 复制链接链接已复制到粘贴板!
您可获取有关镜像流的常规信息及其指向的所有标签的详细信息。
流程
要获取有关镜像流的常规信息及其指向的所有标签的详细信息,请输入以下命令:
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/python
Copy 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:latest
Copy 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. 为镜像流添加标签 复制链接链接已复制到粘贴板!
您可以向镜像流添加其他标签。
流程
使用 `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:latest
Copy 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/python
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.7.3. 为外部镜像添加标签 复制链接链接已复制到粘贴板!
您可为外部镜像添加标签。
流程
通过使用
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.6
Copy 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. 更新镜像流标签 复制链接链接已复制到粘贴板!
您可以更新标签以反映镜像流中的另一标签。
流程
更新标签:
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:latest
Copy 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. 删除镜像流标签 复制链接链接已复制到粘贴板!
您可以从镜像流中删除旧标签。
流程
从镜像流中删除旧标签:
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.6
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Deleted tag default/python:3.6
Deleted tag default/python:3.6
Copy 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> --scheduled
Copy 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 --scheduled
Copy 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