3.6. ベアメタルのレジストリーの設定
3.6.1. インストール時に削除されたイメージレジストリー
共有可能なオブジェクトストレージを提供しないプラットフォームでは、OpenShift イメージレジストリー Operator 自体が Removed
としてブートストラップされます。これにより、openshift-installer
がそれらのプラットフォームタイプでのインストールを完了できます。
インストール後に、イメージレジストリー Operator 設定を編集して managementState
を Removed
から Managed
に切り替える必要があります。
Prometheus コンソールは、以下のような ImageRegistryRemoved
アラートを提供します。
"Image Registry has been removed.ImageStreamTags
, BuildConfigs
and DeploymentConfigs
which reference ImageStreamTags
may not work as expected.Please configure storage and update the config to Managed
state by editing configs.imageregistry.operator.openshift.io."
3.6.2. イメージレジストリーの管理状態の変更
イメージレジストリーを起動するには、イメージレジストリー Operator 設定の managementState
を Removed
から Managed
に変更する必要があります。
手順
ManagementState
イメージレジストリー Operator 設定をRemoved
からManaged
に変更します。以下に例を示します。$ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed"}}'
3.6.3. イメージレジストリーストレージの設定
イメージレジストリー Operator は、デフォルトストレージを提供しないプラットフォームでは最初は利用できません。インストール後に、レジストリー Operator を使用できるようにレジストリーをストレージを使用するように設定する必要があります。
実稼働クラスターに必要な永続ボリュームの設定についての手順が示されます。該当する場合、空のディレクトリーをストレージの場所として設定する方法が表示されます。これは、実稼働以外のクラスターでのみ利用できます。
アップグレード時に Recreate
ロールアウトストラテジーを使用して、イメージレジストリーがブロックストレージタイプを使用することを許可するための追加の手順が提供されます。
3.6.4. ベアメタルおよび他の手動インストールの場合のレジストリーストレージの設定
クラスター管理者は、インストール後にレジストリーをストレージを使用できるように設定する必要があります。
前提条件
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。 - ベアメタルなどの、手動でプロビジョニングされた Red Hat Enterprise Linux CoreOS (RHCOS) ノードを使用するクラスターがある。
Red Hat OpenShift Container Storage などのクラスターのプロビジョニングされた永続ストレージがある。
重要OpenShift Container Platform は、1 つのレプリカのみが存在する場合にイメージレジストリーストレージの
ReadWriteOnce
アクセスをサポートします。ReadWriteOnce
アクセスでは、レジストリーがRecreate
ロールアウト戦略を使用する必要もあります。2 つ以上のレプリカで高可用性をサポートするイメージレジストリーをデプロイするには、ReadWriteMany
アクセスが必要です。- 100 Gi の容量がある。
手順
レジストリーをストレージを使用できるように設定するには、
configs.imageregistry/cluster
リソースのspec.storage.pvc
を変更します。注記共有ストレージを使用する場合は、外部からアクセスを防ぐためにセキュリティー設定を確認します。
レジストリー Pod がないことを確認します。
$ oc get pod -n openshift-image-registry -l docker-registry=default
出力例
No resourses found in openshift-image-registry namespace
注記出力にレジストリー Pod がある場合は、この手順を続行する必要はありません。
レジストリー設定を確認します。
$ oc edit configs.imageregistry.operator.openshift.io
出力例
storage: pvc: claim:
claim
フィールドを空のままにし、image-registry-storage
PVC の自動作成を可能にします。clusteroperator
ステータスを確認します。$ oc get clusteroperator image-registry
出力例
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE image-registry 4.9 True False False 6h50m
イメージのビルドおよびプッシュを有効にするためにレジストリーが managed に設定されていることを確認します。
以下を実行します。
$ oc edit configs.imageregistry/cluster
次に、行を変更します。
managementState: Removed
次のように変更してください。
managementState: Managed
3.6.5. 実稼働以外のクラスターでのイメージレジストリーのストレージの設定
イメージレジストリー Operator のストレージを設定する必要があります。実稼働用以外のクラスターの場合、イメージレジストリーは空のディレクトリーに設定することができます。これを実行する場合、レジストリーを再起動するとすべてのイメージが失われます。
手順
イメージレジストリーストレージを空のディレクトリーに設定するには、以下を実行します。
$ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"storage":{"emptyDir":{}}}}'
警告実稼働用以外のクラスターにのみこのオプションを設定します。
イメージレジストリー Operator がそのコンポーネントを初期化する前にこのコマンドを実行する場合、
oc patch
コマンドは以下のエラーを出して失敗します。Error from server (NotFound): configs.imageregistry.operator.openshift.io "cluster" not found
数分待機した後に、このコマンドを再び実行します。
3.6.6. ブロックレジストリーストレージの設定
イメージレジストリーがクラスター管理者によるアップグレード時にブロックストレージタイプを使用できるようにするには、Recreate
ロールアウトストラテジーを使用できます。
ブロックストレージボリュームはサポートされますが、実稼働クラスターでのイメージレジストリーと併用することは推奨されません。レジストリーに複数のレプリカを含めることができないため、ブロックストレージにレジストリーが設定されているインストールに高可用性はありません。
手順
イメージレジストリーストレージをブロックストレージタイプとして設定するには、レジストリーが
Recreate
ロールアウトストラテジーを使用し、1 つの (1
) レプリカのみで実行されるように、レジストリーにパッチを適用します。$ oc patch config.imageregistry.operator.openshift.io/cluster --type=merge -p '{"spec":{"rolloutStrategy":"Recreate","replicas":1}}'
- ブロックストレージデバイスの PV をプロビジョニングし、そのボリュームの PVC を作成します。要求されたブロックボリュームは ReadWriteOnce (RWO) アクセスモードを使用します。
- 正しい PVC を参照するようにレジストリー設定を編集します。
3.6.7. 関連情報
- ベアメタルの場合のレジストリーストレージの設定方法の詳細は、設定可能な推奨のストレージ技術 を参照してください。