Uygulamalar artık tek bir sunucuda çalışan basit yazılımlar olmaktan çıktı; mikroservisler, container’lar, otomatik ölçekleme ve kesintisiz dağıtım standart hâline geldi. Kubernetes Nedir sorusu da tam burada önem kazanıyor: Dağınık çalışan container tabanlı uygulamaları düzenli, güvenli ve yönetilebilir hâle getiren güçlü bir orkestrasyon platformundan söz ediyoruz.

İçindekiler

Kubernetes Nedir Ne İşe Yarar

Kubernetes, container içinde çalışan uygulamaları otomatik olarak dağıtan, ölçekleyen, izleyen ve yöneten açık kaynaklı bir container orkestrasyon platformudur. Tek tek container çalıştırmaktan çok daha fazlasını yapar; uygulamanın sağlıklı kalmasını, trafik almasını ve gerektiğinde yeniden başlatılmasını sağlar.

Kubernetes özellikle mikroservis mimarilerinde kullanılır. Bir uygulama; ödeme, kullanıcı yönetimi, bildirim, arama ve raporlama gibi parçalara ayrıldığında bu servislerin nerede çalışacağı, nasıl ölçekleneceği ve nasıl güncelleneceği karmaşıklaşır.

Kubernetes bu karmaşıklığı yönetmek için şu görevleri üstlenir:

Netlen Platinum Sunucu Kampanyası
  • Container’ları uygun sunuculara yerleştirir.
  • Çöken servisleri yeniden başlatır.
  • Trafiği sağlıklı instance’lara yönlendirir.
  • Yeni sürümleri kesintisiz dağıtmaya yardımcı olur.
  • Kaynak kullanımını daha verimli hâle getirir.

İpucu: Kubernetes’i “container çalıştıran araç” olarak değil, container tabanlı sistemleri ayakta tutan yönetim katmanı olarak düşünmek daha doğru olur.

Kubernetes Ne İse Yarar

Kubernetes, uygulamaların üretim ortamında güvenilir şekilde çalışmasına yarar. Geliştirici tarafında yazılımın paketlenmesini kolaylaştırırken, operasyon tarafında ölçekleme, hata toleransı, servis keşfi ve dağıtım süreçlerini standartlaştırır.

Aşağıdaki tablo Kubernetes’in temel kullanım alanlarını daha net gösterir:

Kullanım AlanıKubernetes’in Sağladığı Fayda
Otomatik ölçeklemeTrafik arttığında uygulama kopyalarını artırabilir
Hata toleransıÇöken pod veya container’ları yeniden başlatabilir
Servis keşfiServislerin birbirini sabit adreslerle bulmasını sağlar
Dağıtım yönetimiYeni sürümleri kontrollü şekilde yayına alır
Kaynak optimizasyonuCPU ve RAM kullanımını daha verimli planlar

Kubernetes özellikle yoğun trafik alan web uygulamaları, SaaS platformları, API servisleri, finansal sistemler ve bulut tabanlı ürünlerde tercih edilir.

Kubernetes Nedir Nasıl Çalışır

Kubernetes, bir cluster üzerinde çalışan node’ları ve bu node’lar içindeki pod’ları yöneterek çalışır. Kullanıcı istenen durumu tanımlar; Kubernetes de sistemi sürekli izleyerek mevcut durumu bu hedefe yaklaştırmaya çalışır.

Temel çalışma mantığı “desired state” yani istenen durum prensibine dayanır. Örneğin “bu uygulamadan 5 kopya çalışsın” derseniz Kubernetes gerçekten 5 kopyanın çalışıp çalışmadığını kontrol eder. Bir kopya çökerse yenisini oluşturur.

Kubernetes Bileşenleri

BileşenGörevi
ClusterKubernetes’in yönettiği tüm altyapı
NodeUygulamaların çalıştığı sunucu veya sanal makine
PodContainer’ların çalıştığı en küçük Kubernetes birimi
DeploymentUygulama sürümü ve kopya sayısını yönetir
ServicePod’lara sabit erişim noktası sağlar
Control PlaneCluster’ın karar ve yönetim katmanıdır

