第7章 Kubernetes リソースでのイメージストリームの使用


OpenShift Container Platform のネイティブリソースであるイメージストリームは、Build リソース、DeploymentConfigs リソースなどの OpenShift Container Platform で利用可能なネイティブリソースすべてで動作します。これらは、Job リソース、ReplicationController リソース、ReplicaSet リソース、Kubernetes Deployment リソースなどのネイティブ Kubernetes リソースと共に機能することもできます。

7.1. Kubernetes リソースでのイメージストリームの有効化

Kubernetes リソースでイメージストリームを使用する場合、リソースと同じプロジェクトにあるイメージストリームのみを参照できます。イメージストリームの参照は、ruby:2.5 など、単一セグメントの値で構成されている必要があります。この場合、ruby2.5 という名前のタグを持ち、参照するリソースと同じプロジェクトにあるイメージストリームの名前です。

重要

デフォルトプロジェクトでワークロードを実行したり、デフォルトプロジェクトへのアクセスを共有したりしないでください。デフォルトのプロジェクトは、コアクラスターコンポーネントを実行するために予約されています。

デフォルトプロジェクトである defaultkube-publickube-systemopenshiftopenshift-infraopenshift-node、および openshift.io/run-level ラベルが 0 または 1 に設定されているその他のシステム作成プロジェクトは、高い特権があるとみなされます。Pod セキュリティーアドミッション、Security Context Constraints、クラスターリソースクォータ、イメージ参照解決などのアドミッションプラグインに依存する機能は、高い特権を持つプロジェクトでは機能しません。

Kubernetes リソースでイメージストリームを有効にする方法は 2 つあります。

  • 特定のリソースでイメージストリームの解決を有効にする。これにより、このリソースのみがイメージフィールドのイメージストリーム名を使用できます。
  • イメージストリームでイメージストリームの解決を有効にする。これにより、このイメージストリームを参照するすべてのリソースがイメージフィールドのイメージストリーム名を使用できます。

手順

oc set image-lookup を使用して、特定のリソース上のイメージストリームの解決またはイメージストリーム上のイメージストリームの解決を有効にすることができます。

  1. すべてのリソースが mysql という名前のイメージストリームを参照できるようにするには、以下のコマンドを入力します。

    $ oc set image-lookup mysql

    これにより、Imagestream.spec.lookupPolicy.local フィールドが true に設定されます。

    イメージルックアップが有効なイメージストリーム

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

    有効な場合には、この動作はイメージストリーム内のすべてのタグに対して有効化されます。

  2. 次に、イメージストリームをクエリーし、このオプションが設定されているかどうかを確認できます。

    $ oc set image-lookup imagestream --list

特定のリソースでイメージルックアップを有効にすることができます。

  • 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

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.