Openshift Panelleri ve Neden OpenShift?

Berkay İnam
5 min readJul 5, 2024

--

Bu yazıda OpenShift arayüzündeki panellerden ve avantaj dezavantajlarından bahsedeceğim

OpenShift

OpenShift, Kubernetes tabanlı bir konteyner orkestrasyon platformudur. Red Hat tarafından geliştirilen OpenShift platformunun amacı uygulamaları hızlı bir şekilde geliştirme, dağıtma ve yönetmelerini sağlamaktır. OpenShift, 2011 yılında Red Hat tarafından piyasaya sürüldü ve ilk olarak Platform-as-a-Service (PaaS) çözümlerine odaklandı. 2015 yılında Kubernetes’e geçiş yaptı. Platform Kubernetes’in tüm avantajlarını sunarken, aynı zamanda ek yönetim araçları, güvenlik özellikleri ve geliştirici destek araçları ile birlikte gelir. Biraz OpenShift araçlarından bahsedelim.

Neden OpenShift ?

Avantajlar:
Taşınabilirlik: Farklı bulut sağlayıcıları arasında taşınabilirlik sağlar.​

Kapsamlı araç seti: Geliştiricilere CI/CD, loglama ve izleme gibi araçlar sunar.​ *OpenShift, Jenkins, ArgoCD, Tekton gibi popüler CI/CD araçlarıyla entegre çalışır. ​

Açık kaynak: opensource platform olması, topluluk tarafından desteklenir ve sürekli geliştirilir.​​

Dezavantajlar:
Yüksek maliyet: İşletme maliyetleri yüksek olabilir.​
Kompleksite: Yönetimi ve yapılandırılması karmaşık olabilir.​

Default Dashboard

Ayrıca açık kaynaklı bir platform olması dolayısıyla sürekli geliştirmeler ve iyileştirmeler yapılmaktadır.

Öğrenme eğrisi biraz zor olsa da Geniş topluluk desteği sunar​.

Kubernetes tabanlı olduğu için sistemi öğrenirken sadece OpenShift bilgisi yetersiz kalabilir

CI/CD İşlemlerini bütçeniz ve kaynaklarınız doğrultusunda neredeyse sonsuza uzanan bir güç ile kontrol etme şansı sunar ayrıca geniş platform desteği sayesinde -evet bunu bir aws ci olarak söylüyorum- gücü elinizde hissedebilirsiniz :)

Sayısal veriler ile neden OpenShift

1-2023 yılı itibarıyla, Fortune 500 şirketlerinin %90'ı OpenShift kullanmaktadır.
2-IDC’ye göre, OpenShift, %23 pazar payı ile lider kurumsal Kubernetes platformlarından biridir.
3-Forrester’ın yaptığı bir araştırmaya göre, OpenShift kullanarak geliştirme ve operasyon süreçlerinde %50'ye varan zaman tasarrufu sağlanabilmektedir.
4-Red Hat’in raporlarına göre, OpenShift’in yıllık gelir büyüme oranı %30'dur. Bu veri de doğrudan kullanım ve tercih oranı ile ilgilidir.
Sayısal verilerin kaynakları dokümanın sonunda bulabilirsiniz.

OpenShift Web Konsolu

OpenShift web konsolunda çeşitli paneller vardır: Bu panellerden ilki administrator ve developer modu olmak üzere 2 ana panelden oluşan seçenektir.

Önce administrator panelinden başlayalım.

Administrator:

  • Workloads: Pods, Deployments, DeploymentConfigs, StatefulSets, Secrets, ConfigMaps, CronJobs, Jobs, DaemonSets, ReplicaSets, ReplicationControllers, HorizontalPodAutoscalers ve PodDisruptionBudgets gibi panelleri içerir, Çalışan işler, görevler bu panelde gösterir.
  • Networking: Services, Routes NetworkPolicies ve Ingresses başlıklarını içerir Ve ağ işlemlerinin yönetildiği paneldir.
  • Storage: PersistentVolumeClaims, StorageClasses, VolumeSnapshots ve VolumeSnapshotClasses başlıklarını içerir. Depolama ile ilgili işlemlerdir. Depolama bu panelden yönetilir.
  • Builds: BuildConfigs, Builds ve ImageStreams ’leri yönetir. Build alma işlemleri bu panelde gerçekleşir.
  • Administration: Kullanıcı ve rol yönetimi, proje kotaları gibi yönetimsel işlemleri içerir.

Developer:

  • +Add, Topology, Observe, Search
  • Builds, Helm, Project
  • ConfigMaps, Secrets

Şimdi gelin bunlara da ha detaylı ve yakından bakalım.

Workloads: İşlerin Yoğun Olduğu Yer

Merak etmeyin göründüğünden daha kolay
  • Pods: Bu ekranda uygulamalarınızın çalışan kapsüllerini (pods) görebilirsiniz. Her pod, belirli bir işlevi yerine getiren bir veya daha fazla konteyner içerir.