Kubernetes’te uygulama genellikle YAML dosyalarıyla tanımlanır. Bu dosyalarda image, port, kaynak limiti, replica sayısı ve environment değişkenleri gibi bilgiler yer alır.

Kubernetes Neden Kullanılır

Kubernetes, container sayısı arttığında manuel yönetimin sürdürülemez hâle gelmesi nedeniyle kullanılır. Birkaç container’ı elle yönetmek kolay olabilir; fakat onlarca servis, yüzlerce pod ve farklı ortamlar devreye girdiğinde otomasyon gerekir.

Kubernetes kullanmanın başlıca nedenleri şunlardır:

  1. Kesintisiz dağıtım: Yeni sürümler kontrollü biçimde yayına alınabilir.
  2. Ölçeklenebilirlik: Trafiğe göre uygulama kopyaları artırılıp azaltılabilir.
  3. Taşınabilirlik: Aynı yapı bulut, şirket içi sunucu veya hibrit ortamda çalışabilir.
  4. Standart operasyon: Geliştirme, test ve canlı ortamlar daha tutarlı yönetilir.
  5. Kendi kendini iyileştirme: Sağlıksız pod’lar otomatik yeniden oluşturulur.
Kubernetes OlmadanKubernetes İle
Container takibi manuel yapılırPod ve servisler merkezi yönetilir
Ölçekleme elle planlanırOtomatik ölçekleme yapılabilir
Hata müdahalesi gecikebilirSağlıksız servisler izlenir
Dağıtım riski yüksektirRolling update ve rollback kullanılabilir

Docker ve Kubernetes Nedir?

Docker, uygulamaları container olarak paketlemek ve çalıştırmak için kullanılır; Kubernetes ise bu container’ları çoklu sunucu ortamında yönetir. Yani Docker daha çok paketleme ve çalıştırma tarafında, Kubernetes ise orkestrasyon tarafında konumlanır.

Bu iki teknoloji rakip gibi anlatılsa da pratikte farklı ihtiyaçlara cevap verir. Docker ile bir uygulamayı container image hâline getirebilirsiniz. Kubernetes ise bu image’dan kaç kopya çalışacağını, hangi node’da konumlanacağını ve trafiğin nasıl yönleneceğini belirler.

ÖzellikDockerKubernetes
Ana görevContainer oluşturma ve çalıştırmaContainer orkestrasyonu
Kullanım ölçeğiTek makine veya küçük ortamlarÇoklu sunucu ve üretim ortamları
ÖlçeklemeSınırlı ve manuel olabilirOtomatik ve merkezi yönetilebilir
Servis yönetimiTemel düzeydeGelişmiş servis keşfi ve load balancing
Öğrenme eğrisiDaha kolayDaha karmaşık

Docker Nedir

Docker, bir uygulamayı çalışması için gereken bağımlılıklarla birlikte paketleyen container platformudur. Kod, runtime, kütüphaneler ve yapılandırmalar tek bir image içinde taşınabilir hâle gelir.

Docker sayesinde “benim bilgisayarımda çalışıyordu” problemi azalır. Çünkü uygulama aynı image ile geliştirici bilgisayarında, test ortamında ve sunucuda benzer şekilde çalıştırılabilir.

Docker özellikle şu işler için kullanılır:

  • Geliştirme ortamlarını standartlaştırma
  • Mikroservisleri izole çalıştırma
  • CI/CD pipeline süreçlerini hızlandırma
  • Uygulamaları taşınabilir hâle getirme

Container Nedir

Container, bir uygulamanın kodunu ve çalışması için gereken bağımlılıkları izole bir ortamda paketleyen hafif sanallaştırma birimidir. Sanal makineden farklı olarak tam bir işletim sistemi taşımaz; host işletim sistemi çekirdeğini paylaşır.

