Kurs
Kubernetes, modern bulut ortamlarında konteynerleştirilmiş uygulamaları yönetmek için varsayılan teknoloji haline geldi. Kuruluşlar mikro hizmetler ve bulut-yerli mimarilere geçerken, Kubernetes dağıtımı otomatikleştirmek, uygulamaları ölçeklendirmek ve yüksek kullanılabilirliği sağlamak için gereken her şeyi sunar.
Kubernetes, büyük ölçekte konteyner yönetiminin karmaşıklığını basitleştiren açık kaynaklı bir konteyner orkestratörüdür. Altyapı detaylarını soyutlayarak geliştiricilerin alttaki sunucuları düşünmek yerine uygulama geliştirmeye odaklanmasını sağlar.
Kubernetes mimarisini anlamak, ölçeklenebilir, dayanıklı ve üretim seviyesinde uygulamalar dağıtıp yönetmek isteyen herkes için gereklidir.
Bugün, temel Kubernetes kavramlarına zaten aşina olan orta seviye öğrenenler için Kubernetes mimarisi hakkında daha derin bir bakış paylaşmak istiyorum.
Kubernetes nedir?
Kubernetes, büyük ölçekte konteynerleştirilmiş uygulamaları orkestre etmek ve yönetmek için tasarlanmış güçlü bir dağıtık sistemdir. Kuruluşların, Düğüm (Node) olarak adlandırılan birden çok fiziksel veya sanal makineye iş yükleri dağıtmasına olanak tanır; böylece uygulamalar erişilebilir, ölçeklenebilir ve hatalara karşı dayanıklı kalır.
Kubernetes’in temel güçlerinden biri, dinamik iş yüklerini verimli biçimde yönetebilmesidir. Konteynerleri düğümler arasında otomatik olarak dağıtarak uygulamaların yatayda ölçeklenmesini sağlar; iş yüklerini mevcut kaynaklara göre dengeler. Bir düğüm aşırı yüklenirse, Kubernetes iş yüklerini sağlıklı komşu düğümlere yeniden zamanlar, kesintiyi en aza indirir ve performansı korur.
Bu teknolojiye yeni başlıyorsanız, başlangıç için şu Kubernetes’e Giriş kursuna göz atın.
Kubernetes’in kısa tarihi
Google, Kubernetes’i dahili konteyner yönetim sistemi Borg’un açık kaynaklı ardılı olarak geliştirdi. 2014’te yayınlanan Kubernetes, hızla konteyner orkestrasyonunda endüstri standardı haline geldi ve geniş bir araç ile bulut sağlayıcı ekosistemi tarafından desteklendi. Günümüzde Cloud Native Computing Foundation (CNCF) tarafından yönetilmekte ve bulut-yerli uygulamaları yönetmek için sektörler genelinde yaygın biçimde benimsenmektedir.
Kubernetes Mimarisi Nedir?
Aşağıdaki diyagram, Kubernetes’in mimarisini görsel olarak temsil eder:

Yazarın görseli. Kubernetes Mimarisi.
- Kontrol Düzlemi bileşenleri küme yönetimini üstlenir ve istenen durumun korunmasını sağlar.
- İşçi Düğümler, Pod’lar içinde konteyner çalıştırarak iş yüklerini yürütür.
- API Sunucusu, kullanıcı etkileşimleri (UI veya CLI aracılığıyla) ile küme arasında köprü görevi görür.
- Ağ ve depolama eklentileri, üretim ortamları için Kubernetes’in yeteneklerini genişletir.
Bu temelle birlikte, şimdi Kubernetes’in küme mimarisindeki her bileşenin ayrıntılı rollerini inceleyebiliriz.
Kubernetes Mimarisi’nin Temel Bileşenleri
Kubernetes iki ana katmandan oluşur: Kontrol Düzlemi ve Düğüm Bileşenleri. Her birini sırayla inceleyelim:
Kontrol Düzlemi
Kubernetes Kontrol Düzlemi, kümenin istenen durumunu korumaktan, iş yüklerini zamanlamaktan ve otomasyonu yönetmekten sorumlu merkezi yönetim katmanıdır. Küme koşullarını sürekli izleyerek ve gerekli ayarlamaları yaparak uygulamaların beklendiği gibi çalışmasını sağlar.

