OpenShift mi? Kubernetes mi?

Image for post
Image for post

OpenShift mi? Kubernetes mi? Öncelikle açıklık getirmemiz gereken bir konu var. OpenShift alt yapısında Kubernetes bulunuyor. Red Hat, 2011 yılında kendine ait container cluster’ı ile geliştirmeye başlayıp, sonrasında Kubernetes container cluster yapısını yöneten bir modele dönmüştür. Kısacası OpenShift, Kubernetes container cluster yapısını paas modelinde bizlere sunuyor. Community sürümü için OKD projesine göz atabilirsiniz.

Kubernetes ise bildiğiniz üzere Google tarafından open source edilip CNCF tarafından desteklenen bir Caas(Containers-as-a-service) projesi. Çok sıkı bir topluluğa sahip ve bu sebepten dolayı proje epey hızlı ilerliyor. Container cluster yapılarında bir standart haline geldi diyebiliriz. Şimdi gelelim neden OpenShift kullanayım? veya neden Kubernetes kullanayım? sorularına;

Neden OpenShift kullanmalıyım?

Genelde OpenShift tercih etmek için akıllara gelen ilk sebep Red Hat’in enterprise desteği oluyor. Fakat yukarıda da kısaca bahsettiğim gibi aslında openshift bize paas ortamı sunuyor. Yani içerisinde Kubernetes ve onun eklentileri dışında container registry, router, S2I(source to image), db&app katalogları, monitoring ve CI/CD gibi kubernetes içerisinde hazır olarak bulunmayan servisleride beraberinde getiriyor. Bunlarında dışında güvenlik tarafında ekstra alınmış önlemleri var(Ör: container’lar root yetkisinde çalışmaması gibi). Bu eklentilerin arasında bence en çok dikkat çekenlerden biri S2I(source to image) özelliği. S2I sayesinde uygulamanızın sadece source code url’ni vererek hemen çalışmaya hazır bir container imajı haline getirebiliyorsunuz. Bütün uygulama derleme, imajı oluşturma kısımınlarını kendi içerisinde çözüyor. Hazır katalogları kullanarak(java, ,net core, python, nodejs vb.) uygulamalarınızı çok kolay bir şekilde yayına alabiliyorsunuz. Son olarakta gene bu hazır kataloglar üzerinden mysql, cassandra, postgresql vb. gibi database’leri çok kısa sürede ayağa kaldırabiliyorsunuz.

Bu başarılı eklentilerin yanında esnek olmayan taraflara bir göz atalım,

  • OpenShift’i sadece RHEL veya CoreOS dağıtımları üzerinde, OKD projesini ise ekstra olarak Centos üzerinde çalıştırabilirsiniz.
  • OpenShift genelde public cloud provider’larda saas olarak yok.(Ör: Aws EKS)
  • Sürümün kararlı olması için Kubernetes versiyonlarını geriden takip eder.
  • Default min. kaynak kullanımı Kubernetes’e göre daha yüksektir.

Kısacası devops süreçleri ile çok fazla uğraşmak istemeyip güvenliği biraz daha ön planda tutuyorsanız OpenShift veya OKD sizin için doğru çözüm olabilir.

Neden Kubernetes Kullanmalıyım?

Kubernetes bu karşılaştırma için tam bir native çözüm olarak düşünebilirsiniz. Kubernetes yukarıda da bahsettiğim gibi containers as a service çözümü. Bununla birlikte kendi mimarinize göre ci/cd süreçlerini kurgulayıp yönetebilirsiniz. Yeni versiyon geçişleri daha hızlı ve kolay olacaktır. Ek olarak yeni eklentilere adaptasyonunuz hızlı olacaktır. Troubleshooting tarafında ise daha esneklik kazanıp, daha fazla hareket alanına sahip oluyor olacaksınız.

Birazda k8s’in olumsuz taraflarına değinelim,

  • DevOps süreçlerinizde bir miktar artış olacaktır.
  • Kubernetes bug’ları ile daha sık karşılaşabilirsiniz.
  • Security süreçlerinizde de aynı şekilde bir miktar artış olacaktır.

Kısacası sre ve devops süreçlerine hakimseniz veya bu konuda kaynağınız var ise Kubernetes kullanmanız daha doğru bir çözüm olacaktır.

Written by

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store