Skip to main content
Bir yükseltme imaj etiketini değiştirir. Yeni sürüm başlarken veritabanını geçirir ve bu geçişler tek bir pod’dan, bir kez ve eski hiçbir pod çalışmıyorken çalışmalıdır. Kubernetes’te bu, ölçeklendirilmiş bir StatefulSet’in düz bir kademeli güncellemesini olanaksız kılar.
Her yükseltmeden önce, Ayakaleaf Pro durdurulmuşken tutarlı bir yedek alın. Yükselttiğiniz sürümün adımları için sürüm notlarını okuyun.
Başlamadan önce, Ayakaleaf Pro çalıştıran her düğümde yeni sürümün veya yeni yapılandırmanızın listelediği tüm TeX Live imajlarını sudo docker pull ile çekin.
1

Ayakaleaf Pro'yu durdurun

2

Yedekleyin

MongoDB, herhangi bir üyeden:
Veri birimi, onu bağlayan kısa ömürlü bir pod aracılığıyla (pod, birimin düğümüne yerleşir):
Aynısını git-bridge biriminde (data-git-bridge-0) de yapın ve overleaf-secrets Secret’ının bir kopyasını saklayın. Depolamanız VolumeSnapshots destekliyorsa, birimlerin bir anlık görüntüsü de aynı işi görür.
3

Sürümü değiştirin ve başlatın

Yeni etiketi 40-overleaf.yaml dosyasında (ve aynı etiketi kullanması gereken 45-git-bridge.yaml dosyasında) ayarlayın, ardından:
Deployment strategy: Recreate kullanır; bu nedenle değişen bir etiket bile hiçbir zaman iki sürümü aynı anda çalıştırmaz.

MongoDB ve Redis

Bunları Ayakaleaf Pro’dan ayrı olarak yükseltin. MongoDB için MongoDB’yi güncelleme sayfasını izleyin (her seferinde bir ana sürüm, her adımdan sonra featureCompatibilityVersion); 10-mongo.yaml içindeki imajı değiştirdiğinizde replika kümesi yeni imajı her seferinde bir üye olacak şekilde alır, çünkü StatefulSet sırasıyla mongo-2, mongo-1 ve mongo-0 pod’larını değiştirir.

Geri alma

Ayakaleaf Pro’yu yukarıdaki gibi durdurun, MongoDB’yi arşivden (mongorestore --drop --archive --gzip), birimleri veya bucket’ları yedekten geri yükleyin, eski etiketi ayarlayın ve yeniden başlatın. Yeni sürümün geçişleri başka bir yolla geri alınamaz.

Q&A

Yanıt: podManagementPolicy: OrderedReady ile overleaf-1 yalnızca overleaf-0 hazır olduğunda başlar ve kademeli güncelleme hiç hazır olmamış bir pod’u değiştirmez. Nedeni düzelttikten sonra, örneğin ConfigMap’teki yanlış bir ayarı, StatefulSet’in onu mevcut şablondan yeniden oluşturması için takılan pod’u silin:
Test kümemizde bir ayar overleaf-0’ın hazır olmasını engellediğinde bununla karşılaştık; pod’u silmek üç replikanın da başlamasını sağladı.
Son değiştirilme tarihi 2 Kasım 2026