第6章 データベースの設定
6.1. 既存の PostgreSQL データベースの使用 リンクのコピーリンクがクリップボードにコピーされました!
外部で管理されている PostgreSQL データベースを使用している場合、デプロイメントを成功させるには、pg_trgm 拡張機能を手動で有効にする必要があります。
Red Hat Quay と Clair の両方のデプロイメントに、外部で管理される同じ PostgreSQL データベースを使用しないでください。また、Red Hat Quay や Clair などの接続集約型のワークロードがリソースを競合すると、PostgreSQL 側の自然な接続制限を使い果たしてしまう可能性があるため、PostgreSQL データベースを他のワークロードと共有しないでください。さらに、pgBouncer は Red Hat Quay または Clair ではサポートされていないため、この問題を解決するオプションではありません。
既存の PostgreSQL データベースをデプロイするには、次の手順を使用します。
手順
必要なデータベースフィールドを含む
config.yamlファイルを作成します。以下に例を示します。config.yamlファイルの例:DB_URI: postgresql://test-quay-database:postgres@test-quay-database:5432/test-quay-database
DB_URI: postgresql://test-quay-database:postgres@test-quay-database:5432/test-quay-databaseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 設定ファイルを使用して
Secretを作成します。kubectl create secret generic --from-file config.yaml=./config.yaml config-bundle-secret
$ kubectl create secret generic --from-file config.yaml=./config.yaml config-bundle-secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow postgresコンポーネントをunmanagedとマークし、作成したSecretを参照するQuayRegistry.yamlファイルを作成します。以下に例を示します。quayregistry.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のステップ
- 次のセクションに進み、レジストリーをデプロイします。
6.1.1. データベースの設定 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Red Hat Quay デプロイメントで利用可能なデータベース設定フィールドを説明します。
6.1.1.1. データベース URI リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay では、必要な DB_URI フィールドを使用してデータベースへの接続を設定します。
以下の表は DB_URI 設定フィールドを説明します。
| フィールド | 型 | 説明 |
|---|---|---|
|
DB_URI | 文字列 | 認証情報を含む、データベースにアクセスするための URI。
postgresql://quayuser:quaypass@quay-server.example.com:5432/quay |
6.1.1.2. データベース接続引数 リンクのコピーリンクがクリップボードにコピーされました!
オプションの接続引数は、DB_CONNECTION_ARGS パラメーターで設定されます。DB_CONNECTION_ARGS で定義されたキーと値のペアの一部は汎用的なものも、データベース固有のものもあります。
以下の表は、データベース接続引数を説明します。
| フィールド | 型 | 説明 |
|---|---|---|
| DB_CONNECTION_ARGS | Object | タイムアウトや SSL/TLS などのデータベースの任意の接続引数。 |
| .autorollback | Boolean |
スレッドローカル接続を使用するかどうか。 |
| .threadlocals | Boolean |
自動ロールバック接続を使用するかどうか。 |
6.1.1.2.1. PostgreSQL SSL/TLS 接続引数 リンクのコピーリンクがクリップボードにコピーされました!
SSL/TLS では、設定はデプロイするデータベースによって異なります。次の例は、PostgreSQL SSL/TLS 設定を示しています。
DB_CONNECTION_ARGS: sslmode: verify-ca sslrootcert: /path/to/cacert
DB_CONNECTION_ARGS:
sslmode: verify-ca
sslrootcert: /path/to/cacert
sslmode オプションは、セキュアな SSL/TLS TCP/IP 接続がサーバーにネゴシエートされるかどうか、その優先度を決定します。モードは 6 つあります。
| モード | 説明 |
|---|---|
| disable | この設定では、非 SSL/TLS 接続のみが試行されます。 |
| allow | 設定では、まず非 SSL/TLS 接続が試行されます。失敗すると、SSL/TLS 接続が試行されます。 |
|
prefer | 設定では、まず SSL/TLS 接続が試行されます。失敗すると、非 SSL/TLS 接続が試行されます。 |
| require | 設定では SSL/TLS 接続のみが試行されます。ルート CA ファイルが存在する場合は、verify-ca が指定されているのと同じ方法で証明書が検証されます。 |
| verify-ca | 設定では SSL/TLS 接続のみが試行され、サーバー証明書が信頼された認証局 (CA) によって発行されたかどうかが検証されます。 |
| verify-full | SSL/TLS 接続のみを試行し、サーバー証明書が信頼できる CA によって発行されていること、および要求されたサーバーのホスト名が証明書内のホスト名と一致することが確認されます。 |
PostgreSQL の有効な引数の詳細は、Database Connection Control Functions を参照してください。
6.1.1.2.2. MySQL SSL/TLS 接続引数 リンクのコピーリンクがクリップボードにコピーされました!
次の例は、MySQL SSL/TLS 設定のサンプルを示しています。
DB_CONNECTION_ARGS:
ssl:
ca: /path/to/cacert
DB_CONNECTION_ARGS:
ssl:
ca: /path/to/cacert
MySQL の有効な接続引数に関する情報は、Connecting to the Server Using URI-Like Strings or Key-Value Pairs を参照してください。
6.1.2. マネージド PostgreSQL データベースの使用 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay 3.9 では、データベースが Red Hat Quay Operator によって管理されている場合、Red Hat Quay 3.8 から 3.9 に更新すると自動的に PostgreSQL 10 から PostgreSQL 13 にアップグレードされます。
- マネージドデータベースを使用しているユーザーは、PostgreSQL データベースを 10 から 13 にアップグレードする必要があります。
- Red Hat Quay および Clair データベースが Operator によって管理されている場合、3.9.0 のアップグレードを成功させるには、各コンポーネントのデータベースのアップグレードが成功する必要があります。いずれかのデータベースのアップグレードが失敗すると、Red Hat Quay のバージョン全体のアップグレードが失敗します。この動作は想定されています。
Red Hat Quay Operator により PostgreSQL デプロイメントが PostgreSQL 10 から 13 にアップグレードされることを望まない場合は、quayregistry.yaml ファイルで PostgreSQL パラメーターを manage: false に設定する必要があります。データベースを管理対象外に設定する方法の詳細は、既存 Postgres データベースの使用 を参照してください。
- PostgreSQL 13 にアップグレードすることが強く推奨されます。PostgreSQL 10 は 2022 年 11 月 10 日に最終リリースとなり、サポートされなくなりました。詳細は、PostgreSQL のバージョン管理ポリシー を参照してください。
PostgreSQL データベースと Red Hat Enterprise Linux (RHEL) システムのバージョンを一致させるには、RHEL 8 の場合は PostgreSQL の RHEL 8 バージョンへの移行、RHEL 9 の場合は PostgreSQL の RHEL 9 バージョンへの移行 を参照してください。
Red Hat Quay 3.8
6.1.2.1. PostgreSQL データベースの推奨事項 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay チームは、PostgreSQL データベースを管理するために以下を推奨します。
- PostgreSQL イメージで提供されるツールまたは独自のバックアップインフラストラクチャーのいずれかを使用して、データベースのバックアップを定期的に実行する必要があります。Red Hat Quay Operator は現在、PostgreSQL データベースがバックアップされていることを保証していません。
-
バックアップからの PostgreSQL データベースの復元は、PostgreSQL のツールと手順を使用して行う必要があります。データベースを復元している間は、Quay
Podsを実行できないことに注意してください。 - データベースのディスク容量は、Red Hat Quay Operator によって 50 GiB が自動的に割り当てられます。この数は、ほとんどの小規模/中規模の Red Hat Quay インストールで利用可能なストレージの量を表しますが、実際のユースケースには十分ではない可能性があります。現在、データベースボリュームのサイズ変更は Red Hat Quay Operator で処理されません。