サーバーを追加
まだサーバーがない場合は、Zenavo から購入することもできます。
Servers → New Server を開き、次の項目を入力します。
- Name:プロジェクトのサーバーを選ぶときに表示されます。例:Tokyo 4C 8GB。
- Public IP or hostname と SSH port(通常は 22)。
- SSH user:
root、またはパスワードなしで sudo できるユーザー。クラウドイメージは root ログインを無効にしていることが多いので、Ubuntu ならubuntu、Debian ならdebian、Amazon Linux ならec2-userを使います。 - Authentication:パスワードか秘密鍵(鍵ファイルをアップロードするか貼り付け)。鍵は暗号化されていない OpenSSH または PEM 形式の秘密鍵で、
.pubファイルではありません。パスフレーズがある場合はssh-keygen -p -f <file>で外してください。
どちらもセットアップジョブだけが使います。セットアップが成功するとすぐに消去され、失敗した場合は再入力なしで再試行できるよう 1 日間暗号化して保持し、その後消去します。稼働中のサーバーへの SSH アクセスを Zenavo は保持しません。サーバーから外向きに接続する Zenavo エージェントを通じてのみアクセスします(ファイアウォールとセキュリティ)。
鍵ファイルの探し方
鍵は通常 ~/.ssh にあり、ファイル選択画面では隠されています。macOS のファイル選択画面で ⌘ ⇧ G を押してパスを入力するか、⌘ ⇧ . で隠しフォルダーを表示してください。
Connect and set up をクリックすると、Zenavo は次のことを行います。
- SSH で接続し、サーバーのホスト鍵のフィンガープリントを表示します。セットアップを再実行したときにフィンガープリントが変わっていれば、接続を拒否します。
- OS、CPU、メモリ、sudo の権限を確認します。
- 中国本土向けのソースを使うべきかをサーバー上で測定し、バージョンを固定した K3s、続いて cert-manager と Let's Encrypt の発行者をインストールします。
- ノード、Traefik、ストレージプロビジョナー、メトリクスの準備ができていることを確認します。
- Zenavo エージェントをインストールし、HTTPS でコントロールプレーンに接続するのを待ちます。
- SSH の認証情報を消去します。
進捗はサーバーの Status タブにリアルタイムで表示されます。セットアップが失敗したら、表示された原因を直して Retry setup をクリックしてください。完了したステップはスキップされます。失敗から 1 日以内なら入力した SSH の認証情報を再利用でき(Use the credentials from the last attempt)、それを過ぎたら再入力が必要です。
ホスト鍵を確認する
正しいマシンに接続したことを確かめるには、コンソールに表示されたフィンガープリントとサーバー上のものを比べます。
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pubほとんどのクラウドでは、SSH を使わずにインスタンスのシリアルコンソールから読むこともできます。
中国本土のサーバー
中国本土からは GitHub や Docker Hub が遅いかブロックされているため、セットアップでは中国国内のミラーからインストールできます。
セットアップは、サーバー自身から GitHub、Docker Hub、Rancher の中国向け K3s ミラーへの 3 つの小さなリクエストの時間を測って、ソースを選びます。中国ミラーに応答があり Docker Hub か GitHub に応答がない場合、または GitHub が 4 倍以上遅い場合に中国のソースを使います。中国ミラーに応答がなければ、常にグローバルのソースを使います。Zenavo は GeoIP サービスでサーバーの所在地を調べません。どのソースをなぜ選んだかは Status タブのログに表示されます。香港、マカオ、台湾のサーバーは通常 GitHub に直接届くため、グローバルのソースを使います。
中国のソースを使う場合:
- K3s は Rancher 公式の中国ミラー(
rancher-mirror.rancher.cn、INSTALL_K3S_MIRROR=cn)から取得します。K3s のドキュメントが中国のユーザー向けに説明している方法と同じです。Zenavo はリリースを固定し、インストールしたバイナリを K3s が GitHub で公開しているチェックサムと照合します。一致しなければバイナリを削除して停止します。 - 公開イメージ(K3s のシステムイメージ、cert-manager、Docker Hub・Quay・GHCR・registry.k8s.io・gcr.io のイメージ)は、
/etc/rancher/k3s/registries.yamlを通じて Zenavo の中国国内ミラーから pull します。各イメージはミラーの下で元の完全な名前を保ちます。たとえばdocker.io/library/nats:2.14は<mirror>/docker.io/library/nats:2.14になります。ミラーにないイメージは、サーバーが元のレジストリから pull します。 - Git リポジトリから Zenavo がビルドしたイメージは、デプロイ前に上海にある Zenavo のイメージストアにコピーされ、サーバーは中国本土の外に出ることなくそこからダウンロードします。デプロイのログにコピーが表示され(「copying the image to mainland China」)、コピーはイメージごとに 1 回だけ行われます。
/etc/rancher/k3s/registries.yaml がすでに存在し、Zenavo が書いたものでない場合、セットアップはそれに手を付けません。