Bu yüzden container’lar hızlı başlar, daha az kaynak tüketir ve taşınabilirlik sağlar. Ancak güvenlik, ağ yapılandırması ve kalıcı veri yönetimi doğru tasarlanmalıdır.

KriterContainerSanal Makine
Başlama süresiSaniyeler içindeDaha yavaş
Kaynak kullanımıDaha hafifDaha yüksek
İzolasyonProcess düzeyindeİşletim sistemi düzeyinde
TaşınabilirlikYüksekOrta
Kullanım alanıMikroservis, CI/CDTam sistem izolasyonu

Kubernetes Pod Nedir

Kubernetes pod, Kubernetes’te çalıştırılabilen en küçük dağıtım birimidir. Bir pod genellikle tek bir container içerir; ancak aynı ağ ve depolama alanını paylaşması gereken birden fazla container da aynı pod içinde çalışabilir.

Pod’lar kalıcı varlıklar gibi düşünülmemelidir. Bir pod silinebilir, yeniden oluşturulabilir veya başka bir node üzerinde çalıştırılabilir. Bu nedenle uygulama tasarımında pod’ların geçici olduğu kabul edilmelidir.

Pod Kullanımında Dikkat Edilecekler

  • Kalıcı veri pod içine yazılmamalı, volume kullanılmalıdır.
  • CPU ve RAM limitleri tanımlanmalıdır.
  • Health check ayarları yapılmalıdır.
  • Log’lar merkezi bir sisteme aktarılmalıdır.
  • Tek pod’a bağımlı mimariden kaçınılmalıdır.

Uyarı: Pod IP’leri değişebilir. Bu nedenle pod’lara doğrudan bağlanmak yerine Kubernetes Service kullanmak daha sağlıklı bir yaklaşımdır.

Kubernetes Kurulumu

Kubernetes kurulumu, kullanım amacına göre yerel geliştirme ortamında, şirket içi sunucularda veya yönetilen bulut servislerinde yapılabilir. Öğrenme için Minikube veya Kind yeterliyken, üretim ortamında güvenlik, yedeklilik ve gözlemlenebilirlik planlanmalıdır.

Basit bir öğrenme senaryosunda tipik adımlar şöyledir:

  1. Container runtime hazırlanır.
  2. Kubernetes aracı seçilir: Minikube, Kind veya kubeadm.
  3. kubectl komut satırı aracı kurulur.
  4. Cluster başlatılır.
  5. Örnek deployment ve service oluşturulur.
  6. Log, monitoring ve network kontrolleri yapılır.

Kurulum Seçenekleri

SeçenekKimler İçin Uygun?Not
MinikubeÖğrenme ve lokal testTek makinede hızlı başlangıç
KindCI testleri ve lokal clusterDocker container içinde cluster
kubeadmKendi cluster’ını kurmak isteyenlerDaha fazla operasyon bilgisi ister
Yönetilen KubernetesÜretim ortamlarıOperasyon yükünü azaltır

Üretim ortamında Kubernetes kurmak yalnızca “cluster ayağa kaldırmak” değildir. Ağ politikaları, ingress, TLS, secret yönetimi, yedekleme, izleme ve güncelleme stratejisi de birlikte düşünülmelidir.

Kubernetes Yönetimi Nedir?

Kubernetes yönetimi, cluster’ın güvenli, güncel, performanslı ve kesintisiz çalışmasını sağlama sürecidir. Sadece pod’ların çalışıp çalışmadığını izlemek yeterli değildir; kaynak kullanımı, sürüm yönetimi, erişim yetkileri ve güvenlik politikaları da yönetimin parçasıdır.

Kubernetes yönetiminde öne çıkan konular:

  • Cluster güncellemeleri
  • Node kapasite planlaması
  • Deployment ve rollback süreçleri
  • Log ve metrik izleme
  • Secret ve config yönetimi
  • Network policy yapılandırması
  • Backup ve disaster recovery planı

