Menu Close

3.2. Quay コンポーネント

Quay は強力なコンテナーレジストリープラットフォームであるため、十分な数の依存関係が必要となります。これらには、データベース、オブジェクトストレージ、Redis などが含まれます。Quay Operator は、Quay と Kubernetes 上のそれらの依存関係の事前に設定されたデプロイメントを管理します。これらの依存関係は コンポーネント として処理され、QuayRegistry API で設定されます。

QuayRegistry カスタムリソースでは、spec.components フィールドでコンポーネントを設定します。各コンポーネントには、コンポーネントの名前である kind およびコンポーネントライフサイクルが Operator によって処理されるかどうかを示すブール値の managed の 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 が頻繁に再起動されていることを通知するアラートなどが含まれます。