
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
OVH Webhook for Cert Manager是Cert Manager的扩展组件,专为集成OVH DNS服务设计,通过ACME DNS-01挑战验证机制实现SSL/TLS证书的自动化签发与管理。该镜像作为Cert Manager的Webhook接口,桥接ACME证书颁发机构(如Let's Encrypt)与OVH DNS服务,实现域名所有权验证及证书生命周期的全自动化管理。
_acme-challenge验证记录,完成域名所有权验证*.example.com)Application Key、Application Secret、Consumer Key),需具备以下权限:
GET /domain/zone/*(读取DNS区域)POST /domain/zone/*(创建DNS记录)DELETE /domain/zone/*(删除DNS记录)Application Key和Application SecretConsumer Key,设置权限范围为上述DNS操作权限,记录生成的凭证4.3.1 Helm部署(推荐)
bash# 添加Helm仓库 helm repo add ovh-webhook https://ovh.github.io/cert-manager-webhook-ovh helm repo update # 部署Webhook helm install ovh-webhook ovh-webhook/cert-manager-webhook-ovh \ --namespace cert-manager \ --create-namespace \ --set groupName=acme.yourdomain.com # 自定义API组名称,需与后续Issuer配置一致
4.3.2 手动部署(Docker镜像直接使用)
bash# 拉取镜像 docker pull ovhcom/cert-manager-webhook-ovh:latest # 运行容器(仅用于测试,生产环境建议通过K8s Deployment部署) docker run -d \ --name ovh-webhook \ -p 443:443 \ -e GROUP_NAME=acme.yourdomain.com \ -e METRICS_ADDR=:8080 \ -e HEALTH_ADDR=:8081 \ ovhcom/cert-manager-webhook-ovh:latest
创建存储OVH API凭证的Kubernetes Secret:
yamlapiVersion: v1 kind: Secret metadata: name: ovh-credentials namespace: cert-manager # 需与Cert Manager同命名空间 type: Opaque data: application-key: <base64编码的Application Key> # 示例:echo -n "your-key" | base64 application-secret: <base64编码的Application Secret> consumer-key: <base64编码的Consumer Key> endpoint: <base64编码的OVH API端点> # 可选值:ovh-eu/ovh-ca/ovh-us
创建ACME证书颁发者配置,指定OVH Webhook作为DNS验证器:
yamlapiVersion: cert-manager.io/v1 kind: ClusterIssuer # 集群级颁发者,适用于多命名空间 metadata: name: ovh-acme-issuer spec: acme: server: https://acme-v02.api.letsencrypt.org/directory # 生产环境 # server: https://acme-staging-v02.api.letsencrypt.org/directory # 测试环境(无速率限制) email: admin@example.com # 证书过期通知邮箱 privateKeySecretRef: name: ovh-acme-issuer-private-key # 存储ACME账户私钥的Secret名称 solvers: - dns01: webhook: groupName: acme.yourdomain.com # 需与Webhook部署时的GROUP_NAME一致 solverName: ovh # 固定值,对应Webhook solver名称 config: ovhSecretRef: name: ovh-credentials # 引用4.4节创建的Secret key: application-key secretKey: application-secret consumerKey: consumer-key endpoint: endpoint zoneName: example.com # OVH域名根 zone(如管理子域名,填写父域名)
创建Certificate资源申请证书:
yamlapiVersion: cert-manager.io/v1 kind: Certificate metadata: name: example-com-cert namespace: default # 目标应用所在命名空间 spec: secretName: example-com-tls # 存储证书的Secret名称(应用需挂载此Secret) issuerRef: name: ovh-acme-issuer # 引用4.5节创建的Issuer/ClusterIssuer kind: ClusterIssuer dnsNames: # 需签发证书的域名列表 - example.com - www.example.com - "*.example.com" # 通配符域名(需配合DNS-01验证) duration: 2160h # 证书有效期(默认90天) renewBefore: 360h # 提前续期时间(默认30天)
检查证书状态
bashkubectl get certificate example-com-cert -n default
输出示例(就绪状态):
NAME READY SECRET ISSUER STATUS AGE example-com-cert True example-com-tls ovh-acme-issuer Certificate is up to date and has not expired 10m
检查Secret内容
bashkubectl describe secret example-com-tls -n default
确认包含tls.crt(证书)和tls.key(私钥)字段。
| 参数 | 描述 | 必选 | 来源 |
|---|---|---|---|
| application-key | OVH应用标识密钥 | 是 | OVH开发者控制台创建应用时生成 |
| application-secret | OVH应用密钥对应的密钥值 | 是 | OVH开发者控制台创建应用时生成 |
| consumer-key | 用户授权密钥,关联具体OVH账户权限 | 是 | 通过OVH API授权流程生成(需DNS操作权限) |
| endpoint | OVH API服务端点 | 否 | 可选值:ovh-eu(默认)/ovh-ca/ovh-us |
| 参数 | 描述 | 默认值 | 环境变量配置示例 |
|---|---|---|---|
| groupName | Webhook API组名称 | 无 | GROUP_NAME=acme.yourdomain.com |
| logLevel | 日志级别(debug/info/warn/error) | info | LOG_LEVEL=debug |
| metricsAddr | 指标暴露地址 | :8080 | METRICS_ADDR=:9090 |
| healthAddr | 健康检查地址 | :8081 | HEALTH_ADDR=:9091 |
| tlsCertFile | TLS证书文件路径 | /tls/tls.crt | TLS_CERT_FILE=/custom/cert.crt |
| tlsKeyFile | TLS私钥文件路径 | /tls/tls.key | TLS_KEY_FILE=/custom/key.key |
kubectl logs -n cert-manager deploy/cert-manager -fkubectl logs -n cert-manager deploy/ovh-webhook -fkubectl get pods -n cert-manager403 Forbidden:检查Consumer Key权限是否包含GET /domain/zone/*和POST /domain/zone/*404 Not Found:确认zoneName配置与OVH域名一致(需填写根域名,如example.com而非sub.example.com)503 Service Unavailable:OVH API服务暂时不可用,可稍后重试或切换API端点renewBefore配置是否早于证书有效期的1/3您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务