専用サーバー専用サーバーを維護する

専用サーバーのメンテナンス

この記事では、Zeaburに登録した専用サーバーのメンテナンス方法について説明します。

💡

Zeaburから専用サーバーを購入された場合、メンテナンス作業は当社が代行いたします。 メンテナンスが必要な項目についてはチケットを作成し、スタッフにご依頼ください。

ディスク容量の確保

ホストのディスク容量が不足している場合、K3sがホスト上にプルしたDockerイメージをクリーンアップすることができます(通常は自動的に実行されます)。

# 現在プルされているイメージを確認(実行不要)
$ sudo k3s crictl images
 
# 使用されていないイメージをすべて削除
$ sudo k3s crictl rmi --prune

K3sが各コンテナに対して記録しているログも、かなりの容量を占めることがあります。K3sのlogsディレクトリでこれらのログを清掃することができます。

DNSネームサーバーの変更

デフォルトでは、Zeabur専用サーバーはクラスターのDNSネームサーバーとしてCloudflare DNSを使用します(中国本土地域のマシンはAlibaba Cloud Public DNSを使用)。

クラスターが使用するDNSネームサーバーを変更する必要がある場合(例えば、TencentのDNSPod Public DNSに変更する場合)、/etc/resolv.kubelet.confを編集し、nameserverを希望するDNSネームサーバーに変更してください。

nameserver 119.29.29.29

変更後、K3sサービスを再起動することを忘れないでください。

$ sudo systemctl restart k3s

K3s と Containerd の起動と停止

K3s または containerd サービスを手動で起動または停止する必要がある場合は、以下の手順に従ってください:

  1. SSH で専用サーバーに接続します:
ssh <ユーザー>@<サーバー IP>

K3s

  • K3s サービスを停止:
sudo systemctl disable --now k3s
  • K3s サービスを起動:
sudo systemctl enable --now k3s

Containerd

  • containerd サービスを停止:
sudo systemctl disable --now containerd
  • containerd サービスを起動:
sudo systemctl enable --now containerd

注意:これらのサービスを停止すると、サーバー上で稼働しているすべてのコンテナとサービスが停止しますのでご注意ください。

VS Code でリモート開発

VS Code Remote - SSH を使用して専用サーバーに接続し、慣れ親しんだ IDE 環境で直接ファイルの編集やコンテナの操作が行えます。

ステップ 1:Remote-SSH 拡張機能をインストール

VS Code を開き、拡張機能マーケットプレイスから Remote - SSH 拡張機能をインストールします。

ステップ 2:SSH キー認証を設定

ローカルマシンで SSH キーペアを生成し(まだない場合)、公開キーをサーバーに追加します:

# ローカルマシンで SSH キーペアを生成
$ ssh-keygen -t ed25519
 
# 公開キーをサーバーにコピー
$ ssh-copy-id <ユーザー>@<サーバー IP>

ssh-copy-id が使用できない場合は、手動で公開キーを追加できます:

$ cat ~/.ssh/id_ed25519.pub | ssh <ユーザー>@<サーバー IP> "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

ステップ 3:VS Code で接続

VS Code のコマンドパレット(Ctrl+Shift+P / Cmd+Shift+P)を開き、Remote-SSH: Connect to Host を選択して、<ユーザー名>@<サーバー IP> を入力して接続します。

ステップ 4:サービスのファイル保存パスを特定

接続後、サーバーのルートディレクトリにいます。サービスファイルの実際の保存場所を見つけるには、まずサービスに対応する PVC(Persistent Volume Claim)を特定し、次にその PVC がバインドされている PV(Persistent Volume)とそのホストパスを取得します。

PVC 名は <volume-id>-service-<service-id> の形式で、Namespace は environment-<environment-id> です。

# すべての PVC を一覧表示して、サービスの Volume を特定
$ kubectl get pvc -A
 
# PVC がバインドされている PV 名を取得
$ kubectl get pvc <PVC> -n <Namespace> -o jsonpath='{.spec.volumeName}'
 
# 対応する PV のホストパスを取得
$ kubectl get pv <PV> -o jsonpath='{.spec.local.path}'

VS Code で ファイル → フォルダーを開く からこのパスを開くと、サービスファイルの編集を開始できます。

ステップ 5:コンテナのシェルにアクセス

サービスコンテナ内のターミナル環境を取得するには(Zeabur の Web Terminal に相当):

# 特定の Namespace の Pod を一覧表示
$ kubectl get pods -n <Namespace>
 
# Pod のシェルに入る
$ kubectl exec -it <Pod> -n <Namespace> -- /bin/sh

アンインストール

まず、Zeaburからサーバーとその上にデプロイされているサービスを削除する必要があります。

サーバーの削除

「サーバーの削除」の手順は、Zeaburがサーバー上に設定したインフラストラクチャを削除するものではありません。Zeaburのインフラストラクチャは主にK3s上に構築されているため、アンインストールの手順はK3sのアンインストール手順に従って行ってください。

$ /usr/local/bin/k3s-uninstall.sh