- 每个可以运行 Ayakaleaf Pro pod 的节点都已安装并运行 Docker Engine;
- 你配置的每个 TeX Live 镜像都已在这些节点上拉取到 Docker 中。
containerd.io,二者使用同一个守护进程的不同命名空间。
以下步骤适用于 Ubuntu 24.04 以及使用 kubeadm 构建的集群。如果你的集群已经存在,请在将运行 Ayakaleaf Pro 的节点上执行第 1、2 和 5 步。
1
内核模块和 sysctl
2
Docker Engine
按照 0. 安装 Docker 中的说明,从 Docker 的软件仓库安装 Docker Engine。不需要 Compose 插件。这也会安装
containerd.io。3
供 kubelet 使用的 containerd
来自 Docker 软件仓库的
containerd.io 软件包关闭了 CRI 插件。请写入完整的默认配置(其中启用了该插件),并将其切换为 systemd cgroups:4
kubeadm、kubelet 和 kubectl
按照 Installing kubeadm 进行安装,然后使用 集群还需要一个默认 StorageClass。对于测试集群,可以使用 local-path-provisioner;在生产环境中,请使用你所在平台的块存储(Longhorn、Ceph、云 CSI 驱动)。
kubeadm init 和 kubeadm join 创建集群并安装网络插件。例如,使用 flannel:kubeadm-config.yaml
5
TeX Live 镜像
在每个可以运行 Ayakaleaf Pro 的节点上,使用 Docker 拉取你将在
ALL_TEX_LIVE_DOCKER_IMAGES 中列出的 TeX Live 镜像,例如:crictl pull 或 ctr 在这里不起作用:Ayakaleaf Pro 向 Docker 请求镜像。完整镜像很大(每个约 28 GB);镜像列表请参见沙盒编译。首次测试时,使用 ghcr.io/ayaka-notes/texlive-basic:2026.1(约 630 MB,最小化的 TeX Live)就足够了。Q&A
我可以在没有 Docker 的节点上运行 Ayakaleaf Pro 吗?
我可以在没有 Docker 的节点上运行 Ayakaleaf Pro 吗?
回答:只能在设置
SANDBOXED_COMPILES=false 时运行。此时编译会在 Ayakaleaf Pro 容器内使用其内置的小型 TeX Live 运行,LaTeX 文档可以读写该容器能访问的所有内容。我们不推荐这样做;参见沙盒编译。编译会计入 pod 的内存限制吗?
编译会计入 pod 的内存限制吗?
回答:不会。TeX Live 容器由节点的 Docker 启动,位于 pod 之外,也不在 kubelet 的视野内。请在节点上为它们预留空闲内存,例如使用上文中的
systemReserved,并且不要让其他 pod 占满节点。
