5장. 데이터베이스 구성
5.1. 기존 PostgreSQL 데이터베이스 사용 링크 복사링크가 클립보드에 복사되었습니다!
외부 관리형 PostgreSQL 데이터베이스를 사용하는 경우 성공적인 배포를 위해 pg_trgm 확장을 수동으로 활성화해야 합니다.
기존 PostgreSQL 데이터베이스를 배포하려면 다음 절차를 사용하십시오.
프로세스
필요한 데이터베이스 필드를 사용하여
config.yaml파일을 생성합니다. 예를 들면 다음과 같습니다.config.yaml파일의 예:DB_URI: postgresql://test-quay-database:postgres@test-quay-database:5432/test-quay-database구성 파일을
사용하여보안을 생성합니다.$ kubectl create secret generic --from-file config.yaml=./config.yaml config-bundle-secretpostgres구성 요소를관리되지 않음으로 표시하고 생성된Secret을 참조하는QuayRegistry.yaml파일을 만듭니다. 예를 들면 다음과 같습니다.quayregistry.yaml파일 예apiVersion: quay.redhat.com/v1 kind: QuayRegistry metadata: name: example-registry namespace: quay-enterprise spec: configBundleSecret: config-bundle-secret components: - kind: postgres managed: false
다음 단계
- 다음 섹션을 계속 진행하여 레지스트리를 배포합니다.
5.1.1. 데이터베이스 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 Red Hat Quay 배포에 사용할 수 있는 데이터베이스 구성 필드에 대해 설명합니다.
5.1.1.1. 데이터베이스 URI 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Quay에서 데이터베이스에 대한 연결은 필수 DB_URI 필드를 사용하여 구성됩니다.
다음 표에서는 DB_URI 구성 필드를 설명합니다.
| 필드 | 유형 | 설명 |
|---|---|---|
|
DB_URI | 문자열 | 자격 증명을 포함하여 데이터베이스에 액세스하기 위한 URI입니다.
postgresql://quayuser:quaypass@quay-server.example.com:5432/quay |
5.1.1.2. 데이터베이스 연결 인수 링크 복사링크가 클립보드에 복사되었습니다!
선택적 연결 인수는 DB_CONNECTION_ARGS 매개변수를 통해 구성됩니다. DB_CONNECTION_ARGS 에서 정의된 일부 키-값 쌍은 일반적인 반면 다른 쌍은 데이터베이스별입니다.
다음 표에서는 데이터베이스 연결 인수를 설명합니다.
| 필드 | 유형 | 설명 |
|---|---|---|
| DB_CONNECTION_ARGS | 개체 | 데이터베이스의 선택적 연결 인수(예: 시간 초과 및 SSL/TLS)입니다. |
| .autorollback | 부울 |
스레드 로컬 연결을 사용할지 여부입니다. |
| .threadlocals | 부울 |
자동 롤백 연결을 사용할지 여부입니다. |
5.1.1.2.1. PostgreSQL SSL/TLS 연결 인수 링크 복사링크가 클립보드에 복사되었습니다!
SSL/TLS를 사용하면 배포 중인 데이터베이스에 따라 구성이 달라집니다. 다음 예제에서는 PostgreSQL SSL/TLS 구성을 보여줍니다.
DB_CONNECTION_ARGS:
sslmode: verify-ca
sslrootcert: /path/to/cacert
sslmode 옵션은 보안 SSL/TLS TCP/IP 연결이 서버와 협상될 우선순위를 결정합니다. 여섯 가지 모드가 있습니다.
| 모드 | 설명 |
|---|---|
| disable | 구성은 SSL/TLS 연결만 시도합니다. |
| allow | 구성은 먼저 비 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에 대한 유효한 인수에 대한 자세한 내용은 데이터베이스 연결 제어 함수 를 참조하십시오.
5.1.1.2.2. MySQL SSL/TLS 연결 인수 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 샘플 MySQL SSL/TLS 구성을 보여줍니다.
DB_CONNECTION_ARGS:
ssl:
ca: /path/to/cacert
MySQL의 유효한 연결 인수에 대한 정보는 URI-Like 문자열 또는 키-값 쌍을 사용하여 서버에 연결할 수 있습니다.
5.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
5.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에 의해 처리되지 않습니다.