14 puan yazan xguru 2025-06-27 | 2 yorum | WhatsApp'ta paylaş
  • Sadelik/hız/güvenlik odağında tasarlanmış açık kaynaklı konteyner platformu
    • HPC (yüksek performanslı hesaplama) ve paylaşımlı sistem ortamları için optimize edilmiştir
  • Değiştirilemez (immutable) tek dosyalı konteyner imaj formatı sunar ve şifreleme ile imzalama desteği sağlar
  • İzolasyondan çok entegre kullanılabilirliğe odaklanır; bu sayede küme/sunucu ortamlarında GPU, yüksek hızlı ağlar ve paralel dosya sistemleri doğrudan kullanılabilir
  • OCI (Open Containers Initiative) kayıtlarından tüm konteynerleri alabilir ve Docker uyumluluğunu en üst düzeye çıkarır
    • Docker Hub'daki çoğu konteyneri değişiklik yapmadan pull, run ve build etmeyi destekler
  • Mevcut Singularity projesinin adı değiştirilerek Linux Foundation projesine taşınmıştır
  • SIF (Singularity Image Format) tabanlı tek dosyalı konteyner yapısıyla kolayca taşınabilir, dağıtılabilir ve paylaşılabilir
  • Konteyner içi ve dışındaki kullanıcı yetkileri aynıdır; varsayılan olarak host üzerinde ek yetki yükseltmeye izin vermeyen güvenli bir güvenlik modeli uygular
  • BSD lisansı

2 yorum

 
galadbran 2025-06-27

