Konteyner altyapısı kurmaya karar verdiğinizde karşınıza çıkan ilk sorulardan biri: düz Kubernetes mi, yoksa Red Hat OpenShift mi? İkisi de aynı temel üzerine kurulu ama felsefeleri, maliyetleri ve günlük kullanım deneyimleri oldukça farklı. Bu yazıda Kubernetes vs OpenShift karşılaştırmasını mimari, güvenlik, geliştirici deneyimi, kaynak ihtiyacı ve maliyet açısından yapıyoruz ve hangi durumda hangisini seçmeniz gerektiğini sade bir dille anlatıyoruz.
Kubernetes Nedir? (Kısaca)
Kubernetes, konteynerleri birden fazla sunucu üzerinde çalıştıran, ölçekleyen ve bozulduğunda kendiliğinden ayağa kaldıran açık kaynak bir orkestrasyon platformu. Google kökenli, bugün CNCF çatısı altında geliştiriliyor ve tamamen ücretsiz. Ama Kubernetes bir "çekirdek": ingress, izleme, log toplama, imaj deposu, CI/CD gibi parçaları siz seçip kuruyorsunuz. Temelleri merak ediyorsanız Kubernetes nedir yazımıza göz atabilirsiniz.
OpenShift Nedir?
OpenShift, Red Hat'in Kubernetes üzerine kurduğu kurumsal konteyner platformu. Yani OpenShift bir Kubernetes alternatifi değil, Kubernetes'in üzerine eklenmiş, paketlenmiş ve desteklenen bir dağıtım. İçinde hazır gelenler:
- Red Hat Enterprise Linux CoreOS (RHCOS) işletim sistemi ve CRI-O konteyner çalışma zamanı
- OVN-Kubernetes ağ eklentisi ve dışarıya açmak için Route nesneleri
- Dahili imaj deposu (registry), web konsolu, izleme ve log altyapısı
- OperatorHub ile yazılımları operatörler üzerinden kurma ve güncelleme
- Pipelines (Tekton) ve GitOps (Argo CD) gibi CI/CD bileşenleri
Yazıyı yazdığımız sırada güncel sürüm OpenShift 4.22 ve Kubernetes 1.35 tabanlı. Ücretsiz, topluluk tarafından geliştirilen sürümünün adı ise OKD; teknik olarak çok benzer ama Red Hat desteği yok.
Kubernetes vs OpenShift: Genel Karşılaştırma
| Kriter | Kubernetes | OpenShift |
|---|---|---|
| Lisans | Açık kaynak, ücretsiz | Ticari abonelik (OKD ücretsiz) |
| Kurulum | kubeadm, k3s, RKE2 gibi birçok yol | Kendi installer'ı, daha katı ve standart |
| İşletim sistemi | Hemen hemen her Linux dağıtımı | Control plane için RHCOS zorunlu |
| Web arayüzü | Dashboard ayrıca kurulur | Gelişmiş web konsolu hazır |
| Dışarıya açma | Ingress / Gateway API (controller ayrıca kurulur) | Route hazır, Ingress de desteklenir |
| İmaj deposu | Yok, ayrıca kurulur | Dahili registry hazır |
| CI/CD | Kendiniz seçip kurarsınız | Pipelines ve GitOps operatörleri hazır |
| Varsayılan güvenlik | Daha esnek, ayar sizde | Daha sıkı (SCC, root kapalı) |
| Güncelleme | Elle veya araçla, sürüm sürüm | Konsoldan tek tık, işletim sistemi dahil |
| Destek | Topluluk yada üçüncü parti | Red Hat kurumsal destek |
Güvenlik: En Çok Hissedilen Fark
OpenShift'e geçen ekiplerin ilk karşılaştığı şey genelde şu oluyor: Docker Hub'dan çektikleri bir imaj Kubernetes'te sorunsuz çalışırken OpenShift'te "permission denied" hatası verip duruyor. Sebebi OpenShift'in Security Context Constraints (SCC) mekanizması. Varsayılan restricted-v2 kısıtı ile konteynerler root olarak çalışamıyor, her proje için rastgele atanan bir kullanıcı ID'si ile çalışıyor ve ayrıcalıklı yetkiler kapalı geliyor.
Kubernetes'te ise benzer kontroller Pod Security Admission ile yapılıyor ama varsayılan olarak zorlanmıyor; namespace'lere etiket ekleyerek siz açıyorsunuz:
# OpenShift: tanımlı güvenlik kısıtlarını listeleyin
oc get scc
oc adm policy who-can use scc restricted-v2
# Kubernetes: namespace'e benzer kısıtı Pod Security Admission ile uygulayın
kubectl label namespace demo pod-security.kubernetes.io/enforce=restricted
nginx yerine nginx-unprivileged), hem Kubernetes'te hem OpenShift'te sorunsuz çalışırlar ve güvenlik açısından da daha iyi bir yerde olursunuz.Geliştirici Deneyimi: kubectl ve oc
OpenShift'in komut satırı aracı oc, kubectl'in tüm komutlarını destekliyor ve üstüne kısa yollar ekliyor. Aynı uygulamayı iki tarafta yayına almak şöyle görünüyor:
# OpenShift (oc)
oc new-project demo
oc new-app --image=nginxinc/nginx-unprivileged --name=web
oc expose service/web # dışarıdan erişim için Route oluşturur
oc get route web
# Kubernetes (kubectl)
kubectl create namespace demo
kubectl create deployment web --image=nginxinc/nginx-unprivileged -n demo
kubectl expose deployment web --port=8080 -n demo
kubectl create ingress web --rule="web.ornek.com/*=web:8080" -n demo # Ingress Controller kurulu olmalı
OpenShift tarafında oc new-app deployment ve service'i, oc expose ise alan adını tek seferde hazırlıyor. Kubernetes'te aynı sonuç için birkaç adım ve önceden kurulmuş bir Ingress Controller gerekiyor. kubectl'e yeniyseniz kubectl nasıl çalışır yazımızda en sık kullanılan komutları topladık.
Bunun yanında OpenShift'in web konsolunda geliştiriciler için ayrı bir görünüm var: Git deposundan uygulama oluşturma, logları izleme, pod'a terminal açma gibi işler YAML yazmadan yapılabiliyor. Kubernetes'te bunun için Lens, Headlamp gibi ek araçlar kullanılıyor.
Kaynak İhtiyacı
| Kurulum tipi | Minimum kaynak | Not |
|---|---|---|
| Tek node Kubernetes (k3s, kubeadm) | 2 çekirdek, 2–4 GB RAM | Küçük projeler ve test için yeterli |
| Çok node'lu Kubernetes | 1+ control plane (2 çekirdek / 2 GB+), işinize göre worker | Yüksek erişilebilirlik için 3 control plane |
| Single Node OpenShift (SNO) | 8 vCPU, 16 GB RAM, 120 GB disk | Platform servisleri kaynağın önemli kısmını kullanır |
| Standart OpenShift cluster | 3 control plane + en az 2 worker | Her control plane için ayrıca ciddi kaynak gerekir |
Buradan çıkan sonuç net: OpenShift kutudan çok şeyle çıktığı için boşta bile Kubernetes'ten çok daha fazla kaynak tüketiyor. Küçük bir projede bu fark, aylık faturada doğrudan hissediliyor.
Maliyet
Kubernetes yazılım olarak ücretsiz; ödediğiniz şey sunucular ve kurulumu, güncellemesi, izlemesi için harcanan emek. OpenShift'te ise bunlara ek olarak yıllık abonelik ödüyorsunuz. Lisanslama genelde 2 çekirdek (veya 4 vCPU) birimleri üzerinden yapılıyor ve sadece uygulama çalıştıran worker node'lar sayılıyor. Red Hat self-managed OpenShift fiyatlarını açıkça yayınlamıyor; fiyat sürüme (Kubernetes Engine, Container Platform, Platform Plus), destek seviyesine ve anlaşmaya göre değişiyor, bu yüzden internette gördüğünüz rakamları teklif almadan baz almamanızı öneririz. Bulutta yönetilen seçenekler (AWS üzerinde ROSA, Azure Red Hat OpenShift, OpenShift Dedicated) ise saatlik ve kullanıma göre faturalanıyor.
| Maliyet kalemi | Kubernetes | OpenShift |
|---|---|---|
| Yazılım lisansı | Yok | Çekirdek bazlı yıllık abonelik |
| Altyapı | Düşük (küçükten başlanabilir) | Yüksek (minimum gereksinim fazla) |
| Kurulum ve entegrasyon emeği | Yüksek (parçaları siz seçersiniz) | Düşük (herşey hazır gelir) |
| Günlük işletim | Orta–yüksek, ekibe bağlı | Orta, otomatik güncellemeler işi kolaylaştırır |
| Destek | Topluluk yada ücretli danışmanlık | Aboneliğe dahil |
Kısacası OpenShift'in lisans maliyeti, büyük kurumlarda kurulum ve entegrasyona harcanacak mühendislik zamanından tasarruf ederek geri dönebiliyor. Küçük ekiplerde ise bu denklem çoğu zaman Kubernetes'ten yana çıkıyor.
Hangisi Ne Zaman Seçilmeli?
| Durum | Önerimiz | Neden? |
|---|---|---|
| Startup, küçük ekip, sınırlı bütçe | Kubernetes | Ücretsiz, az kaynakla başlar, esnek |
| Öğrenme, test, kişisel proje | Kubernetes (k3s veya hazır cluster) | Hızlı kurulur, ucuz sunucuda çalışır |
| Bankacılık, sağlık gibi regülasyonlu sektör | OpenShift | Sıkı varsayılan güvenlik, sertifikasyonlar, kurumsal destek |
| Zaten Red Hat (RHEL, Ansible) kullanan kurum | OpenShift | Aynı ekosistem ve destek anlaşması |
| Çok sayıda geliştirici ekibi, self-servis platform | OpenShift | Hazır konsol, proje izolasyonu, CI/CD |
| Hibrit veya çoklu bulut, araç seçiminde özgürlük | Kubernetes | Her bulutta yönetilen sürümü var, kilitlenme yok |
Kubernetes'ten OpenShift'e (veya Tersine) Geçiş
İyi haber: OpenShift sertifikalı bir Kubernetes olduğu için Deployment, Service, ConfigMap gibi standart manifestler ve Helm chart'ların çoğu iki tarafta da çalışıyor. Dikkat etmeniz gerekenler:
- Root çalışan imajlar: OpenShift'te SCC'ye takılır; imajı düzeltin yada servis hesabına uygun SCC verin.
- Route ve ImageStream: OpenShift'e özel nesneler. Kubernetes'e dönerken Route yerine Ingress, ImageStream yerine doğrudan imaj adresi kullanın.
- Sabit UID beklentisi: Dosya izinlerini belirli bir kullanıcı ID'sine göre ayarlayan uygulamalar OpenShift'in rastgele UID'si ile sorun çıkarabilir.
Taşınabilir kalmak istiyorsanız standart Kubernetes nesneleriyle (Ingress, Deployment) yazmak en güvenli yol.
VECDC ile Kubernetes ve OpenShift
Hızlıca bir Kubernetes ortamı istiyorsanız Kubernetes Server paketlerimiz aylık $6'dan (K8S-1: 2 Core, 8 GB RAM, 40 GB NVMe) başlıyor ve otomatik kurulumla yaklaşık 5 dakikada kubeconfig dosyanızla hazır oluyor; lokasyonu da sipariş sırasında seçebiliyorsunuz. Cluster'ı kendiniz kurmayı öğrenmek isterseniz Kubernetes sunucusu nasıl kurulur yazımız adım adım anlatıyor.
OKD veya OpenShift denemek istiyorsanız en az 8 vCPU ve 16 GB RAM gerekiyor; bunun için 8 Core ve 32 GB RAM'li VPS-5 yada daha büyük kurulumlar için 24 saat içinde teslim edilen dedicated sunucularımız uygun. Mimari seçimi, kurulum yada geçiş konusunda desteğe ihtiyacınız varsa Kubernetes danışmanlık hizmetimizle yardımcı oluyoruz.
Sık Sorulan Sorular
OpenShift ücretsiz mi?
Red Hat OpenShift ticari bir aboneliktir ve çekirdek bazlı yıllık lisanslanır. Ücretsiz seçenek olarak topluluk sürümü OKD, kendi bilgisayarınızda çalışan OpenShift Local ve süreli kullanılabilen Developer Sandbox vardır; bunlarda Red Hat'in kurumsal desteği yoktur.
OpenShift bir Kubernetes mi?
Evet. OpenShift, sertifikalı bir Kubernetes dağıtımıdır; Kubernetes'in üzerine işletim sistemi, ağ, imaj deposu, web konsolu, CI/CD ve daha sıkı güvenlik ayarları ekler. Standart Kubernetes manifestleri OpenShift'te de çalışır.
kubectl OpenShift'te çalışır mı?
Evet. OpenShift'in oc aracı kubectl komutlarının tamamını destekler, ayrıca kubectl'i doğrudan OpenShift cluster'ına karşı da kullanabilirsiniz. oc bunun üstüne new-project, new-app ve expose gibi OpenShift'e özel kısa yollar ekler.
Küçük bir proje için Kubernetes mi OpenShift mi?
Küçük projeler için çoğu zaman Kubernetes daha mantıklıdır: lisans ücreti yoktur, 2 çekirdek ve birkaç GB RAM ile başlayabilir. OpenShift tek node kurulumda bile en az 8 vCPU ve 16 GB RAM ister ve asıl avantajlarını büyük, regülasyonlu ortamlarda gösterir.
Kısacası
Kubernetes ücretsiz, esnek ve hafif bir çekirdek; OpenShift ise bu çekirdeğin üzerine güvenlik, arayüz, registry, CI/CD ve kurumsal desteği ekleyen ücretli bir platform. Küçük ekipler, startup'lar ve öğrenmek isteyenler için Kubernetes çoğu zaman daha mantıklı; regülasyonlu sektörlerde ve çok sayıda ekibi olan büyük kurumlarda OpenShift'in hazır gelen herşeyi lisans maliyetini karşılayabiliyor. Karar veremediyseniz bize yazın, ihtiyacınıza göre birlikte bakalım.