Yazarın görseli. Kontrol Düzlemi bileşenleri.
API Sunucusu (kube-apiserver)
API Sunucusu, Kubernetes kümesine açılan geçittir. CLI (kubectl), UI panoları veya otomasyon araçlarından gelen tüm yönetim isteklerini işler. API Sunucusu çalışmıyorsa küme işlevsel kalır, ancak yöneticiler dağıtım ve yapılandırmalar üzerinde doğrudan denetimi kaybeder.
Denetleyici Yöneticisi (kube-controller-manager)
Kubernetes, denetleyici desenine göre çalışır; denetleyiciler sistemin durumunu izler ve düzeltici eylemler alır. Denetleyici Yöneticisi bu denetleyicileri gözeterek şu temel işlevlerin yerine getirilmesini sağlar:
- Talebe göre iş yüklerini ölçeklendirme.
- Arızalanan düğümleri yönetme ve iş yüklerini yeniden zamanlama.
- İstenen durumları uygulama (ör. bir Deployment’ın her zaman belirtilen sayıda replika çalıştırdığını sağlama).
Zamanlayıcı (kube-scheduler)
Zamanlayıcı, Pod’ları aşağıdaki faktörleri dikkate alarak işçi düğümlere atar:
- Kaynak uygunluğu (CPU, bellek).
- Düğüm yakınlık ve karşı-yakınlık kuralları.
- Aşırı yükü önlemek için Pod dağılımı.
Yeni her Pod için en uygun düğümü seçmek üzere bir filtreleme ve puanlama süreci izler, böylece dengeli kaynak kullanımı sağlanır.
etcd (Dağıtık Anahtar-Değer Mağazası)
etcd, Kubernetes’in tek doğruluk kaynağıdır ve aşağıdakiler dahil tüm küme verilerini saklar:
- Yapılandırma ayarları.
- Gizliler ve kimlik bilgileri.
- İş yüklerinin mevcut ve geçmiş durumları.
etcd’nin ele geçirilmesi küme üzerinde tam yetki sağladığından, güvenceye alınmalı ve performans ile güvenilirliği korumak için yeterli donanım kaynakları verilmelidir.
Bulut Denetleyici Yöneticisi
Bulut tabanlı Kubernetes dağıtımları için Bulut Denetleyici Yöneticisi, kümeyi bulut sağlayıcı hizmetleriyle entegre eder ve şunları yönetir:
- Yük dengeleyicilerin sağlanması.
- Kalıcı depolama birimlerinin tahsisi.
- Altyapının dinamik olarak ölçeklenmesi (ör. düğüm olarak sanal makineler ekleme)
Düğüm bileşenleri
İşçi Düğümler, Kubernetes kümesinin uygulama iş yüklerini çalıştırmaktan sorumlu hesaplama omurgasıdır. Her düğüm bağımsız çalışır; ancak sorunsuz orkestrasyon için kontrol düzlemiyle sürekli iletişim hâlindedir.
Kubernetes, kaynak uygunluğu ve iş yükü taleplerine göre Pod’ları dinamik olarak işçi düğümlere zamanlar. Düğümler fiziksel veya sanal makineler olabilir ve üretime hazır bir küme, yatay ölçekleme ve yüksek kullanılabilirlik için tipik olarak birden çok düğümden oluşur. Her işçi düğüm aşağıdaki temel bileşenleri içerir:
Kubelet: Düğüm aracısı
Kubelet, konteynerlerin yürütülmesini yöneten birincil düğüm düzeyi aracıdır. Şunları yapar:
- Talimat almak için API Sunucusu ile sürekli iletişim kurar.
- Pod’ların, tanımlarında belirtildiği gibi çalıştığından emin olur.
- Konteyner imajlarını çeker ve gereken konteynerları başlatır.
- Konteyner sağlığını izler ve gerekirse yeniden başlatır.
Kubelet olmadan düğüm kümeden kopuk kalır ve zamanlanmış iş yükleri düzgün yönetilemez.
Kube-Proxy: Ağ iletişimi ve yük dengeleme
Kube-Proxy, farklı düğümlerde çalışan servisler arasındaki ağ iletişimini yönetir. Şunları yapar:
- Pod’lar arasında kesintisiz iletişim için ağ kuralları yapılandırır.
- Servis keşfi ve Pod’lar arası ağ iletişimi için yük dengeleme sağlar.
- Trafiğin düğümler ve harici istemciler arasında doğru yönlendirilmesini garanti eder.
Kube-Proxy arızalanırsa, etkilenen düğümdeki Pod’lara erişilemeyebilir ve küme içi ağ trafiği aksayabilir.
Konteyner Çalışma Zamanı: Konteynerları çalıştırma
Konteyner çalışma zamanı, Pod’lar içinde konteynerleştirilmiş uygulamaları çalıştıran yazılımdır. Kubernetes, aşağıdakiler dahil birden fazla çalışma zamanını destekler:
- containerd (en yaygın kullanılan)
- CRI-O (hafif ve Kubernetes-yerli)
- Docker Engine (dockershim üzerinden eski destek)
Çalışma zamanı, cgroups ve namespace’ler gibi teknolojilerle iş yüklerini izole etmek için işletim sistemiyle etkileşime girer ve verimli kaynak kullanımını sağlar.
İşçi Düğümlerin Kontrol Düzlemiyle Etkileşimi
- Düğümler, kontrol düzlemi tarafından verilen bir belirteçle kümeye katılır.
- Bir düğüm kaydedildikten sonra, zamanlayıcı mevcut kaynaklarına göre iş yükleri atar.
- Kontrol düzlemi, düğüm sağlığını sürekli izler ve bir düğüm sağlıksız veya aşırı yüklü hâle gelirse iş yüklerini yeniden zamanlayabilir.
Kubelet, Kube-Proxy ve bir konteyner çalışma zamanını birleştirerek işçi düğümler, Kubernetes uygulamalarını çalıştıran ölçeklenebilir ve dayanıklı bir yürütme katmanı oluşturur.
Eklentilerle Kubernetes’i genişletme
Kubernetes son derece genişletilebilir olacak şekilde tasarlanmıştır; eklentilerle işlevselliğini özelleştirip geliştirebilirsiniz. Kontrol düzlemi ve işçi düğümler çekirdek altyapıyı oluştururken, eklentiler Kubernetes’i daha güçlü ve üretime hazır hâle getiren ağ, depolama, izleme ve otomasyon yetenekleri sağlar.
Ağ çözümleri
Kubernetes ağı, Pod’lar arasında kesintisiz iletişimi etkinleştirmek için CNI (Container Network Interface) uyumlu bir eklenti gerektiren eklenti tabanlı bir yaklaşıma uyar. Yaygın olarak kullanılan bazı ağ çözümleri şunlardır:
- Calico: Güvenli ağ ilkeleri ve yüksek performanslı yönlendirme.
- Cilium: eBPF tabanlı ağ ve güvenlik.
- Flannel: Hafif ve yapılandırması kolay örtüşen (overlay) ağ.
Çoğu yönetilen Kubernetes dağıtımı, önceden yapılandırılmış bir ağ çözümüyle gelir; ancak kendi yönettiğiniz kümelerde bir CNI eklentisinin elle kurulması gerekir.
Depolama çözümleri
Kubernetes, StorageClass’lar aracılığıyla dinamik depolama sağlama imkânı sunar ve iş yüklerinin çeşitli depolama arka uçlarıyla etkileşime girmesine izin verir:
- Yerel depolama: Bir düğümün dosya sistemini kullanır.
- Bulut blok depolama: Bulut sağlayıcılarıyla entegre olur (ör. AWS EBS, Azure Disk, GCP Persistent Disks).
- Dağıtık depolama: Ceph, Longhorn ve Rook gibi çözümler düğümler arasında kalıcı, çoğaltılmış depolama sağlar.
Kubernetes yerleşik bir konteyner kayıt defteri içermediğinden, konteyner imajlarını depolamak ve dağıtmak için harici bir kayıt defteri (ör. Docker Hub, Harbor veya Amazon ECR) kullanmanız gerekir.
İzleme ve gözlemlenebilirlik
Etkili izleme ve günlükleme, Kubernetes iş yüklerini yönetmek için kritiktir. Popüler çözümler şunlardır:
- Prometheus: Metri̇k toplanması ve alarm.
- Grafana: Görselleştirme panoları.
- ELK Yığını (Elasticsearch, Logstash, Kibana): Günlük toplama ve analiz.
Bu araçlar, küme sağlığını izlemeye, sorunları teşhis etmeye ve performansı optimize etmeye yardımcı olur.
Ingress denetleyicileri
Ingress denetleyicileri, küme içindeki uygulamalara harici erişimi yönetir; HTTP/HTTPS trafiğini ve yük dengelemeyi ele alır. Popüler seçenekler şunlardır:
- NGINX Ingress Controller – Web trafiğini yönetmek için yaygın olarak kullanılır.
- Traefik – Yerleşik Let’s Encrypt desteğiyle dinamik yönlendirme.
- HAProxy Ingress – Yüksek performanslı yük dengeleme.
CRD’lerle özel işlevsellik
Kubernetes, Özel Kaynak Tanımları (CRD’ler) aracılığıyla API’sinin genişletilmesine izin verir; böylece özel nesneler ve otomasyon iş akışları oluşturulabilir.
Operatörler ve denetleyiciler şu gibi karmaşık görevleri otomatikleştirebilir:
- Özel bir PostgresDatabaseConnection nesnesi eklendiğinde veritabanı sağlamak.
- Güvenlik ilkelerini dinamik olarak yönetmek.
- Özel metriklere göre uygulamaları ölçeklendirmek.
CRD’lerden yararlanarak Kubernetes, belirli iş ihtiyaçlarına uyum sağlayan, tamamen özelleştirilebilir bir platforma dönüştürülebilir.
Kubernetes Küme Mimarisi
Kubernetes, uygulamaları verimli biçimde tanımlayıp yönetmeye yardımcı olmak için birkaç soyutlama katmanı sunar. Bu soyutlamalar, dağıtık ortamlar genelinde dağıtım, ölçekleme ve yönetimi basitleştirir.
Ana ve işçi düğümler
Bir Kubernetes kümesi iki ana düğüm tipinden oluşur:
- Ana düğümler (Kontrol Düzlemi): Kümenin orkestrasyonu ve yönetiminden sorumludur. Bu düğümler, iş yüklerinin beklendiği gibi dağıtılıp sürdürülmesini sağlamak için API Sunucusu, Zamanlayıcı, Denetleyici Yöneticisi ve etcd’yi çalıştırır.
- İşçi düğümler (Veri Düzlemi): Konteynerları içeren pod’ları çalıştırarak uygulama iş yüklerini yürütür. Her işçi düğüm Kubelet tarafından yönetilir, ağ için Kube-Proxy ile etkileşir ve Docker veya containerd gibi bir konteyner çalışma zamanı çalıştırır.
Birlikte, ana ve işçi düğümler, uygulamaların sorunsuz çalışabildiği kendini iyileştiren ve ölçeklenebilir bir altyapı oluşturur. Konteynerleştirme ve sanallaştırmayı daha iyi anlamak isterseniz, uzmanların hazırladığı şu Containerization and Virtualization eğitim yolunu takip edin.
Pod mimarisi
Kubernetes’in merkezinde, sistemdeki en küçük dağıtılabilir birim olan Pod bulunur. Bir Pod, depolama, ağ ve yapılandırma ayarlarını paylaşan bir veya daha fazla konteynerı kapsüller.
- Tek konteynerlı Pod’lar: En yaygın kurulum; her Pod, bir mikro hizmet çalıştıran tek bir konteyner içerir.
- Çok konteynerlı Pod’lar: Kaynakları paylaşması ve verimli iletişim kurması gereken sıkı bağlı konteynerlar için kullanılır.
Pod’lar geçicidir; gerektiğinde yeniden zamanlanabilir veya yeniden başlatılabilir. Kubernetes, ölçeklenebilirlik ve kullanılabilirliği sağlamak için Pod’ları Deployments, StatefulSet’ler ve DaemonSet’ler aracılığıyla yönetir.

