Uncloud - Kubernetes karmaşıklığı olmadan sunucular arasında konteyner uygulamaları dağıtma aracı
(uncloud.run)- Uncloud, Kubernetes olmadan da birden çok sunucuda konteynerleştirilmiş web uygulamalarını dağıtıp ölçeklendirebilen açık kaynaklı bir araçtır
- Docker Compose tabanlı iş akışını korurken, kesintisiz dağıtım, otomatik HTTPS ve sunucular arası ölçeklendirme desteği sunar
- Merkezi bir kontrol düzlemi olmadan her makine, WireGuard tabanlı P2P ağ ile bağlanır; böylece bazı sunucular çevrimdışı olsa bile küme çalışmayı sürdürür
- Caddy reverse proxy üzerinden otomatik HTTPS, yerleşik DNS tabanlı servis keşfi ve yük dengeleme özelliklerini içerir
- Bulut ve şirket içi karma ortamlarda da aynı şekilde dağıtım yapılabildiği için, altyapı kontrolü ve maliyet öngörülebilirliği sağlanır
PaaS benzeri iş akışı
- Heroku veya Fly.io gibi basit bir dağıtım deneyimi sunarken sunucular ve veriler üzerinde tam kontrol sağlar
- İstek başına ücretlendirme yerine öngörülebilir maliyet yapısı
- Vendor lock-in yoktur; standart SSH araçlarıyla hata ayıklama yapılabilir
- Docker Compose dostu yapı sayesinde build, push ve deploy tek komutla yapılabilir
- Image registry gerekmez, kesintisiz rolling deployment desteklenir
- Birden fazla makineye yayılan replika ölçeklendirme mümkündür
Düşük bakım gerektiren tasarım
- Kontrol düzlemi veya quorum yönetimi gerekmez, böylece yönetim karmaşıklığı en aza iner
- Port açmadan güvenli makineler arası iletişim desteklenir
- Otomatik servis keşfi ve Let's Encrypt tabanlı otomatik HTTPS sertifikası alma özelliği yerleşik olarak gelir
Nasıl çalışır
- Karmaşık bir küme yerine basit bir makine ağı ile kurulur; bakım yükü olmadan istikrarlı altyapı sunar
- Her makine WireGuard mesh ağına katılarak otomatik eş keşfi ve NAT traversal gerçekleştirir
- Konteynerler benzersiz bir IP alır ve sunucular arasında doğrudan iletişim kurabilir
- Tamamen dağıtık mimari sayesinde merkezi bir kontrol düğümü olmadan her makine küme durumunu senkronize eder
- Bazı makineler çevrimdışı olsa bile küme çalışmayı sürdürür
- Docker benzeri CLI ile tüm altyapı kontrol edilir
- Tek bir makineye SSH erişimiyle dağıtım, izleme ve ölçeklendirme yapılabilir
Başlıca özellikler
- Her yerde dağıtım yapılabilir: bulut VM'leri, dedicated server'lar, şirket içi ortamlar dahil tüm Linux makineleri destekler
- Otomatik HTTPS: yerleşik Caddy reverse proxy ile yapılandırmasız TLS sertifikası alma ve HTTPS etkinleştirme
- Yük dengeleme: birden fazla makineye dağılmış konteyner replikaları arasında trafiği dağıtır
- Servis keşfi: yerleşik DNS, ağ içindeki servis konumlarını otomatik olarak izler
- Infrastructure as Code: mevcut Docker Compose dosyalarıyla tüm uygulama yığını tanımlanabilir
- Vendor lock-in yoktur: bulut ile kendi donanımınızı özgürce karıştırıp kullanabilirsiniz
1 yorum
Hacker News görüşü
Merhaba, yapımcısı benim. Paylaştığınız için teşekkürler.
Uncloud, kontrol düzlemi olmayan bir konteyner orkestratörüdür. Basitçe söylemek gerekirse, birden fazla makineye yayılmış Docker Compose yapısının üzerine otomatik WireGuard mesh, servis keşfi ve Caddy üzerinden HTTPS eklenmiş halidir. Her makine, Fly.io’nun Corrosion aracını kullanarak küme durumunu p2p senkronize eder; bu sayede quorum koruma gereksinimi yoktur.
Kubernetes’i hem startup’larda hem de unicorn şirketlerde işlettikten sonra, çoğu ekibin aslında yalnızca birkaç makinede konteynerleri düzgün çalıştırmaya, ayrıca ağ, rollout ve HTTPS’e ihtiyaç duyduğunu fark ettim. Buna kıyasla K8s’in operasyonel yükü fazla büyük.
Başlıca özellikler şunlar:
Proje bağlantısı: https://github.com/psviderski/uncloud
uc machine initkomutunun içeride root yetkisiylecurl | bashçalıştırması güvenlik açısından riskli görünüyor. Test etmek isterim ama gerçek makinelerde çalıştıracağımı sanmıyorum.Kariyerimin büyük kısmını Kubernetes ile geçirdim; kontrol düzlemi olmayan bir yapının avantajının ne olduğunu merak ediyorum. Bana göre kontrol düzlemi zaten K8s’in temel özelliği.
Yüzlerce düğüm ve on binlerce konteyner gibi ölçeklerde yönetilen kümeler otomatik güncellendiği için büyük bir yük oluşturmuyor. İnsanların doğrudan K8s’i self-host etmeye çalışırken yaşadığı acıların bu tür alternatiflerin arkasındaki motivasyon olup olmadığını merak ediyorum.
Ağ bölünse bile her partition bağımsız şekilde çalışabiliyor. Eski Chef ya da Ansible dönemindeki sadeliğin, K8s’ten alınan derslerle birleşmiş hali gibi.
Proje harika görünüyor. İleride kesinlikle denemeyi düşünüyorum.
Daha basit bir alternatif arıyorsanız Kamal da iyi olabilir. Bu, K8s’ten ve cloud’dan tamamen çıkmış bir şirketin bizzat işlettiği, sahada kanıtlanmış bir araç.
Sunucuları belirttiğinizde otomatik server hardening yapan bir özellik olup olmadığını merak ediyorum.
Ben bir Docker Swarm kullanıcısıyım. Uncloud, ilk kez gerçekten ilgimi çeken bir alternatif gibi görünüyor.
Merak ettiklerim şunlar:
x-ports: app.example.com:8000/httpsşeklinde tanımlanıyor.Ya da
x-caddy: Caddyfileile Caddy yapılandırması özelleştirilebiliyor. Ayrıntılar için resmî dokümantasyona bakabilirsiniz.Şu anda stack’ler arası ağ izolasyonu yok. İlgili tartışma GitHub Discussion #94 altında sürüyor.
Nasıl bir davranış beklediğinizi merak ediyorum.
2 ve 3 numaralı soruların cevabı sırasıyla “henüz değil” ve “şu anda evet”. İlgili tartışma için Discussion #94 bağlantısına bakabilirsiniz.
Swarm kullanmış biri olarak, Swarm’da eksik ya da kullanışsız bulduğunuz ve Uncloud’un iyileştirebileceği şeylerin neler olduğunu merak ediyorum.
Gerçekten harika bir proje. Benzer konuda başka araçlara da bakmaya değer:
Bildiğiniz başka örnekler varsa eklenmesini isterim.
Kısa süre önce Coolify denedim ama biraz yarım kalmış hissi verdi. Şu an Dokku kullanıyorum, ancak veritabanı yönetimi için UI’nın daha iyi olmasını isterdim.
Ben k3s’ten memnunum ama Docker Compose ile tam K8s arasındaki ara alanda yeni girişimler görmek sevindirici. Özellikle WireGuard entegrasyonu ilginç görünüyor.
Gerçekten çok güzel bir araç. Emeğiniz için teşekkürler.
Arka uçtaki durum replikasyonunun (state replication) nasıl çalıştığını merak ediyorum. CRDT ve gossip protokolünden bahsedilmiş ama somut uygulama kısmı belirsiz kalmış.
K8s değilse neden Nomad değil?
Yani kullanım alanı self-host etmenin ötesinde sınırlı ve fiilen özgürce hizmetleştirmeye uygun değil. Ayrıntılar için lisans metnine bakabilirsiniz.
Bu arada, ilginç bulduğum iki p2p bileşeni paylaşayım: