はじめまして
富士通でコンテナに関する技術支援を行っているkitaniと申します。
今回はRed Hat社のコンテナオーケストレーション製品であるOpenShiftの固有リソースであるImageStreamについて解説します。
ImageStreamとは
ImageStreamとはコンテナイメージ参照を抽象化するリソースです。
ImageStreamはタグでイメージを管理し、DeploymentConfig等でImageStream名とタグを指定することでイメージの参照が可能となります。
ImageStreamを利用することでコンテナイメージのバージョン管理や、イメージ更新をトリガーにPodをデプロイする機能(イメージトリガー)が利用できるなどのメリットがあります。
ImageStreamはOpenShiftの独自リソースであり、元々DeploymentConfigのみで利用されていたため、DeploymentなどのKubernetesリソースで利用するには事前に有効化する設定が必要となります。その方法を紹介します。
ImageStream有効化設定方法
Kubernetesリソース(Deployment)にてImageStreamを利用するには、イメージルックアップ機能の有効化が必要です。
イメージルックアップ機能は下記の2パターンの有効化方法があります。以下それぞれの設定方法を記載します。
- ImageStream単位: ImageStreamを参照する全てのリソースで利用可能にします
- Kubernetesリソース単位: ImageStreamを特定のリソースだけ利用可能にします
ImageStream単位の場合
ocコマンドでの実行とImageStreamに関するYAMLへの設定追加の2種類の方法があります。
ocコマンドの場合
$ oc set image-lookup 【設定変更するImageStream名】
imagestream.image.openshift.io/test-is image lookup updated
YAMLの場合
apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
name: test-is
spec:
lookupPolicy: ##イメージルックアップの設定フィールド
local: true ##イメージルックアップを有効化
(以下、省略)
※イメージルックアップ機能が有効であるImageStreamは下記コマンドで確認できます。
$ oc set image-lookup --list
NAME LOCAL
test-is true ##イメージルックアップが有効
test-is2 false ##イメージルックアップが無効
Kubernetesリソース単位の場合
ocコマンドでの実行とKubernetesリソースに関するYAMLの設定追加の2種類の方法があります。
※実行例ではDeploymentリソースに関するイメージルックアップを有効化する例を記載しています。
ocコマンドの場合
$ oc set image-lookup deployment/【設定変更するDeployment名】
deployment.apps/test-deployment image lookup updated
YAMLの場合
apiVersion: apps/v1
kind: Deployment
metadata:
name: test-deployment
annotations:
alpha.image.policy.openshift.io/resolve-names: '*' ##イメージルックアップ機能を有効化
(以下、省略)

