Skip to main content
Ayakaleaf Pro biên dịch LaTeX trong các container TeX Live chạy trong sandbox. Nó tự khởi động các container này thông qua Docker socket của máy mà nó đang chạy. Trên Kubernetes, điều này có nghĩa là:
  • mọi node có thể chạy pod Ayakaleaf Pro đều phải cài đặt và chạy Docker Engine;
  • mọi image TeX Live bạn cấu hình đều phải được pull vào Docker trên từng node đó.
Kubelet vẫn có thể tiếp tục dùng containerd: Docker Engine đi kèm containerd.io, và cả hai dùng cùng một daemon trong các namespace khác nhau.
Các node pool được quản lý không có Docker (phần lớn cấu hình mặc định của EKS, GKE và AKS) không thể chạy biên dịch trong sandbox. Hãy dùng các node pool mà bạn có thể cài đặt Docker Engine, hoặc gắn nhãn cho các node như vậy và giữ Ayakaleaf Pro trên chúng bằng nodeSelector.
Các bước dưới đây dành cho Ubuntu 24.04 và một cluster được dựng bằng kubeadm. Nếu cluster của bạn đã tồn tại, hãy thực hiện các bước 1, 2 và 5 trên các node sẽ chạy Ayakaleaf Pro.
1

Kernel module và sysctl

2

Docker Engine

Cài đặt Docker Engine từ kho lưu trữ của Docker như trong Cài đặt Docker. Không cần plugin Compose. Việc này cũng cài đặt containerd.io.
3

containerd cho kubelet

Gói containerd.io từ kho lưu trữ của Docker tắt sẵn plugin CRI. Hãy ghi cấu hình mặc định đầy đủ, vốn bật plugin này, và chuyển sang dùng systemd cgroups:
4

kubeadm, kubelet và kubectl

Làm theo Installing kubeadm, sau đó tạo cluster bằng kubeadm init và kubeadm join và cài đặt một network plugin. Ví dụ, với flannel:
kubeadm-config.yaml
Cluster cũng cần một StorageClass mặc định. Với cluster thử nghiệm, local-path-provisioner là đủ; trong môi trường production, hãy dùng block storage của nền tảng bạn (Longhorn, Ceph, một CSI driver của nhà cung cấp đám mây).
5

Image TeX Live

Trên mọi node có thể chạy Ayakaleaf Pro, hãy dùng Docker để pull các image TeX Live mà bạn sẽ liệt kê trong ALL_TEX_LIVE_DOCKER_IMAGES, ví dụ:
crictl pull hay ctr không giúp được ở đây: Ayakaleaf Pro yêu cầu image từ Docker. Các image full có dung lượng lớn (khoảng 28 GB mỗi image); xem danh sách tại Biên dịch trong sandbox. Để thử nghiệm lần đầu, ghcr.io/ayaka-notes/texlive-basic:2026.1 (khoảng 630 MB, một bản TeX Live tối giản) là đủ.

Q&A

Trả lời: Chỉ khi dùng SANDBOXED_COMPILES=false. Khi đó các lần biên dịch chạy bên trong container Ayakaleaf Pro với bản TeX Live tích hợp nhỏ của nó, và tài liệu LaTeX có thể đọc và ghi mọi thứ mà container đó có quyền truy cập. Chúng tôi không khuyến nghị cách này; xem Biên dịch trong sandbox.
Trả lời: Không. Các container TeX Live được Docker của node khởi động, nằm ngoài pod và ngoài tầm quan sát của kubelet. Hãy để trống bộ nhớ trên node cho chúng, ví dụ bằng systemReserved như trên, và đừng lấp đầy node bằng các pod khác.
Lần sửa đổi cuối 2 tháng 11, 2026