3.2. 升级 Clair PostgreSQL 数据库
如果要将 Red Hat Quay 升级到 13,则必须将 Clair PostgreSQL 数据库版本从 PostgreSQL 版本 13
使用以下步骤将 Clair PostgreSQL 数据库从版本 13 升级到 15。
在迁移过程成功后,Clair 安全扫描可能会临时中断。
流程
输入以下命令停止 Red Hat Quay 容器:
$ sudo podman stop <quay_container_name>
运行以下命令来停止 Clair 容器:
$ sudo podman stop <clair_container_id>
从 SCLOrg 的数据迁移流程运行以下 Podman 进程,它允许从远程 PostgreSQL 服务器迁移数据: https://github.com/sclorg/postgresql-container/tree/master/13#data-migration
$ sudo podman run -d --name <clair_migration_postgresql_database> 1 -e POSTGRESQL_MIGRATION_REMOTE_HOST=<container_ip_address> \ 2 -e POSTGRESQL_MIGRATION_ADMIN_PASSWORD=remoteAdminP@ssword \ -v </host/data/directory:/var/lib/pgsql/data:Z> \ 3 [ OPTIONAL_CONFIGURATION_VARIABLES ] registry.redhat.io/rhel8/postgresql-15
$ mkdir -p /host/data/clair-postgresql15-directory
$ setfacl -m u:26:-wx /host/data/clair-postgresql15-directory
这可防止数据被新容器覆盖。
停止 Clair PostgreSQL 13 容器:
$ sudo podman stop <clair_postgresql13_container_name>
完成 PostgreSQL 迁移后,使用步骤 3 中的新数据卷挂载运行 Clair PostgreSQL 15 容器,例如 </
host/data/clair-postgresql15-directory:/var/lib/postgresql/data>
:$ sudo podman run -d --rm --name <postgresql15-clairv4> \ -e POSTGRESQL_USER=<clair_username> \ -e POSTGRESQL_PASSWORD=<clair_password> \ -e POSTGRESQL_DATABASE=<clair_database_name> \ -e POSTGRESQL_ADMIN_PASSWORD=<admin_password> \ -p 5433:5432 \ -v </host/data/clair-postgresql15-directory:/var/lib/postgresql/data:Z> \ registry.redhat.io/rhel8/postgresql-15
输入以下命令启动 Red Hat Quay 容器:
$ sudo podman run -d --rm -p 80:8080 -p 443:8443 --name=quay \ -v /home/<quay_user>/quay-poc/config:/conf/stack:Z \ -v /home/<quay_user>/quay-poc/storage:/datastorage:Z \ {productrepo}/{quayimage}:{productminv}
输入以下命令启动 Clair 容器:
$ sudo podman run -d --name clairv4 \ -p 8081:8081 -p 8088:8088 \ -e CLAIR_CONF=/clair/config.yaml \ -e CLAIR_MODE=combo \ registry.redhat.io/quay/clair-rhel8:{productminv}
如需更多信息,请参阅 数据迁移。