Civo の DNS とドメインを、Mac のウィンドウで編集する。
ドメインを Civo のネームサーバーに向けたあと、ゾーンはブラウザのタブではなくネイティブアプリで持つ。
Civo は、ほかで登録したドメインの DNS をホストします。準備は短くて済みます。レジストラでネームサーバーを移し、Civo 側にドメインを作り、レコードを足す。つらくなるのはそのあとの運用です。肝心の瞬間はたいてい都合の悪い時間帯の証明書チャレンジで、ウェブダッシュボードを 3 クリック潜ったところで、TXT の値を打ち間違えずに貼ろうとしている。CivoCloudManager は同じゾーンを同じ Civo REST API v2 の上で、すでに開いているウィンドウの中に置きます。
ドメインを Civo に向ける、最初から最後まで
-
01
ドメインはよそで登録する
Civo はドメイン登録を売っていません。Civo 自身のドキュメントもその点を明記していて、DNS サービスはゾーンをホストするためだけのものです。ドメインは買ったレジストラに置いたままで、動くのはネームサーバーの委任だけです。
-
02
ネームサーバーを ns0.civo.com と ns1.civo.com にする
レジストラの管理画面で、いまのネームサーバーを
ns0.civo.comとns1.civo.comに置き換えます。Civo がドキュメントで示しているのはこの二つのホスト名です。切り替えがどれだけ早く効くかは、古い委任の TTL とレジストラ次第で、Civo は関係ありません。これから足すものが外から見えるまでには待ち時間があると思ってください。 -
03
ゾーンができるよう Civo にドメインを作る
ネームサーバーを委任しても、Civo 側に応答するゾーンがなければ何も起きません。CivoCloudManager では Domains ビューで、ツールバーのプラスボタンがドメインを作ります。アプリはそれを Civo REST API v2 の /dns エンドポイントに POST します。ドメインはアカウント全体のもので、リージョンには紐づきません。オンボーディングで選んだリージョンがゾーンを囲い込むことはありません。
-
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 はゾーンではなくインスタンスにある
逆引き DNS は Civo の実在する機能で、ドキュメントは薄く、そしてそもそも DNS ゾーンの一部ではありません。インスタンスのプロパティなので、設定するのはインスタンスの詳細ビューです。Reverse DNS の行に現在のホスト名か Not set が表示され、クリックすると行がテキストフィールドに変わります。保存するとインスタンスの reverse_dns フィールドが書かれ、変更はアプリのローカルなアクティビティログにタイムスタンプ付きで残ります。いちばん効くのはメールを送る用途です。受信側のサーバは、IP がもっともらしいホスト名に引き戻せるかを日常的に確認します。
これは external-dns の代わりではない
external-dns は Kubernetes のコントローラで、Civo プロバイダを内蔵し、CIVO_TOKEN で認証して Service や Ingress からレコードを自動で作ります。CivoCloudManager はそのどれもしません。クラスタ側のコンポーネントを持たず、何にも反応せず、Service が現れたからといってレコードを作ることは絶対にありません。レコードがワークロードに追従すべきなら、external-dns を動かし、そのまま動かし続けてください。同じドメインの上で両方を使っても、external-dns が管理する名前に手を出さない限り衝突はしません。人が持つレコード、つまり頂点、メール、検証用の文字列、委任はアプリで扱い、残りはコントローラに持たせてください。
レコードが伝わらないときは、まず API を疑いから外す
DNS のエンドポイントは、アプリが Account セクションからヘルスチェックする 16 個の Civo REST エンドポイントの一つです。それぞれを 10 秒のタイムアウトで順に呼び、HTTP のステータスコードと往復時間をミリ秒で返します。200 ms 未満は緑、500 ms 未満は黄、それ以上は赤です。ヘッダは実行結果を All Systems Operational か、利用できないエンドポイントの数としてまとめます。小さな機能ですが、特定の種類の無駄な 1 時間を節約します。書いたばかりのレコードが出てこないとき、キャッシュを流してリゾルバを疑い始める前に、Civo が書き込みを受け付けたのかどうかが見えます。
認証情報の置き場所
これらすべてを動かすのは一つの Civo API キーで、macOS Keychain に保管され、アプリがそれを表示する前に Touch ID を求めます。Mac と Civo の間に発行元のサーバはなく、テレメトリもありません。アプリはエンタイトルメント 4 つでサンドボックス化され、Apple シリコンでも Intel でも macOS 15 以降が必要です。ソースコードは github.com/marcelrgberger/civo-cloud-manager にあるので、説明を信じるよりリクエストのコードを自分で読みたいなら、そちらをどうぞ。
Civo のレコードを変える 3 つの方法
競合というより、役目が違います。正直に分ければ、一つは自動化のためのもので、二つは人のためのものです。
| できること | Civo ダッシュボード(ブラウザ) | external-dns | CivoCloudManager |
|---|---|---|---|
| レコードを手で 1 件編集する | 対応 | そのための道具ではない | 対応、値が入った状態のエディタで |
| Kubernetes の Service と Ingress からレコードを自動生成する | 非対応 | 対応、これがその目的 | 非対応、今後も予定なし |
| 動いている Kubernetes クラスタが要る | 不要 | 必要 | 不要 |
| インスタンスの逆引き DNS | 対応 | 非対応 | 対応、インスタンスの画面でその場で |
| API キーの置き場所 | ブラウザのセッション | クラスタ内の Kubernetes Secret | macOS Keychain、表示に Touch ID |
| Civo API エンドポイントの状態 | 非対応 | 非対応 | 16 エンドポイントの状態とレイテンシ |
Civo DNS についての質問
- ドメインを Civo に向けるにはどうしますか?
- レジストラでネームサーバーを
ns0.civo.comとns1.civo.comに変更し、そのうえで Civo 側にドメインを作って、応答するゾーンを用意します。Civo は DNS をホストしますがドメインの登録は扱わないので、ドメイン自体は買った場所に残ります。両方が要ります。ゾーンのない委任は何も返さず、委任のないゾーンは誰にも聞かれません。 - CivoCloudManager ではどの DNS レコードタイプを編集できますか?
- タイプのピッカーには A、AAAA、CNAME、MX、TXT、SRV、NS があります。優先度の欄が出るのは MX と SRV だけで、TTL は Civo がドキュメントで示す既定値の 600 で埋まっています。Civo の CLI ドキュメントが挙げているのは A、CNAME、TXT、SRV、MX なので、最初の AAAA や NS を書いたあとは応答を確認してください。
- ブラウザを使わずに Civo の DNS を編集できますか?
- できます。Civo CLI ならターミナルから、CivoCloudManager なら同じ Civo REST API v2 を使ってネイティブの macOS ウィンドウから編集できます。アプリではドメインがその場で展開してレコードを表示し、Edit は現在の値が入ったシートを開き、削除にはレコードラベルを打っての確認が要ります。
- CivoCloudManager は external-dns の代わりになりますか?
- なりません。external-dns は Civo プロバイダを内蔵した Kubernetes のコントローラで、Service と Ingress の変化に合わせてレコードを自動で作り、消します。CivoCloudManager はクラスタ側のコンポーネントを持たず、自分から何も作りません。同じドメインに対して両方を動かしてください。コントローラは自分が管理する名前を持ち、残りはあなたが持ちます。
- 逆引き DNS は何のためで、Civo ではどこで設定しますか?
- 逆引き DNS はインスタンスの IP をホスト名に引き戻すもので、メールの受信側はメッセージを受け取る前にこれを日常的に確認します。Civo では自分のゾーンの中のエントリではなくインスタンスのプロパティなので、CivoCloudManager ではインスタンスの詳細ビューで設定します。Reverse DNS の行をクリックし、ホスト名を打ち、保存します。
ガイド
手順を追って、そして率直な比較を。
- 01 Civo API キーをつなぐ Civo ダッシュボードでキーを発行し、一度貼り付ければ、あとは macOS Keychain が持っていてくれます。
- 02 自分の IP にファイアウォールを開く 手作業の手順、そのあとに残る動的 IP の罠、そして期限でルールを閉じる無料のメニューバー経路。
- 03 Lens・OpenLens・k9s との比較 クラスタ非依存の 3 つと、Civo 専用の 1 つ。その違いが、開いておきたいツールを決めます。
- 04 Civo Object Storage を S3 で リージョンごとのエンドポイント、s3cmd と rclone と AWS CLI の動く設定、そしてネイティブクライアントが違うことをする部分。
- 05 変更履歴 出荷したリリースを新しい順に。ストアのリリースノートには収まらない分量で。
詳細解説
Civo のプロダクトごとに、掘り下げた解説を。
CivoCloudManager が触れる Civo の各領域には、仕様、トレードオフ、アーキテクチャの詳細をまとめた専用ページがあります。いまの仕事に一番近いものから読んでください。
- 01 Mac で使う Civo CLI の代替 GUI が CLI に勝つ場面、勝たない場面、そして両者の併用。
- 02 Mac 用の Civo Kubernetes GUI ライブのクラスタダッシュボード、リアルタイム Pod ログ、kubectl 不要。
- 03 Mac 用の Civo Object Storage ブラウザ ネイティブな S3 互換ブラウザ。使っていないバケットは中央 vault に退避。
- 04 Mac のメニューバーから Civo ファイアウォール ファイアウォールごとにワンクリックで開閉、IP 自動検出、自動クローズタイマー。
- 05 Mac 用の Civo コストダッシュボード Civo charges API からの実課金。期間ピッカーと月末予測。
ゾーンを、手がすでにある場所に置く。
CivoCloudManager は Mac App Store での買い切りで、初回起動から 7 日間はフルアクセス、そのあともメニューバーのファイアウォールは無料のまま残ります。