5.2. 将非受管组件用于依赖项
如果您有现有的组件,如 Postgres、Redis 或对象存储,则您要首先在 Quay 配置捆绑包(config.yaml
)中配置它们,然后在 QuayRegistry
中引用捆绑包(作为 Kubernetes Secret
),同时表示哪些组件是非受管状态。
Quay 配置编辑器也可用于创建或修改现有配置捆绑包,并简化更新 Kubernetes Secret
的过程,特别是用于多项更改。当通过配置编辑器更改 Quay 配置并发送到 Operator 时,将更新 Quay 部署来反映新配置。
5.2.1. 使用现有的 Postgres 数据库
使用所需的数据库字段创建配置文件
config.yaml
:config.yaml:
DB_URI: postgresql://test-quay-database:postgres@test-quay-database:5432/test-quay-database
使用配置文件创建 Secret:
$ kubectl create secret generic --from-file config.yaml=./config.yaml config-bundle-secret
创建 QuayRegistry YAML 文件
quayregistry.yaml
,将postgres
组件标记为非受管状态,并引用所创建的 Secret: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
- 按照以下部分所述部署 registry。
5.2.2. NooBaa 非受管存储
-
在 Storage
Object Bucket Claims 的控制台中创建一个 NooBaa Object Bucket Claim。 - 检索 Object Bucket Claim Data 的详情,包括 Access Key、Bucket Name、Endpoint(hostname)和 Secret Key。
使用 Object Bucket Claim 信息创建
config.yaml
配置文件:DISTRIBUTED_STORAGE_CONFIG: default: - RHOCSStorage - access_key: WmrXtSGk8B3nABCDEFGH bucket_name: my-noobaa-bucket-claim-8b844191-dc6c-444e-9ea4-87ece0abcdef hostname: s3.openshift-storage.svc.cluster.local is_secure: true port: "443" secret_key: X9P5SDGJtmSuHFCMSLMbdNCMfUABCDEFGH+C5QD storage_path: /datastorage/registry DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: [] DISTRIBUTED_STORAGE_PREFERENCE: - default
5.2.3. 禁用 Horizontal Pod Autoscaler
HorizontalPodAutoscalers
已添加到 Clair、Quay 和 Mirror pod 中,以便在负载高峰期间自动扩展。
由于 HPA 默认被配置为 managed
,Quay 的 pod 数量,Clair 和存储库镜像数被设为 2。这有助于在通过 Operator 更新/配置 Quay 或重新调度事件期间出现停机的问题。
如果要禁用自动扩展或创建自己的 HorizontalPodAutoscaler
,只需在 QuayRegistry
实例中将组件指定为 unmanaged:
apiVersion: quay.redhat.com/v1 kind: QuayRegistry metadata: name: example-registry namespace: quay-enterprise spec: components: - kind: horizontalpodautoscaler managed: false