İyi yönetilmeyen Kubernetes ortamları beklenmedik maliyet, güvenlik açığı ve performans sorunları oluşturabilir. Bu nedenle küçük projelerde bile standart manifest yapısı, kaynak limitleri ve gözlemlenebilirlik araçları erken aşamada kurulmalıdır.

Kubernetes Ücretli Mi?

Kubernetes’in kendisi açık kaynaklı ve ücretsizdir. Ancak Kubernetes çalıştırmak için kullanılan sunucu, bulut altyapısı, depolama, ağ trafiği, izleme araçları ve yönetilen servisler ücretli olabilir.

Yani “Kubernetes ücretsiz mi?” sorusunun doğru cevabı şudur: Yazılım olarak ücretsizdir, işletim maliyeti vardır.

Maliyet KalemiAçıklama
Sunucu / NodeCluster’ın çalıştığı fiziksel veya sanal makineler
DepolamaVolume, disk ve yedekleme maliyetleri
Ağ trafiğiLoad balancer ve veri transfer ücretleri
Yönetilen servisBulut sağlayıcının operasyon hizmet bedeli
İzleme araçlarıLog, metrik ve alarm sistemleri

Küçük bir test ortamı düşük maliyetli olabilir. Ancak üretim ortamında yüksek erişilebilirlik, güvenlik ve izleme ihtiyaçları maliyeti artırır.

Kubernetes Kimin?

Kubernetes ilk olarak Google tarafından geliştirilmiş, daha sonra Cloud Native Computing Foundation’a yani CNCF’ye bağışlanmıştır. Bugün açık kaynak topluluğu, CNCF ekosistemi ve birçok teknoloji şirketinin katkısıyla geliştirilmeye devam eder.

Kubernetes’in kökeni Google’ın büyük ölçekli sistem yönetimi deneyimine dayanır. Ancak bugünkü Kubernetes tek bir şirketin kapalı ürünü değildir; açık standartlara dayalı, topluluk tarafından geliştirilen bir projedir.

Bu yapı, Kubernetes’in farklı bulut sağlayıcılarında ve şirket içi altyapılarda yaygın kullanılmasının ana nedenlerinden biridir.

Openshift Nedir

OpenShift, Kubernetes üzerine kurulu kurumsal bir container platformudur. Kubernetes’in sunduğu orkestrasyon yeteneklerini geliştirici deneyimi, güvenlik, imaj yönetimi, CI/CD entegrasyonu ve kurumsal yönetim araçlarıyla genişletir.

OpenShift genellikle daha standart, destekli ve politika odaklı Kubernetes deneyimi isteyen kurumlar tarafından tercih edilir. Kubernetes’i doğrudan kullanmak daha esnek olabilir; OpenShift ise hazır gelen araçlarla operasyon yükünü azaltabilir.

KriterKubernetesOpenShift
YapıAçık kaynak orkestrasyon platformuKubernetes tabanlı kurumsal platform
EsneklikYüksekDaha kural ve politika odaklı
KurulumSeçime göre değişirDaha bütünleşik yapı
GüvenlikKullanıcı yapılandırmasına bağlıVarsayılan güvenlik yaklaşımı daha sıkıdır
Kullanıcı profiliGeliştirici ve platform ekipleriKurumsal platform ekipleri

Devops Nedir

DevOps, yazılım geliştirme ve operasyon ekiplerinin daha hızlı, güvenilir ve otomatik süreçlerle birlikte çalışmasını hedefleyen kültür, süreç ve araç yaklaşımıdır. Kubernetes, DevOps pratiklerini destekleyen önemli teknolojilerden biridir.

DevOps yalnızca araç kullanmak değildir. CI/CD, izleme, otomasyon, geri bildirim döngüsü, altyapının kodla yönetilmesi ve ekipler arası sorumluluk paylaşımı bu yaklaşımın parçalarıdır.

Kubernetes DevOps süreçlerinde şu alanlarda değer sağlar:

  • Otomatik deployment
  • Ortam tutarlılığı
  • Rollback kolaylığı
  • Infrastructure as Code uyumu
  • Mikroservis yönetimi
  • Gözlemlenebilirlik entegrasyonları

