Zinc是一个Route 53区域管理工具,旨在提供低成本的DNS策略记录管理方案。与AWS原生的Policy Records(每记录50***)相比,Zinc能显著降低成本,同时支持加权路由、延迟路由等高级流量分配策略,并通过健康检查确保IP可用性,是管理AWS Route 53 DNS记录的高效工具。
ip.mark_policy_records_dirty方法,确保协调循环能检测到变更node.presslabs.net作为目标FQDN,可通过ZINC_HEALTH_CHECK_FQDN环境变量自定义Zinc支持两种策略类型,IP可同时属于多个策略:
加权策略(Weighted)
延迟策略(Latency)
推荐通过Docker Compose部署:
bashcd contrib/ docker-compose up
通过环境变量配置Zinc,使用提供的docker-compose.yml时,可在./zinc.env中设置环境变量。
必需参数
| 参数 | 说明 |
|---|---|
ZINC_AWS_KEY | AWS访问密钥 |
ZINC_AWS_SECRET | AWS密钥 |
ZINC_SECRET_KEY | Django应用密钥 |
可选参数
| 参数 | 默认值 | 说明 |
|---|---|---|
ZINC_ALLOWED_HOSTS | - | Django允许的主机 |
ZINC_BROKER_URL | ${REDIS_URL}/0 | Celery消息代理URL |
ZINC_CELERY_RESULT_BACKEND | ${REDIS_URL}/1 | Celery结果后端 |
ZINC_DATA_DIR | PROJECT_ROOT | 项目根目录 |
ZINC_DB_ENGINE | django.db.backends.sqlite3 | Django数据库引擎 |
ZINC_DB_HOST | - | 数据库主机 |
ZINC_DB_NAME | zinc | 数据库名称 |
ZINC_DB_PASSWORD | password | 数据库密码 |
ZINC_DB_PORT | - | 数据库端口 |
ZINC_DB_USER | zinc | 数据库用户 |
ZINC_DEBUG | False | Django调试模式,设为"True"启用 |
ZINC_DEFAULT_TTL | 300 | 默认DNS TTL |
ZINC_ENV_NAME | - | Sentry报告环境 |
ZINC_GOOGLE_OAUTH2_KEY | - | Google OAuth2密钥(不设置则禁用social-django) |
ZINC_GOOGLE_OAUTH2_SECRET | - | Google OAuth2密钥 |
ZINC_SOCIAL_AUTH_ADMIN_EMAILS | - | 自动授予管理员权限的***列表 |
ZINC_SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS | - | Google OAuth2白名单域名 |
ZINC_HEALTH_CHECK_FQDN | node.presslabs.net. | 健康检查使用的主机名 |
ZINC_LOCK_SERVER_URL | ${REDIS_URL}/2 | redis-lock使用的Redis URL |
ZINC_LOG_LEVEL | INFO | 日志级别 |
ZINC_NS_CHECK_RESOLVERS | ['8.8.8.8'] | 检查区域传播的DNS解析器 |
ZINC_REDIS_URL | redis://localhost:6379 | Redis URL |
ZINC_SENTRY_DSN | - | Sentry错误报告DSN(设置则启用) |
ZINC_STATIC_URL | /static/ | 静态文件URL |
ZINC_ZONE_OWNERSHIP_COMMENT | zinc | 记录的所有权注释 |
安装django-rest-swagger后,可通过http://localhost:8000/swagger探索API。
策略(Policies)
GET /policiesGET /policies/{id}示例响应:
json{ "id": "344b7bee-da33-4234-b645-805cc26adab0", "name": "policy-one", "members": [ { "id": "6bcb4e77-04dc-45f7-bebb-a2fcfadd7669", "region": "us-east-1", "ip": "192.0.2.11", "weight": 10, "enabled": true }, { "id": "4f83d47f-af0c-4fa7-80c8-710cb32e4928", "region": "us-west-1", "ip": "192.0.2.11", "weight": 10, "enabled": true } ], "url": "https://zinc.stage.presslabs.net/policies/344b7bee-da33-4234-b645-805cc26adab0" }
区域(Zones)
GET /zones/POST /zones/,参数:root(必需,域名,可选尾随点)DELETE /zones/{zone_id}/GET /zones/{zone_id}记录(Records)
GET /zones/{zone_id}/recordsPOST /zones/{zone_id}/records,参数:
name(必需,不带区域根的域名)type(必需,记录类型,可为POLICY_ROUTED或其他有效类型)values(必需,值列表,A记录为IP,POLICY_ROUTED为策略ID等)ttl(可选,默认300)DELETE /zones/{zone_id}/records/{record_id}GET /zones/{zone_id}/records/{record_id}PATCH /zones/{zone_id}/records/{record_id},不可修改类型和名称,支持更新values和ttlpip install -r requirements.dev.txt && python setup.py developlocal_settings.py.example为local_settings.py并设置AWS凭证py.test .(跳过AWS相关测试:py.test -k 'not with_aws' .)您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务