> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 0. Düğümleri hazırlayın

> Düğümlere Docker Engine, containerd ve kubeadm kurun ve TeX Live imajlarını çekin.

Ayakaleaf Pro, LaTeX'i [sandbox](https://ayakaleaf-pro.mintlify.site/tr/on-premises/configuration/overleaf-toolkit/sandboxed-compiles.md) TeX Live konteynerlerinde derler. Bunları, çalıştığı makinenin Docker soketi üzerinden kendisi başlatır. Kubernetes'te bu şu anlama gelir:

* Ayakaleaf Pro pod'unu çalıştırabilen her düğümde **Docker Engine** kurulu ve çalışır durumdadır;
* yapılandırdığınız her TeX Live imajı, bu düğümlerin her birinde **Docker'a** çekilmiştir.

kubelet containerd kullanmaya devam edebilir: Docker Engine `containerd.io` ile birlikte gelir ve her ikisi de aynı daemon'u farklı ad alanlarında kullanır.

> [!WARNING]
>
> Docker içermeyen yönetilen düğüm havuzları (EKS, GKE ve AKS varsayılanlarının çoğu) sandbox derlemelerini çalıştıramaz. Docker Engine kurabildiğiniz düğüm havuzları kullanın ya da bu tür düğümleri etiketleyip Ayakaleaf Pro'yu bir `nodeSelector` ile onlarda tutun.

Aşağıdaki adımlar Ubuntu 24.04 ve kubeadm ile kurulmuş bir küme içindir. Kümeniz zaten varsa, Ayakaleaf Pro'yu çalıştıracak düğümlerde 1., 2. ve 5. adımları uygulayın.

**1. Çekirdek modülleri ve sysctl ayarları**

```bash theme={null}
printf 'overlay\nbr_netfilter\n' | sudo tee /etc/modules-load.d/k8s.conf
sudo modprobe overlay && sudo modprobe br_netfilter
printf 'net.bridge.bridge-nf-call-iptables=1\nnet.bridge.bridge-nf-call-ip6tables=1\nnet.ipv4.ip_forward=1\n' \
  | sudo tee /etc/sysctl.d/99-k8s.conf
sudo sysctl --system
sudo swapoff -a   # and comment out swap in /etc/fstab
```

**2. Docker Engine**

Docker Engine'i [0. Docker Kurulumu](https://ayakaleaf-pro.mintlify.site/tr/on-premises/installation/using-the-toolkit/0.-setup-docker.md) sayfasındaki gibi Docker'ın deposundan kurun. Compose eklentisi gerekmez. Bu, `containerd.io` paketini de kurar.

**3. kubelet için containerd**

Docker'ın deposundaki `containerd.io` paketinde CRI eklentisi kapalıdır. Eklentiyi açan tam varsayılan yapılandırmayı yazın ve systemd cgroup'larına geçirin:

```bash wrap theme={null}
containerd config default | sudo tee /etc/containerd/config.toml >/dev/null
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
# containerd 2.x writes config_path = '' and ignores /etc/containerd/certs.d without this
sudo sed -i "s|config_path = ''|config_path = '/etc/containerd/certs.d'|" /etc/containerd/config.toml
sudo systemctl restart containerd docker
```

**4. kubeadm, kubelet ve kubectl**

[Installing kubeadm](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/) belgesini izleyin, ardından kümeyi `kubeadm init` ve `kubeadm join` ile oluşturun ve bir ağ eklentisi kurun. Örneğin flannel ile:

```yaml title="kubeadm-config.yaml" theme={null}
apiVersion: kubeadm.k8s.io/v1beta4
kind: ClusterConfiguration
networking:
  podSubnet: 10.244.0.0/16   # flannel's default
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd
# Compile containers are started by Docker, outside the kubelet's accounting: keep memory for them
systemReserved:
  memory: 300Mi
kubeReserved:
  memory: 200Mi
```

```bash theme={null}
sudo kubeadm init --config kubeadm-config.yaml
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
```

Kümenin ayrıca varsayılan bir StorageClass'a ihtiyacı vardır. Bir test kümesi için [local-path-provisioner](https://github.com/rancher/local-path-provisioner) işe yarar; üretimde platformunuzun blok depolamasını (Longhorn, Ceph, bir bulut CSI sürücüsü) kullanın.

**5. TeX Live imajları**

Ayakaleaf Pro çalıştırabilen **her** düğümde, `ALL_TEX_LIVE_DOCKER_IMAGES` içinde listeleyeceğiniz TeX Live imajlarını Docker ile çekin, örneğin:

```bash theme={null}
sudo docker pull ghcr.io/ayaka-notes/texlive-full:2026.1
```

`crictl pull` veya `ctr` burada işe yaramaz: Ayakaleaf Pro imajı Docker'dan ister. Full imajlar büyüktür (her biri yaklaşık 28 GB); liste için bkz. [Sandbox Derlemeleri](https://ayakaleaf-pro.mintlify.site/tr/on-premises/configuration/overleaf-toolkit/sandboxed-compiles.md). İlk test için `ghcr.io/ayaka-notes/texlive-basic:2026.1` (yaklaşık 630 MB, minimal bir TeX Live) yeterlidir.

### Q\&A

> [accordion] Ayakaleaf Pro'yu Docker olmayan düğümlerde çalıştırabilir miyim?
>
> **Yanıt:** Yalnızca `SANDBOXED_COMPILES=false` ile. Bu durumda derlemeler Ayakaleaf Pro konteynerinin içinde, onun küçük yerleşik TeX Live'ı ile çalışır ve LaTeX belgeleri o konteynerin erişebildiği her şeyi okuyup yazabilir. Bunu önermiyoruz; bkz. [Sandbox Derlemeleri](https://ayakaleaf-pro.mintlify.site/tr/on-premises/configuration/overleaf-toolkit/sandboxed-compiles.md).

> [accordion] Derlemeler pod'un bellek sınırına dahil edilir mi?
>
> **Yanıt:** Hayır. TeX Live konteynerleri, pod'un dışında ve kubelet'in görüş alanının dışında, düğümün Docker'ı tarafından başlatılır. Düğümde onlar için boş bellek bırakın, örneğin yukarıdaki gibi `systemReserved` ile, ve düğümü başka pod'larla doldurmayın.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.