9.10. タグおよびイメージ管理
このセクションでは、タグとイメージを Red Hat Quay 内で管理する方法を制御する設定フィールドについて説明します。これらの設定は、イメージのクリーンアップの自動化、リポジトリーミラーの管理、およびキャッシュによるパフォーマンスの向上に役立ちます。
これらのフィールドを使用すると、以下のことができます。
- タグ付けされていないイメージまたは古いイメージの有効期限ポリシーを定義します。
- 外部リポジトリーのミラーリングをレジストリーへの有効にし、スケジュールします。
- モデルキャッシュを活用して、タグとリポジトリー操作のパフォーマンスを最適化します。
これらのオプションは、最新のイメージレジストリー環境を維持するのに役立ちます。
9.10.1. タグの有効期限の設定フィールド
次の設定オプションを使用して、タグの有効期限とガベージコレクションを自動化できます。これらの機能は、定義されたポリシーに基づいて未使用タグまたは期限切れのタグのクリーンアップを有効にすることで、ストレージの使用を管理するのに役立ちます。
フィールド | 型 | 説明 |
---|---|---|
FEATURE_GARBAGE_COLLECTION | Boolean |
リポジトリーのガベージコレクションを有効にするかどうか。 |
TAG_EXPIRATION_OPTIONS | 文字列の配列 |
有効にすると、ユーザーが namespace 内のタグの有効期限を選択できるオプション。 |
DEFAULT_TAG_EXPIRATION | String |
タイムマシンのデフォルトの設定可能なタグ有効期限。 |
FEATURE_CHANGE_TAG_EXPIRATION | Boolean |
ユーザーおよび組織が namespace のタグの有効期限を変更できるかどうか。 |
FEATURE_AUTO_PRUNE | Boolean |
|
NOTIFICATION_TASK_RUN_MINIMUM_INTERVAL_MINUTES | Integer |
有効期限が切れるイメージに関する通知を再実行する頻度を定義する間隔 (分単位)。 |
DEFAULT_NAMESPACE_AUTOPRUNE_POLICY | Object | 組織全体のデフォルトの自動プルーニングポリシー。 |
.method: number_of_tags | Object | 保持するタグの数を指定するオプション。 |
.value: <integer> | Integer |
method: number_of_tags と一緒に使用した場合に、保持するタグの数を示します。
たとえば、2 つのタグを保持するには、 |
.creation_date | Object | タグを保持する期間を指定するオプション。 |
.value: <integer> | Integer |
creation_date と一緒に使用した場合に、タグを保持する期間を示します。
秒 ( |
AUTO_PRUNING_DEFAULT_POLICY_POLL_PERIOD | Integer | 自動プルーナーワーカーをレジストリーレベルで実行する期間。デフォルトでは、1 日に 1 回 (24 時間に 1 回) 実行されるように設定されています。値は秒単位で指定する必要があります。 |
FEATURE_IMAGE_EXPIRY_TRIGGER | Boolean |
ユーザーがイメージの有効期限の通知を設定できます。 |
タグの有効期限の例の YAML
# ... FEATURE_GARBAGE_COLLECTION: true TAG_EXPIRATION_OPTIONS: - 1w - 2w - 1m - 90d DEFAULT_TAG_EXPIRATION: 2w FEATURE_CHANGE_TAG_EXPIRATION: true FEATURE_AUTO_PRUNE: true NOTIFICATION_TASK_RUN_MINIMUM_INTERVAL_MINUTES: 300 DEFAULT_NAMESPACE_AUTOPRUNE_POLICY: method: number_of_tags value: 10 AUTO_PRUNING_DEFAULT_POLICY_POLL_PERIOD: 86400 FEATURE_IMAGE_EXPIRY_TRIGGER: false # ...
# ...
FEATURE_GARBAGE_COLLECTION: true
TAG_EXPIRATION_OPTIONS:
- 1w
- 2w
- 1m
- 90d
DEFAULT_TAG_EXPIRATION: 2w
FEATURE_CHANGE_TAG_EXPIRATION: true
FEATURE_AUTO_PRUNE: true
NOTIFICATION_TASK_RUN_MINIMUM_INTERVAL_MINUTES: 300
DEFAULT_NAMESPACE_AUTOPRUNE_POLICY:
method: number_of_tags
value: 10
AUTO_PRUNING_DEFAULT_POLICY_POLL_PERIOD: 86400
FEATURE_IMAGE_EXPIRY_TRIGGER: false
# ...
- 1
- 残すタグ 10 個を指定します。
作成日のサンプル YAML によるレジストリーの自動プルーニングポリシー
# ... DEFAULT_NAMESPACE_AUTOPRUNE_POLICY: method: creation_date value: 1y # ...
# ...
DEFAULT_NAMESPACE_AUTOPRUNE_POLICY:
method: creation_date
value: 1y
# ...
- 1
- 作成日から 1 年後にプルーニングするタグを指定します。
9.10.2. 設定フィールドのミラーリング
Red Hat Quay のミラーリングにより、リポジトリーとアップストリームソースの自動同期が可能になります。この機能は、リモートコンテナーイメージのローカルミラーを維持して、切断された環境での可用性を確保したり、キャッシュによってパフォーマンスを向上したりするのに役立ちます。
関連情報
フィールド | 型 | 説明 |
---|---|---|
FEATURE_REPO_MIRROR | Boolean |
リポジトリーミラーリングを有効または無効にします。 |
REPO_MIRROR_INTERVAL | 数値 |
次にリポジトリーミラー候補をチェックするまでの秒数。 |
REPO_MIRROR_SERVER_HOSTNAME | String |
|
REPO_MIRROR_TLS_VERIFY | Boolean |
HTTPS を必要とし、ミラー時に Quay レジストリーの証明書を検証します。 |
REPO_MIRROR_ROLLBACK | Boolean |
デフォルト: |
ミラーリング設定例の YAML
# ... FEATURE_REPO_MIRROR: true REPO_MIRROR_INTERVAL: 30 REPO_MIRROR_SERVER_HOSTNAME: "openshift-quay-service" REPO_MIRROR_TLS_VERIFY: true REPO_MIRROR_ROLLBACK: false # ...
# ...
FEATURE_REPO_MIRROR: true
REPO_MIRROR_INTERVAL: 30
REPO_MIRROR_SERVER_HOSTNAME: "openshift-quay-service"
REPO_MIRROR_TLS_VERIFY: true
REPO_MIRROR_ROLLBACK: false
# ...
9.10.3. ModelCache 設定フィールド
ModelCache は、アクセスデータを保存し、データベースの負荷を軽減するために Red Hat Quay が使用するキャッシュメカニズムです。Quay は、デフォルトの Memcache、Redis および Redis クラスターなど、キャッシュ用の複数のバックエンドをサポートします。
- memcache (デフォルト): 追加の設定は必要ありません。
- Redis: 単一のインスタンスまたは読み取り専用レプリカとして設定できます。
- Redis クラスター: 大規模なデプロイメント用に高可用性およびシャーディングを提供します。
フィールド | 型 | 説明 |
---|---|---|
DATA_MODEL_CACHE_CONFIG.engine | String |
キャッシュバックエンドエンジン。 |
.redis_config.primary.host | String |
|
.redis_config.primary.port | 数値 | プライマリー Redis インスタンスが使用するポート。 |
.redis_config.primary.password | String |
プライマリー Redis インスタンスで認証するためのパスワード。 |
.redis_config.primary.ssl | Boolean | プライマリー Redis 接続に SSL/TLS を使用するかどうか。 |
.redis_config.startup_nodes | マップの配列 |
|
redis_config.password | String |
Redis クラスターでの認証に使用されるパスワード。 |
.redis_config.read_from_replicas | Boolean | Redis クラスターレプリカからの読み取り操作を許可するかどうか。 |
.redis_config.skip_full_coverage_check | Boolean | true に設定した場合は、Redis クラスターのフルカバレッジチェックを省略します。 |
.redis_config.ssl | Boolean | Redis クラスターの通信に SSL/TLS を使用するかどうか。 |
.replica.host | String | Redis レプリカインスタンスのホスト名。オプション: |
.replica.port | 数値 | Redis レプリカインスタンスによって使用されるポート。 |
.replica.password | String |
Redis レプリカのパスワード。 |
.replica.ssl | Boolean | Redis レプリカ接続に SSL/TLS を使用するかどうか。 |
オプションのレプリカサンプル YAML を備えた単一の Redis
# ... DATA_MODEL_CACHE_CONFIG: engine: redis redis_config: primary: host: <redis-primary.example.com> port: 6379 password: <redis_password>> ssl: true replica: host: <redis-replica.example.com> port: 6379 password: <redis_password> ssl: true # ...
# ...
DATA_MODEL_CACHE_CONFIG:
engine: redis
redis_config:
primary:
host: <redis-primary.example.com>
port: 6379
password: <redis_password>>
ssl: true
replica:
host: <redis-replica.example.com>
port: 6379
password: <redis_password>
ssl: true
# ...
クラスター化された Redis サンプル YAML
# ... DATA_MODEL_CACHE_CONFIG: engine: <rediscluster> redis_config: startup_nodes: - host: <redis-node-1.example.com> port: 6379 - host: <redis-node-2.example.com> port: 6379 password: <cluster_password> read_from_replicas: true skip_full_coverage_check: true ssl: true # ...
# ...
DATA_MODEL_CACHE_CONFIG:
engine: <rediscluster>
redis_config:
startup_nodes:
- host: <redis-node-1.example.com>
port: 6379
- host: <redis-node-2.example.com>
port: 6379
password: <cluster_password>
read_from_replicas: true
skip_full_coverage_check: true
ssl: true
# ...