Kubernetes'i systemd ile değiştirmek (2024)
(blog.yaakov.online)- Yazının yazarı, kişisel sunucu işletiminde Kubernetes'in karmaşıklığı ve kaynak tüketimi nedeniyle hayal kırıklığı yaşadığını ve bunu systemd ile Podman birleşimiyle değiştirme deneyimini paylaşıyor
- Kubernetes, GitOps ve otomasyon açısından cazip olsa da küçük ölçekli ortamlarda fazlasıyla ağır bir sistem
- Podman'ın otomatik güncelleme özelliği ve systemd servis üretimi kullanılarak, Kubernetes'in temel işlevleri basitçe uygulanabiliyor
- systemctl ile loginctl'i birleştirerek kullanıcı düzeyinde servislerin otomatik çalıştırılması da anlatılıyor ve VPS kaynak tüketiminin büyük ölçüde azaldığı vurgulanıyor
- Ancak Podman'ın systemd entegrasyonunun yakında "Quadlet" adlı yeni bir yöntemle değiştirileceği belirtiliyor
Giriş: Kubernetes ile ilk tanışma
- 2018'de Kubernetes'i denerken kişisel bir NUC üzerinde küme kurmaya çalıştığı deneyim anlatılıyor
- Kubernetes karmaşık olsa da temelde şu tekrarlayan döngü yapısıyla çalışıyor:
- mevcut durumu belirleme → istenen durumu hesaplama → farkı hesaplama → uygulama
- cert-manager gibi çeşitli bileşenlerle sağlanan otomasyon özellikleri oldukça etkileyiciydi
Kubernetes'in aşırı kaynak gereksinimi
- Kişisel sunucuda (NUC) Kubernetes sürekli CPU kullanımı, fan gürültüsü ve ısınma yaratıyordu
- Azure, MicroK8s, K3S gibi çeşitli dağıtımlar da kayda değer miktarda kaynak tüketiyordu
- MicroK8s: %12 CPU kullanımı (2vCPU VPS)
- K3S: %6 CPU kullanımı (2vCPU Ampere A1)
GitOps otomasyonunun cazibesi
- Flux gibi araçlarla Git tabanlı dağıtım otomasyonu mümkün olduğu için çok kullanışlıydı
- GitHub'a yalnızca container image'ı push etmek yeterli oluyor, sunucu da en güncel uygulamayı otomatik olarak dağıtıyordu
- Ancak Kubernetes olmadan bu tür bir otomasyonu kurmak çok zordu
Podman ve systemd'nin ortaya çıkışı
- Podman, Docker'a alternatif bir araç ve container'ları systemd servislerine dönüştürme özelliğine sahip
podman generate systemdile otomatik olarak service dosyaları üretilebiliyorio.containers.autoupdateetiketi sayesinde günde 1 kez otomatik image güncellemesi yapılabiliyor- Fedora Magazine'deki bu yöntemden yararlanarak Kubernetes'e alternatif bir ortam kurmayı başarmış
Gerekli üç bileşen
-
systemctl --user enable mycontainer.service- Container'ın oturum açıldığında otomatik çalışması için ayarlanması
-
loginctl enable-linger- Sunucu açıldığında kullanıcı oturumunun etkinleşmesi için ayarlanması
-
Podman'ın auto-update özelliği
- Bu üçüyle Kubernetes'in sunduğu işlevlerin %99'u daha basit ve daha hafif şekilde değiştirilebildi
Geçiş sonucu
- Tüm servisler eski VPS'ten yeni VPS'e taşındı
- Kaynaklar yarıya indi ama performans arttı, servis yoğunluğu yükseldi ve maliyet tasarrufu sağlandı
Sonraki konu: Quadlet
- Ne yazık ki Podman'ın systemd entegrasyonu yakında kullanımdan kaldırılacak
- Bunun yerine Quadlet dosyaları adı verilen yeni bir tanım biçimine geçilecek
- Yazı, yeni teknolojiyi öğrenmeye hazırlıklı olmak gerektiği notuyla sona eriyor
1 yorum
Hacker News görüşleri
Kubernetes'e yalnızca container image'larını çalıştırıp güncelleme aracı olarak bakılıyorsa, bu aşırı kullanım olabilir
Docker kullanarak birkaç küçük web sitesi çalıştırmaya çalıştılar, ancak image güncelleme ve test etme zordu
Kubernetes cluster'ı yönetmekte sorun yok, ancak hobi projelerinde kaynak gereksinimleri nedeniyle kullanmak zor
Systemd birçok sorunu çözüyor ve göz ardı edilmemeli
systemctl editile yapılandırma dosyaları düzenlenebiliyorHomelab'lerini podman-systemd ile çalıştırıyorlar ve yeni Kubernetes türevlerini incelediklerinde ek bir zahmet yaşamıyorlar
Quadlet kullanarak container'ları systemd içinde yönetmek bir sonraki adım
Skate'i geliştirerek multi-host ve Kubernetes manifest desteği olan bir sistem kurdular
Docker compose komutları ve Caddy kullanarak sertifikaları otomatik almak mümkün
docker compose up -d --pull alwayskomutuyla basitçe kurulabiliyorSystemd artık immutable workflow'lar için resmî destekli işletim sistemi dağıtımı olan ParticleOS'u sunuyor
Tek bir sunucuya dağıtım yapmanın karmaşık olmaması gerektiğini düşünüyorlar ve Harbormaster adlı bir araç yazdılar