第2章 Cluster Samples Operator の設定
openshift
namespace で動作する Cluster Samples Operator は、Red Hat Enterprise Linux (RHEL) ベースの OpenShift Container Platform イメージストリームおよび OpenShift Container Platform テンプレートをインストールし、更新します。
OpenShift Container Platform 4.16 以降で、Cluster Samples Operator が非推奨になりました。Cluster Samples Operator に、新規のテンプレート、サンプル、または非 Source-to-Image (非 S2I) イメージストリームは追加されません。ただし今後のリリースで Cluster Samples Operator が削除されるまで、既存の S2I ビルダーイメージストリームとテンプレートは引き続き更新されます。S2I イメージストリームとテンプレートには、次のものが含まれます。
- Ruby
- Python
- Node.js
- Perl
- PHP
- HTTPD
- Nginx
- EAP
- Java
- Webserver
- .NET
- Go
- Cluster Samples Operator は、非 S2I サンプル (イメージストリームとテンプレート) の管理とサポートを停止します。要件や将来の計画は、イメージストリームまたはテンプレートの所有者に問い合わせてください。さらに、list of the repositories hosting the image stream or templates を参照してください。
2.1. Cluster Samples Operator について
Operator はインストール時に独自にデフォルト設定オブジェクトを作成し、その後にクイックスタートテンプレートを含む、サンプルのイメージストリームおよびテンプレートを作成します。
認証情報を必要とする他のレジストリーからのイメージストリームのインポートを容易にするには、クラスター管理者は、イメージのインポートに必要な Docker config.json
ファイルの内容を含む追加のシークレットを openshift
namespace に作成できます。
Cluster Samples Operator 設定はクラスター全体で使用されるリソースであり、デプロイメントは openshift-cluster-samples-operator
namespace 内に含められます。
Cluster Samples Operator のイメージには、関連付けられた OpenShift Container Platform リリースのイメージストリームおよびテンプレートの定義が含まれます。各サンプルが作成または更新されると、Cluster Samples Operator には OpenShift Container Platform のバージョンを示すアノテーションが含まれます。Operator はこのアノテーションを使用して、各サンプルをリリースバージョンに一致させるようにします。このインベントリーの外にあるサンプルは省略されるサンプルであるために無視されます。バージョンのアノテーションが変更または削除されると、Operator が管理するサンプルに変更が加えてもそれらの変更は自動的に元に戻されます。
Jenkins イメージはインストールからのイメージペイロードの一部であり、イメージストリームに直接タグ付けされます。
Cluster Samples Operator 設定リソースには、削除時に以下を消去するファイナライザーが含まれます。
- Operator 管理のイメージストリーム
- Operator 管理のテンプレート
- Operator が生成する設定リソース
- クラスターステータスのリソース
サンプルリソースの削除時に、Cluster Samples Operator はデフォルト設定を使用してリソースを再作成します。
2.1.1. Cluster Samples Operator の管理状態の使用
Cluster Samples Operator はデフォルトで Managed
としてブートストラップされるか、グローバルプロキシーが設定されている場合にブートストラップされます。Managed
状態で、Cluster Samples Operator は、イメージストリームおよびイメージをレジストリーからプルし、必要なサンプルテンプレートがインストールされた状態になるように、リソースをアクティブに管理し、コンポーネントをアクティブな状態に維持します。
以下を含む特定の状況では、Cluster Samples Operator が Removed
としてそれ自体をブートストラップします。
- Cluster Samples Operator が、クリーンインストール後の初回起動から 3 分後に registry.redhat.io に到達できない場合。
- Cluster Samples Operator がこれが IPv6 ネットワーク上にあることを検出する場合。
-
イメージコントローラーの設定パラメーターにより、デフォルトのイメージレジストリーまたは
samplesRegistry
設定で指定されたイメージレジストリーを使用してイメージストリームを作成できない場合。
OpenShift Container Platform の場合、デフォルトのイメージレジストリーはregistry.redhat.io
です。
ただし、Cluster Samples Operator がそれが IPv6 ネットワーク上にあり、OpenShift Container Platform グローバルプロキシーが設定されていることを検出した場合は、IPv6 チェックがすべてのチェックに取って代わります。その結果、Cluster Samples Operator はそれ自体を Removed
としてブートストラップします。
現在、IPv6 インストールは registry.redhat.io によってサポートされていません。Cluster Samples Operator は、ほとんどのサンプルイメージストリームおよびイメージを registry.redhat.io からプルします。
2.1.1.1. ネットワークが制限されたインストール
registry.redhat.io
にアクセスできない場合に Removed
としてすると、ネットワークの制限がすでに有効な場合にネットワークが制限されたインストールを容易にします。ネットワークアクセスが制限されている場合に Removed
としてートストラップすると、クラスター管理者がサンプルが必要かどうかを判別する時間をより長く確保できます。これは、Cluster Samples Operator は管理状態が Removed
に設定されている場合にサンプルのイメージストリームのインポートに失敗しているアラートを送信しないためです。Cluster Samples Operator が Managed
として起動し、サンプルイメージストリームのインストールを試みると、インポートに失敗している場合に初回インストールから 2 時間後にアラートが開始されます。
2.1.1.2. 初期のネットワークアクセスが設定された状態でのネットワークが制限されたインストール
ネットワークが制限された環境のクラスターまたは非接続クラスターとすることが意図されたクラスターが、ネットワークアクセスがある状態で最初にインストールされた場合、Cluster Samples Operator はアクセス可能なために registry.redhat.io
からコンテンツをインストールします。Cluster Samples Operator を Removed
としてブートストラップして、必要なサンプルを判別するまでサンプルのインストールを遅らせる場合、イメージミラーのセットアップなどを行ってから、代替レジストリーで Samples Operator を使用し、ノードをカスタマイズする手順 (どちらも追加のリソースセクションにリンクされている) に従い、Cluster Samples Operator のデフォルト設定を上書きし、最初に Removed
として起動します。
以下の追加の YAML ファイルを、openshift-install create manifest
で作成される openshift
ディレクトリーに置く必要があります。
managementState: Removed
が設定された Cluster Samples Operator YAML ファイルのサンプル
apiVersion: samples.operator.openshift.io/v1 kind: Config metadata: name: cluster spec: architectures: - x86_64 managementState: Removed
2.1.2. Cluster Samples Operator でのイメージストリームのインポートの追跡およびエラー回復
サンプルイメージストリームの作成または更新後に、Cluster Samples Operator はそれぞれのイメージストリームタグのイメージインポートの進捗をモニターします。
インポートが失敗すると、Cluster Samples Operator はイメージストリームイメージインポート API を使用してインポートを再試行します。これは oc import-image
コマンドで使用されるのと同じ API であり、インポートの成功が確認されるまで約 15 分ごとに、またはイメージストリームのいずれかが skippedImagestreams
一覧に追加されるように Cluster Samples Operator の設定が変更されるか、管理状態が Removed
に変更される場合に再試行されます。
関連情報
-
Cluster Samples Operator がインストール時に削除される場合、Cluster Samples Operator を代替レジストリーと共に使用 し、コンテンツをインポートし、サンプルを取得するために Cluster Samples Operator を
Managed
に設定できるようにします。 必要なサンプルを判別するまでサンプルのインストールを遅らせるために、初期のネットワークアクセスがある状態で制限付きネットワークインストールで Cluster Samples Operator を
Removed
としてブートストラップするには、ノードのカスタマイズ 手順に従い、Cluster Samples Operator のデフォルト設定をオーバーライドし、最初にRemoved
として起動させます。- 非接続環境でサンプルをホストするには、代替レジストリーで Cluster Samples Operator を使用する 手順に従います。
2.1.3. ミラーリングの Cluster Samples Operator のサポート
インストール時に、OpenShift Container Platform は imagestreamtag-to-image
という名前の設定マップを openshift-cluster-samples-operator
namespace に作成します。imagestreamtag-to-image
設定マップには、各イメージストリームタグのエントリー (設定されるイメージ) が含まれます。
設定マップの data フィールドの各エントリーのキーの形式は、<image_stream_name>_<image_stream_tag_name>
です。
OpenShift Container Platform の非接続インストール時に、Cluster Samples Operator のステータスは Removed
に設定されます。これを Managed
に変更することを選択する場合、サンプルがインストールされます。
ネットワークが制限されている環境または切断されている環境でサンプルを使用するには、ネットワークの外部のサービスにアクセスする必要がある場合があります。サービスの例には、Github、Maven Central、npm、RubyGems、PyPi などがあります。場合によっては、Cluster Samples Operator のオブジェクトが必要なサービスに到達できるようにするために、追加の手順を実行する必要があります。
この config map は、イメージストリームをインポートするためにミラーリングする必要があるイメージの参照情報として使用できます。
-
Cluster Samples Operator が
Removed
に設定される場合、ミラーリングされたレジストリーを作成するか、使用する必要のある既存のミラーリングされたレジストリーを判別できます。 - 新しい config map をガイドとして使用し、ミラーリングされたレジストリーに必要なサンプルをミラーリングします。
-
Cluster Samples Operator 設定オブジェクトの
skippedImagestreams
リストに、ミラーリングされていないイメージストリームを追加します。 -
Cluster Samples Operator 設定オブジェクトの
samplesRegistry
をミラーリングされたレジストリーに設定します。 -
次に、Cluster Samples Operator を
Managed
に設定し、ミラーリングしたイメージストリームをインストールします。
詳細の手順は、代替のレジストリーまたはミラーリングされたレジストリーでの Cluster Samples Operator イメージストリームの使用 を参照してください。