TR/EN
Blog

Kubernetes vs OpenShift: Farkları Nedir, Hangisi Seçilmeli?

Yayın tarihi: · 11 dk okuma

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

KriterKubernetesOpenShift
LisansAçık kaynak, ücretsizTicari abonelik (OKD ücretsiz)
Kurulumkubeadm, k3s, RKE2 gibi birçok yolKendi installer'ı, daha katı ve standart
İşletim sistemiHemen hemen her Linux dağıtımıControl plane için RHCOS zorunlu
Web arayüzüDashboard ayrıca kurulurGelişmiş web konsolu hazır
Dışarıya açmaIngress / Gateway API (controller ayrıca kurulur)Route hazır, Ingress de desteklenir
İmaj deposuYok, ayrıca kurulurDahili registry hazır
CI/CDKendiniz seçip kurarsınızPipelines ve GitOps operatörleri hazır
Varsayılan güvenlikDaha esnek, ayar sizdeDaha sıkı (SCC, root kapalı)
GüncellemeElle veya araçla, sürüm sürümKonsoldan tek tık, işletim sistemi dahil
DestekTopluluk yada üçüncü partiRed 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
Pratik ipucu: İmajlarınızı baştan root olmayan bir kullanıcıyla çalışacak şekilde hazırlarsanız (ör. 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 tipiMinimum kaynakNot
Tek node Kubernetes (k3s, kubeadm)2 çekirdek, 2–4 GB RAMKüçük projeler ve test için yeterli
Çok node'lu Kubernetes1+ control plane (2 çekirdek / 2 GB+), işinize göre workerYüksek erişilebilirlik için 3 control plane
Single Node OpenShift (SNO)8 vCPU, 16 GB RAM, 120 GB diskPlatform servisleri kaynağın önemli kısmını kullanır
Standart OpenShift cluster3 control plane + en az 2 workerHer 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 kalemiKubernetesOpenShift
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ğiYüksek (parçaları siz seçersiniz)Düşük (herşey hazır gelir)
Günlük işletimOrta–yüksek, ekibe bağlıOrta, otomatik güncellemeler işi kolaylaştırır
DestekTopluluk yada ücretli danışmanlıkAboneliğ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ÖnerimizNeden?
Startup, küçük ekip, sınırlı bütçeKubernetesÜcretsiz, az kaynakla başlar, esnek
Öğrenme, test, kişisel projeKubernetes (k3s veya hazır cluster)Hızlı kurulur, ucuz sunucuda çalışır
Bankacılık, sağlık gibi regülasyonlu sektörOpenShiftSıkı varsayılan güvenlik, sertifikasyonlar, kurumsal destek
Zaten Red Hat (RHEL, Ansible) kullanan kurumOpenShiftAynı ekosistem ve destek anlaşması
Çok sayıda geliştirici ekibi, self-servis platformOpenShiftHazır konsol, proje izolasyonu, CI/CD
Hibrit veya çoklu bulut, araç seçiminde özgürlükKubernetesHer 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.

Sanal Sunucunuz 5 Dakikada Hazır

Adanmış kaynaklı NVMe sanal sunucu paketleri aylık $6'dan başlıyor.

Paketleri İncele →