3.4. 高级 Clair 配置
使用以下部分中的步骤配置高级 Clair 设置。
3.4.1. 非受管 Clair 配置 复制链接链接已复制到粘贴板!
Red Hat Quay 用户可以使用 Red Hat Quay OpenShift Container Platform Operator 运行非受管 Clair 配置。此功能允许用户创建非受管 Clair 数据库,或者在没有非受管数据库的情况下运行其自定义 Clair 配置。
非受管 Clair 数据库允许 Red Hat Quay Operator 在地理复制环境中工作,Operator 的多个实例必须与同一数据库通信。当用户需要在集群外存在的高可用性(HA) Clair 数据库时,也可以使用非受管 Clair 数据库。
3.4.1.1. 使用非受管 Clair 数据库运行自定义 Clair 配置 复制链接链接已复制到粘贴板!
使用以下步骤将 Clair 数据库设置为 unmanaged。
您不能为 Red Hat Quay 和 Clair 部署使用相同的外部管理的 PostgreSQL 数据库。您的 PostgreSQL 数据库还必须与其他工作负载共享,因为在连接密集型工作负载(如 Red Hat Quay 或 Clair)时,它可能会耗尽 PostgreSQL 端的自然连接限制。另外,Red Hat Quay 或 Clair 不支持 pgBouncer,因此这不是解决这个问题的选项。
流程
在 Quay Operator 中,将
QuayRegistry自定义资源的clairpostgres组件设置为managed: false:apiVersion: quay.redhat.com/v1 kind: QuayRegistry metadata: name: quay370 spec: configBundleSecret: config-bundle-secret components: - kind: objectstorage managed: false - kind: route managed: true - kind: tls managed: false - kind: clairpostgres managed: false
3.4.1.2. 使用非受管 Clair 数据库配置自定义 Clair 数据库 复制链接链接已复制到粘贴板!
Red Hat Quay on OpenShift Container Platform 允许用户提供自己的 Clair 数据库。
使用以下步骤创建自定义 Clair 数据库。
以下流程使用 SSL/TLS 认证设置 Clair。要查看不使用 SSL/TLS 认证设置 Clair 的类似流程,请参阅"使用受管 Clair 配置自定义 Clair 数据库"。
流程
输入以下命令来创建包含
clair-config.yaml的 Quay 配置捆绑包 secret:$ oc create secret generic --from-file config.yaml=./config.yaml --from-file extra_ca_cert_rds-ca-2019-root.pem=./rds-ca-2019-root.pem --from-file clair-config.yaml=./clair-config.yaml --from-file ssl.cert=./ssl.cert --from-file ssl.key=./ssl.key config-bundle-secretClair
config.yaml文件示例indexer: connstring: host=quay-server.example.com port=5432 dbname=quay user=quayrdsdb password=quayrdsdb sslrootcert=/run/certs/rds-ca-2019-root.pem sslmode=verify-ca layer_scan_concurrency: 6 migrations: true scanlock_retry: 11 log_level: debug matcher: connstring: host=quay-server.example.com port=5432 dbname=quay user=quayrdsdb password=quayrdsdb sslrootcert=/run/certs/rds-ca-2019-root.pem sslmode=verify-ca migrations: true metrics: name: prometheus notifier: connstring: host=quay-server.example.com port=5432 dbname=quay user=quayrdsdb password=quayrdsdb sslrootcert=/run/certs/rds-ca-2019-root.pem sslmode=verify-ca migrations: true注意-
数据库证书挂载到
clair-config.yaml中的 Clair 应用程序 pod 上的/run/certs/rds-ca-2019-root.pem下。在配置clair-config.yaml时,必须指定它。 -
clair-config.yaml示例可在 OpenShift config 上的 Clair 中找到。
-
数据库证书挂载到
将
clair-config.yaml文件添加到捆绑包 secret 中,例如:apiVersion: v1 kind: Secret metadata: name: config-bundle-secret namespace: quay-enterprise data: config.yaml: <base64 encoded Quay config> clair-config.yaml: <base64 encoded Clair config> extra_ca_cert_<name>: <base64 encoded ca cert> ssl.crt: <base64 encoded SSL certificate> ssl.key: <base64 encoded SSL private key>注意更新后,提供的
clair-config.yaml文件会被挂载到 Clair pod 中。任何未提供的字段都使用 Clair 配置模块自动填充默认值。您可以点击 Build History 页面中的提交或运行
oc get pods -n <namespace> 来检查 Clair pod 的状态。例如:$ oc get pods -n <namespace>输出示例
NAME READY STATUS RESTARTS AGE f192fe4a-c802-4275-bcce-d2031e635126-9l2b5-25lg2 1/1 Running 0 7s