6.2. 外部 Redis の設定


このセクションの内容に沿って、外部 Redis デプロイメントをセットアップします。

6.2.1. 管理対象外 Redis データベースの使用

外部 Redis データベースをセットアップするには、次の手順を実行します。

手順

  1. 次の Redis フィールドを使用して config.yaml ファイルを作成します。

    # ...
    BUILDLOGS_REDIS:
        host: <quay-server.example.com>
        port: 6379
        ssl: false
    # ...
    USER_EVENTS_REDIS:
        host: <quay-server.example.com>
        port: 6379
        ssl: false
    # ...
  2. 次のコマンドを入力して、設定ファイルを使用してシークレットを作成します。

    $ oc create secret generic --from-file config.yaml=./config.yaml config-bundle-secret
  3. Redis コンポーネントを unmanaged に設定し、作成されたシークレットを参照する quayregistry.yaml ファイルを作成します。

    apiVersion: quay.redhat.com/v1
    kind: QuayRegistry
    metadata:
      name: example-registry
      namespace: quay-enterprise
    spec:
      configBundleSecret: config-bundle-secret
      components:
        - kind: redis
          managed: false
    # ...
  4. Red Hat Quay レジストリーをデプロイします。

6.2.2. 管理対象外 Horizontal Pod Autoscaler の使用

Horizontal Pod Autoscaler (HPA) は ClairQuay、および Mirror Pod に含まれるようになり、負荷の急増時に自動的にスケーリングされるようになりました。

HPA はデフォルトで管理対象となるように設定されているため、ClairQuay、および Mirror の Pod 数は 2 に設定されています。これにより、Red Hat Quay Operator による Quay の更新または再設定時、またはイベントの再スケジューリング中のダウンタイムを容易に回避できます。

注記

HorizontalPodAutoscaler コンポーネントを無効にして、HPA リソース自体を編集し、minReplicas フィールドの値を増やそうとすると、既知の問題が発生します。このセットアップを試行すると、Quay アプリケーション Pod は管理されていない HPA によりスケールアウトされ、60 秒後にレプリカ数が Red Hat Quay Operator により調整されます。その結果、HPA Pod は Operator によって継続的に作成され、削除されます。

この問題を解決するには、Red Hat Quay デプロイメントを少なくともバージョン 3.12.5 または 3.13.1 にアップグレードし、次の例を使用して問題を回避する必要があります。

この問題は、Red Hat Quay の将来のバージョンで修正される予定です。詳細は、PROJQUAY-6474 を参照してください。

6.2.2.1. Horizontal Pod Autoscaler の無効化

自動スケーリングを無効にするか、独自の HorizontalPodAutoscaler コンポーネントを作成するには、QuayRegistry カスタムリソース定義でコンポーネントを unmanaged として指定します。上記の既知の問題を回避するには、QuayRegistry CRD オブジェクトを変更し、quayclair、および mirror コンポーネントのレプリカを null に設定する必要があります。

手順

  • QuayRegistry CRD を編集して、quay コンポーネントの場合は、次の replicas: null を含めます。

    $ oc edit quayregistry <quay_registry_name> -n <quay_namespace>
    apiVersion: quay.redhat.com/v1
    kind: QuayRegistry
    metadata:
    name: quay-registry
    namespace: quay-enterprise
    spec:
    components:
      - kind: horizontalpodautoscaler
        managed: false
      - kind: quay
        managed: true
        overrides:
          replicas: null 1
      - kind: clair
        managed: true
        overrides:
          replicas: null
      - kind: mirror
        managed: true
        overrides:
          replicas: null
    # ...
    1
    QuayRegistry CRD で replicas: null を設定すると、Quay アプリケーションのデプロイメントマニフェストが replicas: 1 に変更されるため、新しいレプリカセットが生成される場合があります。

