卸载
本页介绍如何卸载 node、ctrl 与两个网关,以及卸载之后宿主机和外部存储里还留着哪些数据。重装或升级包见重装与升级。
注意
- 服务仍在运行、systemd 状态未知、配置缺失但有残留状态,或维护检查失败时,包脚本会拒绝替换或删除。修复后重试同一操作即可。
- remove 与 purge 只删除包文件和服务的启用链接,留下的数据都会保留。需要销毁这些数据时,由部署方另行执行。
各组件的顺序
要拆掉整套部署时,按下面的顺序卸载:
node
- 对 node 执行 drain,让 ctrl 不再往它调度新的 Workspace。drain 不清理任何数据。
- 删除或导出这台 node 上的所有 Workspace、独立 Volume 与保留的可写层。
kibo workspace list --node node-a --all -q列出它上面的 Workspace。 - 等状态到
DRAINED后,用kibo node retire让 node 退役。之后 ctrl 不再把它算作任何存储池的成员,这个 node ID 也不能再注册。要在 node 服务还在运行时退役:停止后的 node 不再是DRAINED,那时retire只接受先执行过kibo node isolate的 node。 - 停止服务、执行维护检查,再 purge 包。
执行 drain 并列出它上面剩下的东西:
kibo node drain node-a
kibo workspace list --node node-a --all -q清理完成后,等待 DRAINED,让 node 退役,再删除包:
kibo node drain node-a --wait --timeout 10m
kibo node retire node-a
sudo systemctl stop kibotos-node.service
sudo kibotos-node check-maintenance --config /etc/kibotos/node/config.toml --operation remove
sudo apt-get purge kibotos-node包脚本会执行同样的 --operation remove 检查、移除服务的启用状态,并结束数据面进程与出口进程。retire 的细节以及只有这台 node 接入的池怎样处理,见 node。
ctrl
在全部 node 与网关之后卸载 ctrl。先停止服务,再 purge 包;包脚本会移除服务的启用状态:
sudo systemctl stop kibotos-ctrl.service
sudo apt-get purge kibotos-ctrl卸载后重新安装 node
卸载后 /etc/kibotos/node 与 /var/lib/kibotos/node 仍在,但 kibotos-node 程序已经删除,安装脚本没有程序可以读取这些记录。重新安装时:
- 仍有
kibotos-vmm-*单元时,安装被拒绝,并列出这些单元。确认不再需要后停止它们(仍列出的再执行systemctl reset-failed),然后重试安装。 - 没有 VMM 单元时,安装继续,沿用原来的配置、身份与记录,并提示先检查再启动。
安装完成后、启动服务之前,用新装的程序检查保留的状态:
sudo kibotos-node check-maintenance --config /etc/kibotos/node/config.toml --operation upgrade
sudo systemctl enable --now kibotos-node.service只有没有退役的 node 才能沿用原来的身份:退役的 node 永远不能再注册。不打算沿用原来的身份时,先删除这两个目录再安装,按安装 node重新注册;退役之后要换用新的 node ID。
卸载网关
先停止服务,再删除包;包脚本会移除服务的启用状态:
sudo systemctl stop kibotos-e2b.service kibotos-gw.service
sudo apt-get remove kibotos-e2b kibotos-gw留下的数据
remove 与 purge 都不删除下面这些,不再需要时由部署方自己删除:
| 组件 | 留下的内容 |
|---|---|
| ctrl | /etc/kibotos/ctrl/(配置及其引用的文件)、/var/lib/kibotos/ctrl/(装着本部署身份的 pki/、credential-keys/)、PostgreSQL 数据库,以及 bucket 里 kibotos-template/v1/<namespace>/ 与 kibotos-transfer/v1/<namespace>/ 下的对象 |
| node | /etc/kibotos/node/、/var/lib/kibotos/node/(pki/ 里的 node 身份、各类记录、runtime 安装与 Template 缓存)、storage.root 之外的池目录,以及创建过的 AppArmor local fragment /etc/apparmor.d/local/kibotos-node-roots |
| E2B 网关 | /etc/kibotos/e2b/ 与 /var/lib/kibotos/e2b/,包括它的 Operator 身份 |
| Exposure 网关 | /etc/kibotos/gw/ 与 /var/lib/kibotos/gw/,包括它的 Operator 身份 |
| 所有包 | 包创建的系统账户 |
- NFS 上的共享池里可能还有别的 node 的对象,等声明它的每台 node 都已拆掉之后再删除它的目录。
- 以后可能在同一个数据库上重装 ctrl 时,保留
pki/与credential-keys/。没有pki/,全部 node 与 Operator 都要重新注册;没有credential-keys/,数据库里存的调用方凭证无法解密。