6장. 데이터베이스 구성
6.1. 기존 PostgreSQL 데이터베이스 사용 링크 복사링크가 클립보드에 복사되었습니다!
외부 관리형 PostgreSQL 데이터베이스를 사용하는 경우 성공적인 배포를 위해 pg_trgm 확장을 수동으로 활성화해야 합니다.
Red Hat Quay 및 Clair 배포 모두에 대해 외부적으로 관리되는 PostgreSQL 데이터베이스를 사용해서는 안 됩니다. Red Hat Quay 또는 Clair와 같은 연결 집약적 워크로드(예: 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 구성 파일을
사용하여보안을 생성합니다.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구성 요소를관리되지 않음으로 표시하고 생성된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 |
데이터베이스 URI 예
# ... DB_URI: postgresql://quayuser:quaypass@quay-server.example.com:5432/quay # ...
# ...
DB_URI: postgresql://quayuser:quaypass@quay-server.example.com:5432/quay
# ...
6.1.1.2. 데이터베이스 연결 인수 링크 복사링크가 클립보드에 복사되었습니다!
선택적 연결 인수는 DB_CONNECTION_ARGS 매개변수를 통해 구성됩니다. DB_CONNECTION_ARGS 에서 정의된 일부 키-값 쌍은 일반적인 반면 다른 쌍은 데이터베이스별입니다.
| 필드 | 유형 | 설명 |
|---|---|---|
| DB_CONNECTION_ARGS | 개체 | 데이터베이스의 선택적 연결 인수(예: 시간 초과 및 SSL/TLS)입니다. |
| .autorollback | 부울 |
스레드 로컬 연결을 사용할지 여부입니다. |
| .threadlocals | 부울 |
자동 롤백 연결을 사용할지 여부입니다. |
데이터베이스 연결 인수 예
6.1.1.2.1. SSL/TLS 연결 인수 링크 복사링크가 클립보드에 복사되었습니다!
SSL/TLS를 사용하면 배포 중인 데이터베이스에 따라 구성이 달라집니다.
sslmode 옵션은 보안 SSL/TLS TCP/IP 연결이 서버와 협상될 우선순위를 결정합니다. 여섯 가지 모드가 있습니다.
| 모드 | 설명 |
|---|---|
| sslmode | 보안 SSL/TLS 또는 TCP/IP 연결이 서버와 협상되는지의 우선 순위를 결정합니다. |
| *: disable | 구성은 SSL/TLS 연결만 시도합니다. |
| *: 허용 | 구성은 먼저 비 SSL/TLS 연결을 시도합니다. 실패하면 SSL/TLS 연결을 시도합니다. |
|
*: | 구성은 먼저 SSL/TLS 연결을 시도합니다. 실패하면 SSL/TLS 연결을 시도합니다. |
| *: require | 구성은 SSL/TLS 연결만 시도합니다. 루트 CA 파일이 있는 경우 verify-ca가 지정된 것과 동일한 방식으로 인증서를 확인합니다. |
| *: verify-ca | 구성은 SSL/TLS 연결만 시도하며 신뢰할 수 있는 CA(인증 기관)에서 서버 인증서를 발급하는지 확인합니다. |
| *: verify-full | SSL/TLS 연결만 시도한 후 서버 인증서가 신뢰할 수 있는 CA에서 발행되고 요청된 서버 호스트 이름이 인증서에서 해당 이름과 일치하는지 확인합니다. |
PostgreSQL에 대한 유효한 인수에 대한 자세한 내용은 데이터베이스 연결 제어 함수 를 참조하십시오.
PostgreSQL SSL/TLS 구성
# ... DB_CONNECTION_ARGS: sslmode: <value> sslrootcert: path/to/.postgresql/root.crt # ...
# ...
DB_CONNECTION_ARGS:
sslmode: <value>
sslrootcert: path/to/.postgresql/root.crt
# ...
6.1.2. 관리형 PostgreSQL 데이터베이스 사용 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Quay 3.9를 사용하면 Red Hat Quay Operator에서 데이터베이스를 관리하는 경우 Red Hat Quay 3.8
-
관리형 데이터베이스가 있는 사용자는 PostgreSQL 데이터베이스를 10
13에서 업그레이드해야 합니다. - Operator에서 Red Hat Quay 및 Clair 데이터베이스를 관리하는 경우 3.9.0 업그레이드가 성공하려면 각 구성 요소의 데이터베이스 업그레이드가 성공해야 합니다. 데이터베이스 업그레이드 중 하나가 실패하면 전체 Red Hat Quay 버전 업그레이드가 실패합니다. 이 동작이 예상됩니다.
Red Hat Quay Operator가 PostgreSQL 배포를 PostgreSQL 10 quayregistry.yaml 파일에서 PostgreSQL 매개변수를 managed: false 로 설정해야 합니다. 데이터베이스를 Unmanaged로 설정하는 방법에 대한 자세한 내용은 기존 Postgres 데이터베이스 사용을 참조하십시오.
- PostgreSQL 13으로 업그레이드하는 것이 좋습니다. PostgreSQL 10은 2022년 11월 10일에 최종 릴리스되었으며 더 이상 지원되지 않습니다. 자세한 내용은 PostgreSQL 버전 관리 정책을 참조하십시오.
PostgreSQL 데이터베이스가 RHEL(Red Hat Enterprise Linux) 시스템과 동일한 버전을 일치시키려면 RHEL 8용 RHEL 8 버전으로 마이그레이션 하거나 RHEL 9용 RHEL 9 버전의 PostgreSQL으로 마이그레이션 을 참조하십시오.
Red Hat Quay 3.8
6.1.2.1. PostgreSQL 데이터베이스 권장 사항 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Quay 팀은 PostgreSQL 데이터베이스를 관리하기 위해 다음을 권장합니다.
- 데이터베이스 백업은 PostgreSQL 이미지 또는 자체 백업 인프라에서 제공된 툴을 사용하여 정기적으로 수행해야 합니다. Red Hat Quay Operator는 현재 PostgreSQL 데이터베이스가 백업되었는지 확인하지 않습니다.
-
백업에서 PostgreSQL 데이터베이스 복원은 PostgreSQL 툴 및 절차를 사용하여 수행해야 합니다. 데이터베이스 복원이 진행 중인 동안
Quaypod가 실행되지 않아야 합니다. - 데이터베이스 디스크 공간은 50GiB의 Red Hat Quay Operator에 의해 자동으로 할당됩니다. 이 수는 대부분의 소규모에서 중간 규모의 Red Hat Quay 설치에 사용 가능한 스토리지 양을 나타내지만 사용 사례에는 충분하지 않을 수 있습니다. 데이터베이스 볼륨 크기 조정은 현재 Red Hat Quay Operator에 의해 처리되지 않습니다.