Yazarın görseli. Pod’un Mimarisi.
Ad alanı ve segmentasyon
Ad alanları (Namespace), bir Kubernetes kümesi içinde mantıksal segmentasyona olanak tanır. Şu konularda yardımcı olur:
- Farklı ekipler, projeler veya ortamlar için (ör. dev, staging, production) iş yüklerini izole etmek.
- İzinleri kısıtlamak için rol tabanlı erişim denetimi (RBAC) uygulamak.
- Aşırı kaynak kullanımını önlemek için kaynak kotalarını yönetmek.
İş yüklerini ad alanlarında düzenleyerek, Kubernetes tek bir küme içinde daha iyi güvenlik, kaynak yönetimi ve ölçeklenebilirlik sağlar.
Bu temelle birlikte, bir sonraki bölümde Kubernetes mimarisinin mikro hizmet dağıtımlarını nasıl desteklediğini inceleyebiliriz.
Kubernetes Mikro Hizmet Mimarisi
Kubernetes, mikro hizmetler için idealdir; dağıtık uygulamalar için ölçeklenebilirlik, dayanıklılık ve otomasyon sunar. Şunları mümkün kılar:
- Otomatik ölçekleme: Talebe göre kaynakları ayarlar.
- Kendini iyileştirme: Arızalanan konteynerları algılar ve değiştirir.
- Servis keşfi ve yük dengeleme: Mikro hizmetler arasında verimli iletişim.
- Taşınabilirlik: Bulutta ve şirket içi ortamlarda çalışır.
- Beyan edici yapılandırma: Öngörülebilir dağıtımlar için YAML kullanır.
Uzmanların sık sorduğu konulardan biri, mikro hizmetleriniz için Kubernetes mi yoksa Docker Compose mu kullanmanız gerektiğidir. Sizin için de geçerliyse, daha iyi anlamak adına şu rehberi öneririm: Docker Compose vs Kubernetes.
En iyi uygulamalar
Aşağıda, uyulması gereken bazı en iyi uygulamaları öne çıkardık:
- İş yükü izolasyonu için ad alanları: Daha iyi güvenlik ve kaynak yönetimi için iş yüklerini düzenleyin ve izole edin.
- Trafik yönetimi için Kubernetes Servisleri ve Ingress: Mikro hizmetler ve harici istemciler arasında verimli iletişim sağlayın.
- Sorunsuz performans için Otomatik Ölçekleme ve Aşamalı Güncellemeler: Kullanılabilirliği korumak için Yatay Pod Otomatik Ölçekleyici ve aşamalı dağıtımları kullanın.
- Güvenli yapılandırmalar için ConfigMap’ler ve Secrets: Hassas verileri ve ortam yapılandırmalarını güvenle yönetin.
- Prometheus ve Grafana ile İzleme ve Günlükleme: Sağlam gözlemlenebilirlik araçlarıyla içgörü kazanın ve sorunları etkin biçimde giderin.
Bu uygulamaları izleyerek Kubernetes, mikro hizmet dağıtımını kolaylaştırır; esneklik ve yüksek kullanılabilirlik sağlar.
Kubernetes Mimarisi’nin Kullanım Senaryaları
Kubernetes, uygulamaları ölçeklendirme, yüksek kullanılabilirliği sağlama ve çoklu bulut ortamlarını destekleme yeteneği sayesinde sektörler genelinde yaygın olarak benimsenmiştir. Mimarisi, iş yüklerinin sorunsuz yönetimini mümkün kılar ve modern bulut-yerli uygulamalar için tercih edilen seçenek hâline gelir.
Uygulama ölçeklenebilirliği
Kubernetes, yatay ölçeklendirme ile uygulamaların değişen iş yüklerini verimli biçimde ele almasını sağlar:
- Yatay Pod Otomatik Ölçekleyici (HPA), CPU, bellek veya özel metriklere göre Pod sayısını ayarlar.
- Küme Otomatik Ölçekleyicisi, talebe uyacak şekilde işçi düğümlerini dinamik olarak ekler veya kaldırır.
- Yük dengeleme, trafiğin kopyalar arasında eşit dağıtılmasını sağlar.
Bu özellikler, e-ticaret platformları, yayın/streaming servisleri ve SaaS uygulamaları gibi trafiği dalgalanan uygulamalar için Kubernetes’i ideal kılar.
Yüksek kullanılabilirlik ve hata toleransı
Kubernetes kesintisiz çalışmayı şu yollarla güvence altına alır:
- Hizmet kesintilerini önlemek için iş yüklerini birden çok düğümde çoğaltma.
- Arızalanan konteynerları otomatik olarak yeniden başlatan kendini iyileştirme mekanizmaları.
- Arızalar durumunda dengeyi korumak için kontrol düzleminde lider seçimi.
Bu özellikler, sıfıra yakın kesinti süresi gerektiren kritik uygulamalar için Kubernetes’i uygun kılar.
Hibrit ve çoklu bulut dağıtımları
Kubernetes, altyapı karmaşıklığını soyutlayarak iş yüklerini şirket içi, hibrit ve çoklu bulut ortamlarında dağıtmayı kolaylaştırır:
- AWS, Google Cloud, Azure ve şirket içi kümeler genelinde tutarlı uygulama yönetimi.
- En uygun gecikme ve maliyet verimliliği için bulut sağlayıcıları arasında trafik yönlendirme.
- Çapraz bulut geçişi (failover) kurulumlarıyla felaket kurtarma stratejileri.
Sonuç
Kubernetes, konteyner orkestrasyonunda devrim yarattı ve modern bulut ortamlarında uygulamaları dağıtma, yönetme ve ölçeklendirmede endüstri standardı oldu. Mimarisi, otomatik ölçekleme, yüksek kullanılabilirlik ve bulutlar arası uyumluluk sağlar; bu da mikro hizmetler ve bulut-yerli stratejiler benimseyen kuruluşlar için güçlü bir araç hâline getirir.
Kubernetes mimarisini anlayan geliştiriciler ve BT ekipleri şunları yapabilir:
- Etkin zamanlama ve ölçekleme ile uygulama performansını optimize etmek.
- Kendini iyileştirme ve yüksek kullanılabilirlikle sistem dayanıklılığını artırmak.
- Satıcı bağımlılığından kaçınarak çoklu bulut ve hibrit dağıtımları sorunsuz biçimde sağlamak.
Kontrol düzlemi yönetiminden işçi düğüm yürütmesine ve özelleştirilebilir eklentilere kadar Kubernetes, ölçekli uygulamaları çalıştırmak için gereken esnekliği sunar. Bulut ekosistemi evrilmeye devam ederken Kubernetes ön saflarda yerini koruyor—işletmelerin güvenle yenilik yapmasını sağlıyor.
Kubernetes modern uygulamaları yönetmek için güçlü bir araçtır; ancak ustalaşmak pratik deneyim gerektirir. Öğrenmeye devam etmek için şunlara göz atın:
- Kubernetes’e Giriş kursu: Kubernetes’in temellerini öğrenin; Manifests ve kubectl talimatlarını kullanarak konteynerları dağıtın ve orkestre edin.
- Docker Compose vs Kubernetes: İhtiyaçlarınıza uygun doğru aracı seçin.
- Makine Öğrenimi için Konteynerleştirme: Kubernetes’i AI/ML iş akışlarına uygulayın.
Josep, Avrupa projelerine odaklanan serbest bir Veri Bilimcidir; veri depolama, işleme, ileri analitik ve etkili veri hikâyeleştirme konularında uzmandır.
Eğitmen olarak Navarra Üniversitesi'nin Yüksek Lisans programında Büyük Veri dersleri vermekte ve Medium, KDNuggets ve DataCamp gibi platformlarda yayımladığı makalelerle görüşlerini paylaşmaktadır. Josep ayrıca Databites bülteninde (databites.tech) Veri ve Teknoloji üzerine yazmaktadır.
Katalonya Politeknik Üniversitesi'nden Mühendislik Fiziği lisans derecesine ve Pompeu Fabra Üniversitesi'nden Akıllı Etkileşimli Sistemler yüksek lisans derecesine sahiptir.