検証

  1. カスタマイズされた HorizontalPodAutoscalers CRD を作成し、minReplicas の量をより高い値 (たとえば 3) に増やします。

    kind: HorizontalPodAutoscaler
    apiVersion: autoscaling/v2
    metadata:
      name: quay-registry-quay-app
      namespace: quay-enterprise
    spec:
      scaleTargetRef:
        kind: Deployment
        name: quay-registry-quay-app
        apiVersion: apps/v1
      minReplicas: 3
      maxReplicas: 20
      metrics:
        - type: Resource
          resource:
            name: memory
            target:
              type: Utilization
              averageUtilization: 90
        - type: Resource
          resource:
            name: cpu
            target:
              type: Utilization
              averageUtilization: 90
  2. 次のコマンドを入力して、QuayRegistry アプリケーションが正常に起動したことを確認します。

    $ oc get pod | grep quay-app

    出力例

    quay-registry-quay-app-5b8fd49d6b-7wvbk         1/1     Running     0          34m
    quay-registry-quay-app-5b8fd49d6b-jslq9         1/1     Running     0          3m42s
    quay-registry-quay-app-5b8fd49d6b-pskpz         1/1     Running     0          43m
    quay-registry-quay-app-upgrade-llctl            0/1     Completed   0          51m

  3. 次のコマンドを入力して、HorizontalPodAutoscalers が正常に起動していることを確認します。

    $ oc get hpa
    NAME                     REFERENCE                           TARGETS            MINPODS   MAXPODS   REPLICAS   AGE
    quay-registry-quay-app   Deployment/quay-registry-quay-app   67%/90%, 54%/90%   3         20        3          51m

6.2.3. Route コンポーネントの無効化

Red Hat Quay Operator がルートを作成できないようにするには、次の手順を使用します。

手順

  1. コンポーネントを quayregistry.yaml ファイルで managed: false と設定します。

    apiVersion: quay.redhat.com/v1
    kind: QuayRegistry
    metadata:
      name: example-registry
      namespace: quay-enterprise
    spec:
      components:
        - kind: route
          managed: false
  2. config.yaml ファイルを編集して、Red Hat Quay が SSL/TLS を処理するように指定します。以下に例を示します。

    # ...
    EXTERNAL_TLS_TERMINATION: false
    # ...
    SERVER_HOSTNAME: example-registry-quay-quay-enterprise.apps.user1.example.com
    # ...
    PREFERRED_URL_SCHEME: https
    # ...

    管理対象外ルートを正しく設定しないと、次のエラーが返されます。

    {
      {
        "kind":"QuayRegistry",
        "namespace":"quay-enterprise",
        "name":"example-registry",
        "uid":"d5879ba5-cc92-406c-ba62-8b19cf56d4aa",
        "apiVersion":"quay.redhat.com/v1",
        "resourceVersion":"2418527"
      },
      "reason":"ConfigInvalid",
      "message":"required component `route` marked as unmanaged, but `configBundleSecret` is missing necessary fields"
    }
注記

デフォルトルートを無効にするということは、Red Hat Quay インスタンスにアクセスするために RouteService、または Ingress を作成する必要があることを意味します。さらに、使用する DNS は Red Hat Quay 設定の SERVER_HOSTNAME と一致する必要があります。

6.2.4. モニタリングコンポーネントの無効化

Red Hat Quay Operator を単一の namaspace にインストールすると、モニタリングコンポーネントは自動的に managed: false に設定されます。監視を明示的に無効にするには、次の参照を使用してください。

管理対象外のモニタリング

apiVersion: quay.redhat.com/v1
kind: QuayRegistry
metadata:
  name: example-registry
  namespace: quay-enterprise
spec:
  components:
    - kind: monitoring
      managed: false

注記

Red Hat Quay Operator が単一の名前空間にインストールされている場合、監視を有効にすることはできません。

6.2.5. ミラーリングコンポーネントの無効化

ミラーリングを無効にするには、次の YAML 設定を使用します。

管理対象外ミラーリングの YAML 設定の例

apiVersion: quay.redhat.com/v1
kind: QuayRegistry
metadata:
  name: example-registry
  namespace: quay-enterprise
spec:
  components:
    - kind: mirroring
      managed: false

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.