Pods ekranından bir görüntü
  • Deployments: Bu panelde uygulamalarınızın dağıtım süreçlerini yönetirsiniz. Deployments, uygulamalarınızın belirli bir sayıda pod ile sürekli çalışmasını sağlar.
  • DeploymentConfigs: Deploymentsle benzer şekilde çalışır. DeploymentConfigs, uygulamalarınızı belirli bir konfigürasyona göre dağıtır ve yönetir. Deployments paneline göre farkı daha fazla kişiselleştirme seçeneği sunmasıdır.
  • StatefulSets: Durum bilgisine ihtiyaç duyan uygulamalarınızı yönetmek için bu paneli kullanırsınız. Veritabanları gibi uygulamalar için idealdir.
  • Secrets: Şifreler ve hassas veriler burada saklanır. Bu panel, gizli bilgilerinizi güvenli bir şekilde yönetmenizi sağlar.
  • ConfigMaps: Yapılandırma verilerinizi podlara enjekte etmek için kullanılır. ConfigMaps, uygulamalarınızın konfigürasyonlarını merkezi bir yerden yönetir.
  • CronJobs: Belirli zamanlarda tekrarlayan işler oluşturur ve yönetir. Zamanlanmış görevleriniz burada.
  • Jobs: Tek seferlik işler oluşturmak için bu paneli kullanabilirsiniz. Bir işi tamamlamak için podları çalıştırır.
  • DaemonSets: Her bir nodda bir pod çalıştırmak için kullanılır. Sistem düzeyinde görevler için idealdir.
  • ReplicaSets: Belirli bir sayıda pod’un her zaman çalışmasını sağlar. Yük dengeleme ve yüksek erişilebilirlik sağlar.
  • ReplicationControllers: Pods’un belirli bir sayıda olmasını sağlar ve denetler. Benzer işlevi olan ReplicaSets ile birlikte çalışır.
  • HorizontalPodAutoscalers: Pods sayısını otomatik olarak artırır veya azaltır. Yük durumuna göre ölçeklenebilirlik sağlar.
  • PodDisruptionBudgets: Belirli bir sayıda pod’un her zaman çalışır durumda olmasını garanti eder. Planlı kesintilere karşı koruma sağlar.

Networking: Ağın Kalbi :D

  • Services: Uygulamalarınızın diğer uygulamalarla ve kullanıcılarla nasıl iletişim kuracağını burada belirleyebilirsiniz. Servisler, pod’lar arasında ağ trafiğini yönetir.
  • Routes: Uygulamalarınızın dış dünyaya açılan kapılarıdır. Bu panelde, kullanıcıların uygulamalarınıza nasıl erişeceğini ayarlarsınız.
  • NetworkPolicies: Ağ trafiğini belirli kurallara göre yönetir. Güvenlik ve erişim kontrolü sağlar.
  • Ingresses: Dış dünyadan gelen trafiği yönlendirir. İnternetten uygulamalarınıza gelen istekleri burada yönetirsiniz.

Storage: Depolamanın Krallığı

  • PersistentVolumeClaims: Uygulamalarınız için kalıcı depolama alanı taleplerini yönetir. PVC’ler, verilerinizin kalıcı olmasını sağlar.

PVC’Ler kalıcı depolama hizmeti sağlar demiştik. Deployments larınızın yaml configurasyonuna yazacağınız persistentVolumeClaim: parametresi ile bir pvc tanımlayıp verilerinizi yerleştirebilirsiniz. Aynı anda 1–3–5–10 sayısız Deployment tarafından tek bir ortak PVC kullanılabilir hatta deploymentsleriniz silinse bile PVC deki veriler siz PVC yi silene kadar sistemde kalır.

  • StorageClasses: Depolama kaynaklarınızın dinamik olarak sağlanmasını yönetir. Farklı depolama ihtiyaçlarınız için sınıflar oluşturabilirsiniz.
  • VolumeSnapshots: Depolama birimlerinin anlık görüntülerini alır. Verilerinizin yedeklerini ve geri yüklemelerini buradan yapabilirsiniz.
  • VolumeSnapshotClasses: Anlık görüntü işlemlerini yönetmek için kullanılan sınıflardır. Depolama snapshot’larının özelliklerini burada belirlersiniz.

Builds: Yapının Temelleri

  • BuildConfigs: Uygulamalarınızın nasıl inşa edileceğini tanımlar. Yapı sürecinin adımlarını buradan belirleyebilirsiniz.
  • Builds: Uygulama kodlarınızın inşa edildiği süreçleri yönetir. Kendi inşa işlemlerini burada görebilirsiniz.
  • ImageStreams: Konteyner imajlarını yönetir ve izler. Uygulamalarınız için gerekli imajları burada bulundurabilirsiniz.

Administration: Yönetimin Gücü

  • Users: Kullanıcı hesaplarını ve erişim yetkilerini yönetir. Kimlerin sisteme erişebileceğini buradan belirleyebilirsiniz.
  • Roles: Kullanıcıların hangi yetkilere sahip olacağını belirler. Farklı roller ve izinler tanımlayabilirsiniz.
  • Quotas: Proje kotalarını yönetir. Kaynakların ne kadar kullanılabileceğini buradan kontrol edebilirsiniz.

Çok fazla panel olduğu için hepsini kullanmak henüz nasip olmadı ama genel olarak Kubernetes bilginiz dahilinde panellerden birçoğuna hakim oluyorsunuz.

Sayısal verilerin kaynakları : 1 234.

Bu yazıda genel olarak Openshift panellerinden bahsettik.
Daha detaylı projelerde görüşmek üzere. Hoşçakalın

--

--

Berkay İnam

22 Yaşındayım, kedileri ve docker ı severim. Tesekkürler