Kubernetes Nedir Medium

“Kubernetes nedir Medium” araması genellikle konuyu daha sade, deneyim odaklı veya örneklerle anlatan yazılara ulaşmak isteyen kullanıcılar tarafından yapılır. Medium’daki içerikler başlangıç için faydalı olabilir; ancak üretim ortamı kararlarında resmî dokümantasyon ve güncel teknik kaynaklar da kontrol edilmelidir.

Kubernetes öğrenirken yalnızca teorik makale okumak yeterli değildir. Küçük bir lokal cluster kurup deployment, service, ingress ve configmap gibi temel nesneleri denemek öğrenmeyi hızlandırır.

Başlamak için iyi bir öğrenme sırası:

  1. Docker ve container mantığını öğrenin.
  2. Pod, deployment ve service kavramlarını anlayın.
  3. Lokal Kubernetes ortamı kurun.
  4. Basit bir uygulamayı deploy edin.
  5. Log, scaling ve rollback işlemlerini deneyin.

Sıkça Sorulan Sorular

Kubernetes Nedir?

Kubernetes, container içinde çalışan uygulamaları yönetmek için kullanılan açık kaynaklı bir orkestrasyon platformudur. Uygulamaların hangi sunucuda çalışacağını, kaç kopya ile hizmet vereceğini, çöken parçaların nasıl yeniden başlatılacağını ve trafiğin nasıl yönlendirileceğini yönetir. Özellikle mikroservis mimarilerinde, çok sayıda container’ın güvenilir şekilde çalışması için kullanılır.

Kubernetes Ne İşe Yarar?

Kubernetes; dağıtım, ölçekleme, servis keşfi, yük dengeleme ve hata sonrası iyileştirme gibi operasyonel işleri otomatikleştirir. Trafik arttığında uygulama kopyalarını artırabilir, sorunlu pod’ları yeniden oluşturabilir ve yeni sürümleri kontrollü şekilde yayına alabilir. Bu sayede ekipler tek tek sunucu yönetmek yerine uygulamanın istenen durumda kalmasına odaklanır.

Kubernetes Öğrenmek Zor Mu?

Kubernetes başlangıçta zor görünebilir çünkü pod, deployment, service, ingress, configmap ve volume gibi birçok kavram içerir. Ancak Docker ve temel ağ bilgisi olan biri için öğrenme süreci daha yönetilebilirdir. En iyi yöntem küçük bir lokal cluster kurup gerçek komutlarla deneme yapmaktır. Teoriyi uygulamayla desteklemek öğrenme süresini ciddi şekilde kısaltır.

Docker Olmadan Kubernetes Kullanılır Mı?

Kubernetes, Docker dışında farklı container runtime’ları ile de çalışabilir. Güncel Kubernetes mimarisinde containerd ve CRI-O gibi runtime seçenekleri yaygın olarak kullanılır. Docker hâlâ geliştirme ve image oluşturma tarafında çok kullanışlıdır; ancak Kubernetes’in çalışması için Docker’ın doğrudan runtime olarak bulunması şart değildir.

Kubernetes Küçük Projeler İçin Gerekli Mi?

Her küçük proje Kubernetes’e ihtiyaç duymaz. Tek sunucuda çalışan basit bir web sitesi veya düşük trafikli uygulama için Kubernetes fazla karmaşık olabilir. Ancak proje mikroservis mimarisine sahipse, sık deployment yapılıyorsa, ölçekleme ihtiyacı varsa veya ekip üretim standartlarını erken kurmak istiyorsa Kubernetes değerlendirilebilir.

Kubernetes Üretim Ortamında Güvenli Mi?

Kubernetes doğru yapılandırıldığında üretim ortamında güvenli şekilde kullanılabilir. Ancak varsayılan kurulum her zaman yeterli güvenlik sağlamaz. RBAC, network policy, secret yönetimi, image tarama, pod security ayarları ve düzenli güncelleme süreçleri uygulanmalıdır. Güvenlik Kubernetes’in otomatik sunduğu tek bir özellik değil, dikkatli yönetilmesi gereken sürekli bir süreçtir.

