7.2. 在非 OpenShift Red Hat Quay 部署上设置 Clair
对于不在 OpenShift 上运行的 Red Hat Quay 部署,可以手动配置 Clair 安全扫描。Red Hat Quay 部署已在运行 Clair V2,可使用以下说明将 Clair V4 添加到其部署中。
部署(最好具有容错) Postgres 数据库服务器。请注意,Clair
-ossp
扩展需要添加到其 Postgres 数据库中。如果 Clair 的config.yaml
中提供的用户有创建扩展所需的权限,那么它将由 Clair 本身自动添加。如果不是,必须在启动 Clair 前添加扩展。如果扩展不存在,则 Clair 尝试启动时会显示以下错误。ERROR: Please load the "uuid-ossp" extension. (SQLSTATE 42501)
在特定文件夹中创建 Clair 配置文件,例如
/etc/clairv4/config/config.yaml
。config.yaml
introspection_addr: :8089 http_listen_addr: :8080 log_level: debug indexer: connstring: host=clairv4-postgres port=5432 dbname=clair user=postgres password=postgres sslmode=disable scanlock_retry: 10 layer_scan_concurrency: 5 migrations: true matcher: connstring: host=clairv4-postgres port=5432 dbname=clair user=postgres password=postgres sslmode=disable max_conn_pool: 100 run: "" migrations: true indexer_addr: clair-indexer notifier: connstring: host=clairv4-postgres port=5432 dbname=clair user=postgres password=postgres sslmode=disable delivery_interval: 1m poll_interval: 5m migrations: true # tracing and metrics trace: name: "jaeger" probability: 1 jaeger: agent_endpoint: "localhost:6831" service_name: "clair" metrics: name: "prometheus"
如需有关 Clair 的配置格式的更多信息,请参阅上游 Clair 文档。
通过容器镜像运行 Clair,挂载在来自您所创建文件的配置中。
$ podman run -p 8080:8080 -p 8089:8089 -e CLAIR_CONF=/clair/config.yaml -e CLAIR_MODE=combo -v /etc/clair4/config:/clair -d registry.redhat.io/quay/clair-rhel8:v3.7.13
- 按照上一节中的剩余说明,用于配置 Red Hat Quay 以使用新的 Clair V4 端点。
也可以以这种方式运行多个 Clair 容器,但对于单个容器之外的部署场景,我们强烈建议使用 Kubernetes 或 OpenShift 等容器编排器。