
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该操作器用于在Kubernetes环境中管理外部PostgreSQL服务器,通过自定义资源(CR)实现数据库和角色的声明式创建,自动生成包含数据库连接信息的Kubernetes密钥,简化外部PostgreSQL服务与Kubernetes应用的集成。
适用于Kubernetes环境中需要管理外部PostgreSQL数据库的场景,支持通过自定义资源实现数据库和用户角色的声明式管理,适用于AWS RDS或Azure PostgreSQL等云托管PostgreSQL服务的集成。
要使操作器与AWS RDS正常工作,需将POSTGRES_CLOUD_PROVIDER设置为AWS,可通过ext-postgres-operator的Kubernetes密钥或直接在部署清单(operator.yaml)中配置。
要使操作器与Azure托管PostgreSQL数据库正常工作,需为操作器提供两个环境变量:
POSTGRES_CLOUD_PROVIDER设置为AzurePOSTGRES_DEFAULT_DATABASE设置为默认数据库,例如postgres操作器需要在其所在命名空间中创建Kubernetes Secret,该Secret需包含以下键:POSTGRES_HOST、POSTGRES_USER、POSTGRES_PASS、POSTGRES_URI_ARGS、POSTGRES_CLOUD_PROVIDER、POSTGRES_DEFAULT_DATABASE。
yamlapiVersion: v1 kind: Secret metadata: name: ext-postgres-operator namespace: operators type: Opaque data: POSTGRES_HOST: cG9zdGdyZXM= # base64编码的PostgreSQL主机地址 POSTGRES_USER: cG9zdGdyZXM= # base64编码的PostgreSQL管理员用户名 POSTGRES_PASS: YWRtaW4= # base64编码的PostgreSQL管理员密码 POSTGRES_URI_ARGS: IA== # base64编码的URI参数(可选) POSTGRES_CLOUD_PROVIDER: QVdT # base64编码的云服务提供商(AWS/Azure) POSTGRES_DEFAULT_DATABASE: cG9zdGdyZXM= # base64编码的默认数据库名
执行以下步骤安装操作器:
deploy/secret.yaml中配置PostgreSQL凭证bashkubectl apply -f deploy/crds/db.movetokube.com_postgres_crd.yaml kubectl apply -f deploy/crds/db.movetokube.com_postgresusers_crd.yaml
bashkubectl apply -f deploy/namespace.yaml
bashkubectl apply -f deploy/secret.yaml
bashkubectl apply -f deploy/role.yaml kubectl apply -f deploy/role_binding.yaml kubectl apply -f deploy/service_account.yaml
bashkubectl apply -f deploy/operator.yaml
用于定义数据库及相关配置的自定义资源。
yamlapiVersion: db.movetokube.com/v1alpha1 kind: Postgres metadata: name: my-db # CR名称 namespace: app # 命名空间 spec: database: test-db # 在PostgreSQL中创建的数据库名称 dropOnDelete: false # 可选,设为true时删除CR将删除数据库和角色 masterRole: test-db-group # 可选,数据库的主角色名称 schemas: # 可选,操作器在数据库中创建的模式列表 - stores - customers extensions: # 可选,在数据库中创建的扩展列表 - fuzzystrmatch - pgcrypto
功能说明:创建名为test-db的数据库及test-db-group主角色,同时创建具有读写权限的角色(test-db-writer、test-db-reader),并对指定模式下的所有表赋予相应权限。
用于定义数据库用户角色的自定义资源,需引用同一命名空间中的Postgres CR。
yamlapiVersion: db.movetokube.com/v1alpha1 kind: PostgresUser metadata: name: my-db-user # CR名称 namespace: app # 命名空间(需与引用的Postgres CR相同) spec: role: username # 角色名前缀 database: my-db # 引用的Postgres CR名称 secretName: my-secret # 存储凭证的密钥名称前缀 privileges: OWNER # 权限类型,可选OWNER/READ/WRITE
功能说明:创建用户角色(名称格式为username-<hash>),根据privileges赋予对应权限(OWNER对应test-db-group、WRITE对应test-db-writer、READ对应test-db-reader),凭证存储在名称为my-secret-my-db-user的密钥中。
注意:多个命名空间中可存在引用同一数据库的Postgres CR,最后一个引用该数据库的CR被删除时,将删除主角色并将数据库所有权转移给操作器使用的角色。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务