9.4. Red Hat OpenShift Service on AWS のイメージレジストリーミラーリング
ImageDigestMirrorSet (IDMS) オブジェクトを使用して、ミラーリングされたレジストリーからイメージをプルするように既存の Red Hat OpenShift Service on AWS クラスターを設定できます。
イメージミラー設定機能は、ダイジェストによるイメージ参照でのみ動作します。つまり、イメージミラーリングが有効になるのは、一意かつイミュータブルな ID を使用してイメージがプルされた場合だけです。ミュータブルなタグを使用したイメージ参照は、現在この機能ではサポートされていません。
IDMS は、イメージのダウンロードを高速化し、信頼性とセキュリティーを向上させるための、レジストリーミラーリングに関するクラスター全体のポリシーを定義します。これは、一意のコンテンツアドレス指定ダイジェストによってイメージを識別するイメージプルリクエストをインターセプトすることによって機能します。IDMS はこれらのポリシーに基づいて、指定のソースレジストリーから 1 つ以上の指定されたミラーレジストリーにプル操作を透過的にリダイレクトします。開発者にとっては、元のソースを参照したままのリクエストが、より高速でより近いミラーによって自動的に対応されるため、ワークフローを変更することなく、デプロイメント速度が大幅に向上します。
前提条件
ImageDigestMirrorSet (IDMS) オブジェクトを使用して、ミラーリングされたレジストリーからイメージをプルするように Red Hat OpenShift Service on AWS クラスターを設定するには、次の前提条件を満たす必要があります。
-
インストールホストに最新の ROSA コマンドラインインターフェイス (CLI) (
rosa) をインストールして設定した。 - Red Hat OpenShift Service on AWS クラスターをインストールした。
- イメージミラーを作成、編集、リスト表示、または削除するために、Red Hat OpenShift Service on AWS クラスターが Ready 状態になっている。
- 設定するミラーレジストリーにアクセスできる。
- クラスター設定の管理に必要な IAM 権限がある。詳細は、関連情報 セクションの 「IAM リソースについて」を参照してください。
IDMS を使用してミラー化されたレジストリーからイメージをプルするように Red Hat OpenShift Service on AWS クラスターを設定する利点は次のとおりです。
- 強化されたセキュリティー: プライベートのミラーリングされたレジストリーからイメージを強制的にプルして、イメージがクラスターに入る前に、すべてのイメージの脆弱性をスキャンして承認できます。
- クラスターの信頼性の向上: ローカルミラーにより、パブリックインターネットパスウェイへの依存が排除され、安定した予測可能なクラスターパフォーマンスが確保されます。
- イメージの一貫性の保証: IDMS はイメージダイジェストを使用してイメージを参照します。これにより、クラスター内のすべてのノードが同じバージョンのイメージをプルし、デプロイメントの失敗につながる可能性のある不整合が防止されます。
9.4.1. イメージミラー設定の作成 リンクのコピーリンクがクリップボードにコピーされました!
手順
Red Hat OpenShift Service on AWS クラスターのイメージミラー設定を作成するには、次のコマンドを実行します。
ソースレジストリーは作成後に変更することはできません。ソースを変更するには、イメージミラーを削除して再作成する必要があります。
構文
rosa create image-mirror [arguments]
$ rosa create image-mirror [arguments]
| オプション | 定義 |
|---|---|
| --cluster | 必須: ミラー設定を適用するクラスターの名前または ID。 |
| --source | 必須: ミラーリングされるソースレジストリー。 |
| --mirrors | 必須: ミラーレジストリーのリスト。ミラーレジストリーはコンマで区切る必要があります。 |
| --type=digest |
任意: イメージミラーのタイプ。 |
| --profile | 任意: 認証情報ファイルから AWS プロファイル (文字列) を指定します。 |
| --region | 任意: AWS リージョンを指定し、AWS_REGION 環境変数をオーバーライドします。 |
例
mycluster という名前のクラスターのイメージミラー設定を作成します。
rosa create image-mirror --cluster=mycluster \ --source=registry.example.com/team \ --mirrors=mirror.corp.com/team,backup.corp.com/team
$ rosa create image-mirror --cluster=mycluster \
--source=registry.example.com/team \
--mirrors=mirror.corp.com/team,backup.corp.com/team
出力例
I: Image mirror with ID 'abc123def456' has been created on cluster 'mycluster' I: Source: registry.example.com/team I: Mirrors: [mirror.corp.com/team backup.corp.com/team]
I: Image mirror with ID 'abc123def456' has been created on cluster 'mycluster'
I: Source: registry.example.com/team
I: Mirrors: [mirror.corp.com/team backup.corp.com/team]
イメージミラー設定の作成中に、ID が自動的に生成され、イメージミラーに割り当てられます。
特定のタイプのイメージミラー設定を作成します。
digest タイプがデフォルトで設定されます。これは唯一使用可能な type オプションです。
rosa create image-mirror --cluster=mycluster \ --type=digest --source=docker.io/library \ --mirrors=internal-registry.company.com/dockerhub
$ rosa create image-mirror --cluster=mycluster \
--type=digest --source=docker.io/library \
--mirrors=internal-registry.company.com/dockerhub
クラスターのミラーが複数含まれるイメージミラー設定を 1 つ作成します。
rosa create image-mirror --cluster=mycluster \ --source=quay.io/openshift \ --mirrors=mirror1.company.com/openshift,mirror2.company.com/openshift,mirror3.company.com/openshift
$ rosa create image-mirror --cluster=mycluster \
--source=quay.io/openshift \
--mirrors=mirror1.company.com/openshift,mirror2.company.com/openshift,mirror3.company.com/openshift
9.4.2. イメージミラーリング設定の編集 リンクのコピーリンクがクリップボードにコピーされました!
手順
Red Hat OpenShift Service on AWS クラスターのイメージミラー設定を編集するには、次のコマンドを実行します。
イメージミラー設定を編集すると、新しいミラーリストが既存のミラーリストに完全に置き換えられます。
構文
rosa edit image-mirror [arguments]
$ rosa edit image-mirror [arguments]
| オプション | 定義 |
|---|---|
| --cluster | 必須: イメージミラー設定が適用されるクラスターの名前または ID (文字列)。 |
| --mirrors | 必須: 現在のミラーレジストリーを置き換える新しいミラーレジストリーのリスト。ミラーレジストリーはコンマで区切る必要があります。 |
| --id | 必須: 編集するイメージミラー設定の ID。 |
| --profile | 任意: 認証情報ファイルから特定の AWS プロファイルを使用します。 |
| --region | 任意: AWS リージョンを使用し、AWS_REGION 環境変数をオーバーライドします。 |
例
イメージミラー設定のミラーを 1 つ置き換えます。
rosa edit image-mirror --cluster=mycluster --id=abc123def456 \ --mirrors=single-mirror.company.com/team
$ rosa edit image-mirror --cluster=mycluster --id=abc123def456 \
--mirrors=single-mirror.company.com/team
出力例
I: Image mirror 'abc123def456' has been updated on cluster 'mycluster' I: Source: registry.example.com/team I: Updated mirrors: [mirror.corp.com/team backup.corp.com/team new-mirror.corp.com/team]
I: Image mirror 'abc123def456' has been updated on cluster 'mycluster'
I: Source: registry.example.com/team
I: Updated mirrors: [mirror.corp.com/team backup.corp.com/team new-mirror.corp.com/team]
イメージミラー設定のすべてのミラーを置き換えます。
rosa edit image-mirror --cluster=mycluster --id=abc123def456 \ --mirrors=new-primary.company.com/team,new-secondary.company.com/team
$ rosa edit image-mirror --cluster=mycluster --id=abc123def456 \
--mirrors=new-primary.company.com/team,new-secondary.company.com/team
9.4.3. すべてのイメージミラー設定のリスト表示 リンクのコピーリンクがクリップボードにコピーされました!
手順
Red Hat OpenShift Service on AWS クラスターのすべてのイメージミラー設定をリスト表示するには、次のコマンドを実行します。
構文
rosa list image-mirrors [arguments]
$ rosa list image-mirrors [arguments]
| オプション | 定義 |
|---|---|
| --cluster | 必須: クラスターの名前または ID。 |
| --output |
任意: 出力形式。使用できる形式は |
| --profile | 任意: 認証情報ファイルから特定の AWS プロファイルを使用します。 |
| --region | 任意: AWS リージョンを使用し、AWS_REGION 環境変数をオーバーライドします。 |
例
クラスターのすべてのイメージミラー設定を表示します。
rosa list image-mirrors --cluster=mycluster
$ rosa list image-mirrors --cluster=mycluster
出力例
ID TYPE SOURCE MIRRORS abc123def456 digest registry.example.com/team mirror.corp.com/team, backup.corp.com/
ID TYPE SOURCE MIRRORS
abc123def456 digest registry.example.com/team mirror.corp.com/team, backup.corp.com/
9.4.4. イメージミラー設定の削除 リンクのコピーリンクがクリップボードにコピーされました!
--yes または --y の引数が使用されない限り、削除操作を確定する必要があります。
手順
Red Hat OpenShift Service on AWS クラスターからイメージミラー設定を削除するには、次のコマンドを実行します。
構文
rosa delete image-mirror [arguments]
$ rosa delete image-mirror [arguments]
| オプション | 定義 |
|---|---|
| --cluster | 必須: イメージミラー設定が削除されるクラスターの名前または ID (文字列)。 |
| --id | 必須: 削除するイメージミラー設定の ID。 |
|
| オプション: 自動的に "yes" と回答して削除を確定します。 |
| --profile | 任意: 認証情報ファイルから特定の AWS プロファイルを使用します。 |
| --region | 任意: AWS リージョンを使用し、AWS_REGION 環境変数をオーバーライドします。 |
例
確認プロンプトなしでイメージミラー設定を削除します。
rosa delete image-mirror --cluster=mycluster abc123def456 --yes
$ rosa delete image-mirror --cluster=mycluster abc123def456 --yes
出力例
I: Image mirror 'abc123def456' has been deleted from cluster 'mycluster'
I: Image mirror 'abc123def456' has been deleted from cluster 'mycluster'
確認プロンプトとともにイメージミラー設定を削除します。
rosa delete image-mirror --cluster=mycluster --id=abc123def456
$ rosa delete image-mirror --cluster=mycluster --id=abc123def456