独立服务器维护服务器

维护独立服务器

本文将介绍如何维护您注册到 Zeabur 的 独立服务器

💡

如果您是从 Zeabur 购买独立服务器的,维运的任务是由我们代为执行的。 请开工单告诉我们您想要维护的项目,让工作人员代为操作。

空间清理

如果您发现主机的磁盘空间不足,可以试试清理 K3s 在您主机上拉回的 Docker image(通常会自动执行)。

# 检查目前拉回了哪些 images(这行不用打)
$ sudo k3s crictl images
 
# 移除所有未在使用的 images
$ sudo k3s crictl rmi --prune

有时候 K3s 针对每个容器记录的 Logs 也会占用不少空间,您可以试着到 K3s 的 logs 目录 清理这些 Logs。

更改 DNS Nameservers

默认 Zeabur 独立服务器会使用 Cloudflare DNS 作为集群的 DNS Nameservers(中国大陆区域的机器,则是使用 阿里云公共 DNS)。

如果需要更改集群使用的 DNS Nameservers(比如改成腾讯云的 DNSPod Public DNS),可以编辑 /etc/resolv.kubelet.conf,并将其中的 nameserver 改成您想要的 DNS Nameservers。

nameserver 119.29.29.29

更改完后记得重启 K3s 服务。

$ sudo systemctl restart k3s

停用 Zeabur 服务

如果您拥有独立服务器,可以关闭所有 Zeabur 服务,将 VPS 用于其他用途,例如运行 Docker Compose 服务。

⚠️

关闭 Zeabur 服务后,您将无法从 Zeabur 控制台创建项目和服务,且目前在 Zeabur 上运行的服务也会随之停止。但您仍可管理服务器设置,例如防火墙规则和重启。请注意,若从 Zeabur 重新安装服务器,Zeabur 服务将会重新安装并启用。

停用 Zeabur 服务

您也可以直接在 Zeabur 控制台点击左侧的 SSH 选项,通过浏览器连接到服务器,无需本地终端:

通过 Zeabur 控制台进行 SSH 连接

或通过 SSH 连接到您的服务器后执行:

sudo systemctl disable --now k3s containerd

注意:关闭这些服务会导致所有在该服务器上运行的容器与服务停止,请谨慎操作。

重新启用 Zeabur 服务

若您想让 Zeabur 重新上线,通过 SSH 连接后执行:

sudo systemctl enable --now k3s containerd

使用 VS Code 远程开发

你可以使用 VS Code Remote - SSH 连接到你的独立服务器,在熟悉的 IDE 环境中直接编辑文件或操作容器。

步骤一:安装 Remote-SSH 插件

打开 VS Code,在扩展商店中安装 Remote - SSH 插件。

步骤二:设置 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"

步骤三:通过 VS Code 连接

打开 VS Code 命令面板(Ctrl+Shift+P / Cmd+Shift+P),选择 Remote-SSH: Connect to Host,输入 <用户名>@<服务器 IP> 即可连接。

步骤四:找到服务的文件存放路径

连接后会位于服务器的根目录。若要找到服务文件的实际存放位置,需要先找到服务对应的 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 中使用 文件 → 打开文件夹 打开这个路径,就可以开始编辑你的服务文件了。

步骤五:进入容器的 Shell 环境

若要获取服务容器内的终端环境(相当于 Zeabur 上的 Web Terminal):

# 列出特定 Namespace 的 Pod
$ kubectl get pods -n <Namespace>
 
# 进入 Pod 的 Shell
$ kubectl exec -it <Pod> -n <Namespace> -- /bin/sh

卸载

首先您得先从 Zeabur 移除服务器及在其上面部署的服务。

移除服务器

「移除服务器」的步骤 不会移除 Zeabur 在您服务器上设置的基础设施。Zeabur 的基础设施主要是架设在 K3s 之上,所以卸载的步骤 遵照 K3s 的卸载步骤即可

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