Kubernetes İçin Hangi Bilgiler Gerekir?

Kubernetes öğrenmek için temel Linux, ağ, Docker, YAML, HTTP, container image ve komut satırı bilgisi faydalıdır. İleri seviyede ise CI/CD, monitoring, logging, security, ingress controller ve storage konuları gerekir. Başlangıçta tüm konuları bilmek şart değildir; pod, deployment ve service kavramlarıyla başlamak yeterlidir.

Kubernetes ve OpenShift Arasındaki Fark Nedir?

Kubernetes açık kaynaklı container orkestrasyon platformudur. OpenShift ise Kubernetes üzerine kurulu, kurumsal özellikler ekleyen daha bütünleşik bir platformdur. OpenShift; güvenlik politikaları, geliştirici araçları, imaj yönetimi ve destekli yapı açısından daha hazır bir deneyim sunar. Kubernetes daha esnek, OpenShift ise daha standart ve kurumsal yönetim odaklıdır.

Kubernetes Kurulumu İçin En Kolay Yol Nedir?

Öğrenme amacıyla en kolay yol Minikube veya Kind kullanmaktır. Bu araçlar lokal bilgisayarda küçük bir Kubernetes cluster’ı oluşturmayı sağlar. Üretim ortamında ise kubeadm veya yönetilen Kubernetes servisleri tercih edilebilir. Yeni başlayanlar önce lokal kurulumla pod, deployment ve service denemeleri yapmalıdır.

Kubernetes Maliyeti Nasıl Hesaplanır?

Kubernetes’in kendisi ücretsizdir; maliyet altyapıdan gelir. Node sayısı, CPU ve RAM kapasitesi, disk kullanımı, yedekleme, load balancer, ağ trafiği ve izleme araçları toplam maliyeti belirler. Yönetilen Kubernetes servislerinde operasyon kolaylığı sağlanır ancak sağlayıcının servis ücretleri de hesaba katılmalıdır. Gerçek maliyet için kaynak limitleri ve autoscaling politikaları dikkatle planlanmalıdır.

İlgili İçerikler

  • Docker Nedir? Container Mantığı Nasıl Çalışır?
  • DevOps Nedir? CI/CD Süreçleri Nasıl Kurulur?
  • Mikroservis Mimarisi Nedir?
  • Container Güvenliği İçin Temel Kontrol Listesi
  • Kubernetes Deployment ve Service Kullanımı

Kubernetes, doğru senaryoda kullanıldığında uygulama yönetimini ciddi biçimde kolaylaştırır; yanlış senaryoda ise gereksiz operasyon yükü doğurabilir. Eğer amacınız ölçeklenebilir, izlenebilir ve standart bir container altyapısı kurmaksa Kubernetes’i önce küçük bir test ortamında deneyip ihtiyaçlarınıza göre planlamak en sağlıklı adımdır.

Netlen'i Google'da Takip Edin

En güncel rehberlerimize, duyurularımıza ve teknik içeriklerimize Google üzerinden öncelikli ulaşmak için Netlen'i tercih ettiğiniz kaynaklar arasına ekleyin.

GoogleGoogle'da Tercih edilenkaynak olarak ekleyin
Kubernetes Nedir
Kubernetes Kurulumu
Kubernetes Pod Nedir

Bu yazıyı paylaşın

Cenk ŞEKERCİ

Yazar Hakkında

Cenk ŞEKERCİ

Operasyon Yöneticisi

Bulut teknolojileri, ağ altyapıları ve veri merkezi operasyonları üzerine çalışıyorum. Öğrendiğim yeni teknolojileri ve sahada karşılaştığım gerçek deneyimleri anlaşılır şekilde paylaşmayı seviyorum.

Yorumlar

Bu yazı hakkında okuyucu yorumları