3.2. Quay コンポーネント
Quay は強力なコンテナーレジストリープラットフォームであるため、十分な数の依存関係が必要となります。これらには、データベース、オブジェクトストレージ、Redis などが含まれます。Quay Operator は、Kubernetes 上で Quay とその依存関係に指向したデプロイメントを管理します。これらの依存関係は コンポーネント として処理され、QuayRegistry
API で設定されます。
QuayRegistry
カスタムリソースでは、spec.components
フィールドでコンポーネントを設定します。各コンポーネントには、kind
(コンポーネントの名前) と managed
(コンポーネントのライフサイクルを Operator が処理するかどうかを示すブール値) の 2 つのフィールドがあります。デフォルトでは (このフィールドを省略)、すべてのコンポーネントが管理され、調整時に表示できるように自動的に入力されます。
spec: components: - managed: true kind: clair - managed: true kind: postgres - managed: true kind: objectstorage - managed: true kind: redis - managed: true kind: horizontalpodautoscaler - managed: true kind: route - managed: true kind: mirror - managed: true kind: monitoring
QuayRegistry
カスタムリソースが 指定しない場合、Operator は以下の管理コンポーネントについてデフォルトを使用します。
-
postgres
はレジストリーのメタデータを保存します。Software Collections から Postgres 10 のバージョンを使用します。 -
redis
は Quay ビルダーの調整および一部のロギングを処理します。 -
objectstorage
はイメージ レイヤー Blob を保存します。Noobaa/RHOCS によって提供されるObjectBucketClaim
Kubernetes API を活用します。 -
clair
はイメージの脆弱性スキャンを提供します。 -
horizontalpodautoscaler
は、メモリー/CPU の消費に応じて Quay Pod 数を調整します。 -
mirror
は、リポジトリーミラーワーカーを設定します (オプションのリポジトリーミラーリングをサポートするため)。 -
route
は、OpenShift の外部から Quay レジストリーへの外部エントリーポイントを提供します。 -
モニターリング機能
には、Grafana ダッシュボード、個別のメトリクスへのアクセス、Quay Pod が頻繁に再起動されていることを通知するアラートなどが含まれます。