Skip to main content
コンパイルは、すべての Ayakaleaf Pro Pod 内の clsi サービスが実行します。Sandboxed Compiles を有効にすると、clsi は Pod が動作しているノードの Docker Engine に、コンパイルごとに TeX Live コンテナを起動するよう要求し、プロジェクトのディレクトリをそのノード上のパスで渡します。サンドボックス化の仕組みと利用可能なイメージについては Sandboxed Compiles で説明しています。

設定

インストールですべてが設定されます。ノード上の Docker とイメージは 0. ノードの準備、設定は 4. インスタンスのカスタマイズ、ボリュームは 5. Ayakaleaf Pro のデプロイで行います。設定はすべて ConfigMap にあります。

TeX Live バージョンの追加

1

すべてのノードでイメージをプルする

Toolkit はイメージを自動でプルしますが、Kubernetes では誰もプルしません。crictl ではなく Docker にプルしてください。clsi は Docker にイメージを要求します。ノードに存在しないイメージでのコンパイルは失敗します。
2

ConfigMap に追加して再起動する

後からクラスターに追加したノードでは、Ayakaleaf Pro をそこで実行する前に Docker とすべてのイメージが必要です。すべてのノードが条件を満たしているわけではない場合は、該当ノードにラベルを付け、nodeSelector で Ayakaleaf Pro をそれらのノードに限定してください。

複数のレプリカ

各レプリカはそれぞれのノードでコンパイルし、コンパイル出力をそこに保持します。そのため、ユーザーはコンパイルしたレプリカにとどまる必要があり、これはロードバランサーのスティッキー Cookie によって保証されます。同じノードで 2 つのレプリカを実行しないでください。ノードのコンパイルディレクトリを共有してしまいます。水平スケーリングの構成では、podAntiAffinity でこれを防いでいます。 TeX Live コンテナは Pod の横で実行され、Pod のメモリ制限の対象外であり、スケジューラーからも見えません。ノードにはそのためのメモリを空けておいてください。0. ノードの準備を参照してください。

Kubernetes でのテスト

Kubernetes 1.37 上で HAProxy の背後にノードごとに 1 つずつ計 3 つのレプリカを置き、すべてのノードの Docker に TeX Live 2026 と 2025 をプルした状態で、Sandboxed Compiles のエンドツーエンドテスト(7 ケース)に合格しています。対象は、新規プロジェクトの PDF へのコンパイル、コンパイラー設定で両方のイメージが提示され切り替えられること、fontspec を使った XeLaTeX、LaTeX エラーと修正後の再コンパイル、実行中のコンパイルの停止、双方向の SyncTeX です。12 人のユーザーが 600 ページのドキュメントを同時にコンパイルする負荷テストでは、ノードあたり 4 つのコンパイルが実行されました。期待できる性能を参照してください。
最終更新日 2026年11月2日