Civo DNS 和域名,在一个 Mac 窗口里改。
把域名指向 Civo 的 nameserver,之后把这个 zone 放在原生应用里管,而不是一个浏览器标签页。
Civo 为你在别处注册的域名托管 DNS。配置很短:在注册商那边改 nameserver,在 Civo 里创建域名,然后加记录。真正难受的是之后的维护,因为需要动手的那一刻通常是某个尴尬时间点的证书校验,而你正在一个网页控制台里点到第三层,试着把一个 TXT 值粘对。CivoCloudManager 管的是同一个 zone、同一套 Civo REST API v2,只不过那个窗口已经开着了。
把域名指向 Civo,从头到尾
-
01
域名在别处注册
Civo 不卖域名注册。它自己的文档写得很清楚:DNS 服务纯粹用来托管 zone。域名留在你买它的那家注册商,搬走的只有 nameserver 委派。
-
02
把 nameserver 设成 ns0.civo.com 和 ns1.civo.com
在注册商的控制面板里,把当前的 nameserver 换成
ns0.civo.com和ns1.civo.com。这两个主机名就是 Civo 文档里写的。改动多久生效,由旧委派的 TTL 和你的注册商决定,不由 Civo 决定,所以下面加的东西要过一阵子外界才看得到。 -
03
在 Civo 里创建域名,让 zone 存在
光把 nameserver 委派过去没有用,Civo 得有一个 zone 来应答。在 CivoCloudManager 里这是 Domains 视图:工具栏上的加号创建域名。应用把它 POST 到 Civo REST API v2 的 /dns 端点。域名是账户级的,不绑定某个区域,所以你在初始设置时选的区域不会把一个 zone 圈起来。
-
04
添加记录
在列表里展开一个域名,它的记录就出现在下面,每条显示类型、名称、值和 TTL。Add Record 打开一个编辑器,里面有类型选择器、名称输入框(www、mail,顶点用 @)、值输入框、初始为 600 的 TTL,以及只在你选 MX 或 SRV 时才出现的优先级字段。
-
05
对着 API 验证,别只对着你的解析器
在应用里重新加载域名,确认 Civo 存下来的就是你发过去的。如果之后查询还是失败,原因通常是委派或缓存,而不是记录写错了。应用的 API Health 视图一屏就告诉你 Civo 的 DNS 端点到底还应不应答,在你开始猜之前,先把 Civo 的问题和解析器的问题分开。
应用能写哪些记录类型
类型选择器提供 A、AAAA、CNAME、MX、TXT、SRV 和 NS。只有 MX 和 SRV 会问优先级,因为带优先级的就这两种。TTL 预填 600,这也是 Civo 自己文档里的默认值。Civo 的 CLI 文档只点名了 A、CNAME、TXT、SRV 和 MX,所以你写 AAAA 或 NS 记录时,读一下应用回显给你的响应,别默认它已经落下了。删除记录是故意做慢的:确认面板要求你把记录标签一字不差地敲一遍,删除按钮才会变成可用。
证书校验的时候,原生编辑器为什么更好用
一次 ACME DNS-01 校验会给你一长串随机字符和一个很短的窗口。在应用里,域名就地展开,已有记录在你操作时一直看得见,对某条记录选 Edit 会打开一个已经填好当前类型、名称、值和 TTL 的面板,所以改一个 TXT 值就是选中、粘贴、保存。没有页面跳走,没有重新加载,你正在比对的那条记录还在屏幕上。每次保存都把页面重置一遍的网页表单,恰好消耗掉你那一刻最缺的东西:注意力。
反向 DNS 在实例上,不在 zone 里
反向 DNS 是 Civo 一个文档很薄、但确实存在的功能,而且它根本不属于 DNS zone。它是实例的一个属性,所以在实例详情页里设置:Reverse DNS 那一行要么显示当前主机名,要么显示 Not set,点一下这一行就变成输入框。保存会写入实例上的 reverse_dns 字段,改动会带时间戳记进应用本地的活动日志。这对任何要发邮件的东西最要紧,因为收信服务器通常会检查一个 IP 能不能反查回一个说得通的主机名。
它不是什么:它不替代 external-dns
external-dns 是一个 Kubernetes 控制器,内置 Civo provider,用 CIVO_TOKEN 认证,根据 Service 和 Ingress 自动创建记录。CivoCloudManager 这些事一件都不做。它没有集群侧组件,不对任何东西做出反应,也永远不会因为出现了一个 Service 就去建一条记录。如果你的记录应该跟着工作负载走,那就跑 external-dns,而且继续跑。只要你别去碰 external-dns 管理的那些名称,两者在同一个域名上共存不会冲突:人管的记录用应用,比如顶点、邮件、验证字符串和委派,其余的交给控制器。
记录不生效时,先排除 API
DNS 端点是应用在 Account 版块里健康检查的十六个 Civo REST 端点之一。每个端点依次调用,十秒超时,你会看到 HTTP 状态码加上以毫秒计的往返时间,低于 200 ms 绿色,低于 500 ms 橙色,更高红色。标题栏把这一轮总结成 All Systems Operational,或者一个不可用端点的计数。这是件小事,但能省下一类很具体的浪费:刚写的记录没出现时,你可以先看看 Civo 到底有没有接受这次写入,再去刷缓存、怪解析器。
凭据放在哪里
这一切由一把 Civo API key 驱动,它存在 macOS Keychain 里,应用在显示它之前要先过 Touch ID。Mac 和 Civo 之间没有发行方的服务器,也没有遥测。应用是沙盒化的,只申请四项权限,需要 macOS 15 或更新版本,Apple silicon 或 Intel 都可以;源代码在 github.com/marcelrgberger/civo-cloud-manager,比起看一段描述,你可以直接读请求代码。
改一条 Civo 记录的三种方式
与其说是竞争关系,不如说是不同的活。老实的划分是:其中一个为自动化而生,另外两个为人而生。
| 能力 | Civo 控制台(浏览器) | external-dns | CivoCloudManager |
|---|---|---|---|
| 手动改一条记录 | 支持 | 不是它的用途 | 支持,编辑器已预填 |
| 根据 Kubernetes Service 和 Ingress 自动创建记录 | 不支持 | 支持,这就是它的意义 | 不支持,以后也不会 |
| 需要一个运行中的 Kubernetes 集群 | 不需要 | 需要 | 不需要 |
| 实例上的反向 DNS | 支持 | 不支持 | 支持,在实例上就地编辑 |
| API key 存在哪里 | 浏览器会话 | 集群里的 Kubernetes Secret | macOS Keychain,查看要过 Touch ID |
| Civo API 端点的健康状况 | 不支持 | 不支持 | 十六个端点,带状态和延迟 |
Civo DNS 问题,逐个回答
- 怎么把域名指向 Civo?
- 在注册商那里把 nameserver 改成
ns0.civo.com和ns1.civo.com,然后在 Civo 里创建这个域名,让它有一个 zone 来应答。Civo 托管 DNS,但不做域名注册,域名本身还留在你买它的地方。两半都不能少:有委派没有 zone,查询什么也拿不到;有 zone 没有委派,则根本没人来问它。 - CivoCloudManager 里能编辑哪些 DNS 记录类型?
- 类型选择器提供 A、AAAA、CNAME、MX、TXT、SRV 和 NS。优先级字段只在 MX 和 SRV 出现,TTL 预填 600,也就是 Civo 文档里的默认值。Civo 自己的 CLI 文档列出的是 A、CNAME、TXT、SRV 和 MX,所以写下第一条 AAAA 或 NS 记录之后,检查一下响应。
- 不用浏览器也能改 Civo DNS 吗?
- 可以。Civo CLI 在终端里做这件事,CivoCloudManager 在原生 macOS 窗口里做,用的是同一套 Civo REST API v2。在应用里,域名就地展开显示记录,Edit 打开一个预填当前值的面板,删除则需要敲一遍记录标签来确认。
- CivoCloudManager 会取代 external-dns 吗?
- 不会。external-dns 是一个 Kubernetes 控制器,内置 Civo provider,随着 Service 和 Ingress 的变化自动创建和删除记录。CivoCloudManager 没有集群侧组件,自己不会创建任何东西。在同一个域名上两个一起跑就行:控制器管它负责的那些名称,剩下的归你。
- 反向 DNS 是干什么的,在 Civo 上哪里设置?
- 反向 DNS 把实例 IP 映射回一个主机名,邮件接收方在收信之前经常会检查它。在 Civo 上它是实例的属性,不是 zone 里的一条记录,所以在 CivoCloudManager 里到实例详情页设置:点 Reverse DNS 那一行,输入主机名,保存。
指南
一步一步,以及诚实的对比。
- 01 连接 Civo API Key 在 Civo 控制台生成密钥,粘贴一次,之后交给 macOS Keychain 保管。
- 02 为你的 IP 开防火墙 手动流程、它留下的动态 IP 隐患,以及一条免费的菜单栏路径:到点自动关掉规则。
- 03 对比 Lens、OpenLens 和 k9s 三个与集群无关的工具,一个只认 Civo 的。差别决定了你想开着哪一个。
- 04 通过 S3 使用 Civo Object Storage 区域 endpoint,s3cmd、rclone 和 AWS CLI 的可用配置,以及原生客户端有什么不一样。
- 05 更新日志 每一个已发布的版本,最新的在前,附带商店更新说明装不下的细节。
深入了解
按 Civo 产品拆开细说。
CivoCloudManager 覆盖的每个 Civo 领域都有单独一页,讲清细节、取舍和架构。挑一个离你日常最近的。
把 zone 放在你手已经在的地方。
CivoCloudManager 在 Mac App Store 一次性买断,从首次启动起有七天完整功能,之后菜单栏防火墙档位依然免费。