13.3. Kubernetes 资源使用镜像流


作为 OpenShift Container Platform 的原生资源,镜像流可以直接与 OpenShift Container Platform 中的所有其他原生资源一起工作, 如构建或部署 。当前,它也可能可以和其与原生 Kubernetes 资源一起工作,如作业复制控制器、副本设置或 Kubernetes 部署

集群管理员可以精确配置可以使用什么资源

启用后,可以将镜像流的引用放在资源的 image 字段中。使用此功能时,只能引用位于与资源相同的项目中的镜像流。镜像流引用必须包含单个片段值,如 ruby:2.4,其中 ruby 是镜像流的名称,它具有名为 2.4 的标签,并位于与进行引用的资源相同的项目中。

有两种方法可以做到这一点:

  1. 启用针对特定资源的镜像流解析。这只允许此资源使用 image 字段中的镜像流名称。
  2. 在镜像流上启用镜像流解析。这允许指向此镜像流的所有资源在 image 字段中使用它。

这两个操作都可使用 oc set image-lookup 来完成。例如,以下命令允许所有资源引用名为 mysql 的镜像流:

$ oc set image-lookup mysql

这会将 Imagestream.spec.lookupPolicy.local 字段设置为 true。

启用镜像查询的镜像流

apiVersion: v1
kind: ImageStream
metadata:
  annotations:
    openshift.io/display-name: mysql
  name: mysql
  namespace: myproject
spec:
  lookupPolicy:
    local: true

启用后,会为镜像流中的所有标签启用此行为。

您可以查询镜像流并查看是否设置了选项:

$ oc set image-lookup

您还可以在特定资源上启用镜像查找。此命令允许名为 mysql 的 Kubernetes 部署使用镜像流:

$ oc set image-lookup deploy/mysql

这会在部署上设置 alpha.image.policy.openshift.io/resolve-names 注解。

启用镜像查询部署

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
  namespace: myproject
spec:
  replicas: 1
  template:
    metadata:
      annotations:
        alpha.image.policy.openshift.io/resolve-names: '*'
    spec:
      containers:
      - image: mysql:latest
        imagePullPolicy: Always
        name: mysql

要禁用镜像查找,使用 --enabled=false

$ oc set image-lookup deploy/mysql --enabled=false
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.