Hacker News yorumlarında bahsedilen unregistry yazısı:
Unregistry – “docker push”u registry olmadan doğrudan sunucuya gönderme | GeekNews

 
GN⁺ 2025-06-27
Hacker News görüşleri
  • Ekibimiz, silikon tasarımı/doğrulaması için kullandığımız hesaplama kümesinde Apptainer denedi, ancak sonunda yine geleneksel TCL(Lua'ya geçiş) modüllerine döndü

    • Çeşitli sorunlar yaşadık.
      • Birincisi, konteynerler birbirini kullanamıyor. Örneğin Make, GCC, Git gibi araçlar ayrı ayrı Apptainer'larda ise, Make'in içine girdiğinizde GCC'yi göremiyorsunuz
      • İkincisi, konteyner içindeki bağımlılıklara dayanan çıktılar düzgün çalışmıyor. Bir programı GCC Apptainer'ı ile derlediğinizde, oluşan ikili dosya Apptainer içindeki kütüphanelere bağlanıyor ve çalışmıyor; C başlık dosyaları sorunu da çıkıyor
      • Üçüncüsü, PATH değeri sürekli karışıyor; bu yüzden Apptainer dışındaki gerekli yolları veya araçları tekrar tekrar görememe sorunu yaşanıyor
      • Genel olarak fikir iyi olsa da gerçek kullanılabilirlik tarafında sadece zahmet yarattı; sonuçta eski bir işletim sistemini (RHEL8) doğrudan kullanmak çok daha kolaydı
    • Ben Apptainer/Singularity'yi Docker'a benzer görüyorum (yalnız ağ yapılandırması tam değil). Bu tür sorunlar geleneksel Docker konteynerlerinde de aynı şekilde ortaya çıkıyor.
      • HPC iş akışımda Apptainer'ı Docker için bire bir alternatif gibi kullanıyorum ve bu kullanım için gayet uygun
      • Apptainer'ın en büyük avantajı root yetkisi gerektirmeyen konteyner olması. Bu yüzden karmaşık ağ yapılandırmaları yapılamıyor ama HPC gibi çok kiracılı ortamlarda güvenlik açısından çok daha iyi
    • Konteyner uygulamalarıyla ilgili en büyük şikayetinizin tam da konteyner gibi davranmaları olması, aslında konteynerlerin doğası gereği böyledir
    • Konteyner parçalarını karıştırıp kullanmamalısınız. Bu, farklı Linux dağıtımlarının ikili dosyalarını karıştırmamaya benzer
      • Konteynerler, geliştirme için tek bir birleşik ortam olarak kullanılınca en verimli olur. Konteynerler yalıtılmış ortamlar olduğu için, derlediğiniz her şeyin sonucu kendi konteynerinde kalmalıdır
      • Yine de aynı temel imajdan birden fazla tane üretip dosya uyumluluğu sağlamak mümkündür (yalnızca gerekli tüm bağımlılıkları içerdiğinde)
  • Apptainer'ın ilgi görmesine sevindim. Bazı durumlarda Docker, Podman ve benzerlerinden daha iyi

    • Birden fazla işi tek bir konteynerde çalıştırmanız gerektiğinde (başka konteyner teknolojilerinde bu önerilmez)
    • HPC (ve bazı üniversite ortamları)
    • Tek dosyalı dağıtım modeli desteği (tabii delta desteği yok)
    • Ayrı bir harici sunucu olmadan SIF dosyalarını şifreli olarak imzalayabilme
    • Güçlü GPU desteği
  • Docker'da da docker save ve docker load komutlarıyla tek dosyalı dağıtım mümkün.

    • Delta desteği yok ama yakın zamanda HN'de "unregistry" adlı bir çözüm bağlantısı paylaşılmıştı; bu çözüm Docker Registry olmadan da "docker push" işlevi ve delta yansıtma sağlayabiliyor
  • Apptainer ve singularity ce ikisi de HPC'de yaygın kullanılıyor. İki ürün de eski Singularity projesinden ayrıldı ama tamamen aynı değiller

    • Biz çeşitli süper bilgisayarlarda (HPC) singularity kullanıyoruz, bazı araştırmacılar ise yerelde Apptainer kurup kullanıyor
    • Yakın zamanda Python kodunda (matplotlib, xarray vb.) bir zaman dilimi hatası bulduk; singularity ce'de sorun vardı ama Apptainer'da düzgün çalıştı
    • Yeni Apptainer, kod tabanı benzer olsa da hata düzeltmelerini daha hızlı alıyor. Örneğin singularity, kullanıcı zaman dilimini sisteme yazdığı için sorun çıkarıyordu
    • İlgili bağlantı: singularity issue #3686
    • Apptainer, eski Singularity projesinin bir fork'u değil. Apptainer, aslında orijinal ana projeydi; topluluk oylamasıyla yalnızca adı değiştirildi. Sonra Linux Foundation bünyesine geçti
      • Sylabs'ın asıl geliştiriciyi işe alıp projeyi fork'ladığı örnek singularity ce'dir
      • Bkz.: community announcement
    • Yine de karşılıklı konteyner uyumluluğu korunuyor; Apptainer'da derlenen bir şey Singularity'de çalışıyor (tersi de geçerli)
  • Apptainer, yakında Singularity olacak gibi. İlgili makale burada

    • Üniversite veya devlet kümesinde paylaşımlı sistem kullanıyorsanız, Apptainer neredeyse her zaman vardır ama Podman/Docker çok nadiren bulunur
    • Bu tür ortamlarda konteyner kullanmak yerine, sistem yöneticileriyle iyi geçinip ilgili kümenin nasıl işletildiğini anlamak daha faydalı olabilir
    • Docker/Podman neden daha az kullanılıyor ve neden konteyner kullanmaktan kaçınmak iyi olabilir, merak ediyorum. Sebep acaba performans
  • Flatpak, OSTree tabanından çıkıp konteyner tabanlı bir yapıya geçmek istiyor. Bakımı süren konteyner araçlarının büyük avantaj olduğu söyleniyor. Ama bunun Apptainer'dan farkı ne olur, merak ediyorum

    • Muhtemelen Flatpak'ın farkı, xdg-dbus üzerinden izinleri ayrıntılı biçimde bölmesi ve tek tek uygulama sandbox kontrolü sağlaması; böylece yerel uygulama gibi kullanılabiliyor
      • Apptainer'ın bu kadar tam ayrıştırma/yalıtım sağladığından emin değilim
      • containertoolbx gibi araçlar kullanılırsa, konteyner yaklaşımı farkı çok da anlamlı olmuyor
      • Açıkçası araçlar arasında işlev örtüşmesi çok fazla ama bunun kendi başına sorun olmadığını düşünüyorum
  • Kullandığım ortamda Apptainer kullanmanın ana amacı dağıtım, yalıtım veya yazılım erişilebilirliği değil.

    • HPC kümemizde her kullanıcı için inode kotası sınırı var; bu yüzden çok sayıda dosya içeren yazılımları (ör. Anaconda) kurmak zor
    • Ama Apptainer imajları squashfs tabanlı tek bir dosya olduğu için inode kotasını dert etmeden birden fazlasını tutabiliyorum
    • Aynı yazılımı normal şekilde kurmak daha kolay olsa da kota çok hızlı tükeniyor
  • Havoc'un yorumuna katılıyorum. Mesaj biraz belirsiz: Apptainer masaüstü için Flatpak alternatifi mi, yoksa sunucu amaçlı mı, anlaşılmıyor

    • Sunucu için. Ama sorunun kendisi de belirsiz
      • Apptainer, değiştirilemez (immutable), root'suz konteynerlerde CLI uygulamaları çalıştırmak için
      • En yakın araç Fedora Toolbx
      • Apptainer'ın ana kullanım alanı bilimsel hesaplama araçlarını dağıtmak ve yeniden kullanmak. Root yetkisi gerektirmez, rootfs her konteyner için değiştirilemez, çalışma dizinini otomatik bağlar ve GPU desteği de iyidir (bunu bizzat test etmedim)
      • Bkz.: Fedora Toolbx
  • "Apptainer" adı telaffuz açısından garip ve kulağa biraz tuhaf geliyor

  • Geliştiriciyseniz, yalıtım için konteyner aracı arıyor olabilirsiniz

    • Ben Podman tabanlı olarak farklı geliştirme projelerini izole eden bir araç yaptım. Güvenlik testi veya kullanım için gerekliyse koduna ya da blog yazısına bakabilirsiniz
    • toolbox neden yeterli olmadı, merak ediyorum
      • Bence toolbox, proje bazında geliştirme ortamı kurarken bir sürü gizli dosya sistemini yönetmek gerekmediği için gayet iyiydi
  • SLURM kümesi ve root yetkisi olmayan sunucularda çok kullanışlı

    • Ben de SLURM kümesinde kullanmıştım
      • Resmî dokümantasyonu iyi, bu yüzden başlangıç için yeterli
      • Ancak fakeroot veya sudo yoksa, Apptainer'ı yerelde derleyip sunucuya elle aktarmak zorunda kalmak biraz uğraştırıcıydı