Takip et

EKS vs AKS vs GKE: Canlı Ortam Tecrübeleriyle Karşılaştırma

Hangi Kubernetes servisi canlı ortamınız için en iyisi? EKS, AKS ve GKE’yi gerçek üretim tecrübelerimizle, tüm artı ve eksileriyle karşılaştırıyoruz.

EKS vs AKS vs GKE: Canlı Ortam Tecrübeleriyle Karşılaştırma

Hangi Kubernetes servisi canlı ortamınız için en iyisi? EKS, AKS ve GKE’yi gerçek üretim tecrübelerimizle, tüm artı ve eksileriyle karşılaştırıyoruz.

Canlı ortamda (production) Kubernetes yönetmek, yerel bilgisayarınızda test çalıştırmaya hiç benzemez. Gece yarısı gelen acil durum alarmları, beklenmedik bir şekilde çöken işçi düğümler (worker nodes) veya ay sonunda karşınıza çıkan astronomik faturalar… Bu zorluklar, her sistem yöneticisinin ve DevOps mühendisinin korkulu rüyasıdır. Günümüzde bulut sağlayıcıları, bu karmaşıklığı azaltmak için kendi yönettikleri Kubernetes servislerini sunuyor. Ancak, AWS (Amazon Web Services), Microsoft Azure ve Google Cloud Platform (GCP) arasından hangisini seçeceğiniz kararı, projenizin geleceğini doğrudan etkiler.

Bu makalede, sektörün üç devi olan Amazon EKS (Elastic Kubernetes Service), Azure AKS (Azure Kubernetes Service) ve Google GKE (Google Kubernetes Engine) servislerini masaya yatırıyoruz. Sadece teorik belgelerdeki bilgileri değil, her üç platformu da yıllarca canlı ortamda çalıştırmış bir ekibin gerçek deneyimlerini paylaşacağız. Hangi platformun hangi durumlarda can kurtardığını, hangisinin ise bütçenizi zorlayabileceğini tüm şeffaflığıyla öğreneceksiniz.

Kubernetes Dünyasına Giriş: EKS, AKS ve GKE Nedir?

Bulut bilişim dünyasında Kubernetes, konteynerleştirilmiş uygulamaları ölçeklemek ve yönetmek için fiili standart haline geldi. Ancak, sıfırdan bir Kubernetes kümesi (cluster) kurmak ve bunun kontrol düzlemini (control plane) ayakta tutmak oldukça zahmetlidir. İşte bu noktada devreye yönetilen Kubernetes servisleri giriyor. Bu servisler, ana sunucuların yönetimini üstlenerek sizin sadece uygulamalarınıza odaklanmanızı sağlar.

Amazon EKS (Elastic Kubernetes Service): AWS ekosisteminin kalbinde yer alan EKS, yüksek erişilebilirlik ve güvenlik odaklı bir yapı sunar. AWS’nin diğer onlarca servisiyle (IAM, VPC, CloudWatch) derinlemesine entegre çalışır. Ancak bu derin entegrasyon, beraberinde ciddi bir kurulum ve yapılandırma karmaşıklığı getirir.

Azure AKS (Azure Kubernetes Service): Microsoft’un bulut platformunda yer alan AKS, özellikle kurumsal şirketler için biçilmiş kaftandır. Azure Active Directory (yeni adıyla Microsoft Entra ID) entegrasyonu sayesinde kimlik yönetimi çok kolaydır. Ayrıca, kontrol düzlemi için ekstra bir ücret talep etmemesi (standart SLA hariç) onu bütçe dostu bir seçenek haline getirir.

Google GKE (Google Kubernetes Engine): Kubernetes teknolojisinin asıl yaratıcısı olan Google, bu alandaki liderliğini GKE ile sürdürüyor. GKE, piyasadaki en gelişmiş, en otomatikleştirilmiş ve kullanımı en kolay Kubernetes servisidir. Güncellemeler, otomatik ölçeklendirme (autoscaling) ve ağ yönetimi GKE üzerinde neredeyse tamamen sorunsuz çalışır.

Kurulum ve Yönetim Kolaylığı: Hangisi Daha Hızlı?

Bir Kubernetes kümesini canlıya alırken harcadığınız süre ve karşılaştığınız zorluklar, ekibinizin verimliliğini doğrudan etkiler. Bu konuda üç sağlayıcı arasında çok ciddi felsefe ve pratik farkları bulunuyor.

Google Cloud, Kubernetes’in ana vatanı olduğu için GKE kurulumu inanılmaz derecede basittir. Google Cloud Console üzerinden sadece birkaç tıklama ile veya tek bir gcloud komutuyla dakikalar içinde üretime hazır bir küme oluşturabilirsiniz. GKE, arka planda ağ ayarlarını (VPC), alt ağları (subnets) ve yönlendirmeleri otomatik olarak halleder. Ayrıca GKE Autopilot modu sayesinde, düğüm yönetimiyle hiç uğraşmadan sadece pod seviyesinde kaynak tüketimi üzerinden ödeme yapabilirsiniz.

Azure AKS ise kurulum kolaylığı açısından GKE’ye oldukça yakındır. Azure CLI veya Azure Portal üzerinden küme oluşturmak oldukça hızlıdır. Ancak, Azure’un ağ altyapısı (özellikle Azure CNI kullanımı) bazen IP adresi tükenmesi gibi karmaşık sorunlara yol açabilir. Bu nedenle kurulum aşamasında ağ planlamasını çok dikkatli yapmanız gerekir.

Amazon EKS tarafına geldiğimizde ise işler biraz karmaşıklaşıyor. EKS, kutudan çıktığı haliyle “yalın” bir servis gibidir. Bir EKS kümesi kurmak için öncelikle VPC, alt ağlar, güvenlik grupları (security groups) ve IAM rollerini manuel olarak veya Terraform gibi bir altyapı kodu (IaC) aracıyla tanımlamanız gerekir. AWS bu karmaşıklığı azaltmak için eksctl adında açık kaynaklı bir CLI aracı sunsa da, kurumsal ortamlarda güvenlik politikaları nedeniyle bu aracı kullanmak her zaman mümkün olmayabilir. Canlı ortam deneyimlerimize göre, EKS üzerinde çalışan bir kümenin üretime hazır hale gelmesi, GKE’ye kıyasla en az iki kat daha fazla mühendislik eforu gerektiriyor.

# eksctl ile basit bir EKS kümesi kurulum örneği
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: canli-ortam-kumesi
  region: eu-central-1

nodeGroups:
  - name: standart-isçiler
    instanceType: t3.medium
    desiredCapacity: 3
    volumeSize: 50

Canlı Ortamda Ölçekleme ve Performans Deneyimleri

Canlı ortamlarda ani trafik dalgalanmaları kaçınılmazdır. Örneğin, bir e-ticaret sitesinin “Efsane Cuma” kampanyasında veya bir fintech uygulamasının maaş günlerinde sistemin saniyeler içinde ölçeklenmesi gerekir. Bu noktada platformların otomatik ölçeklendirme (autoscaling) yetenekleri hayati önem taşır.

GKE, bu alanda tartışmasız sektör lideridir. Google’ın kendi geliştirdiği Cluster Autoscaler, podların kaynak taleplerini izler ve ihtiyaç duyulduğunda yeni düğümleri (nodes) kümeye dahil eder. GKE’nin yeni düğüm ekleme süresi genellikle 60 ila 90 saniye arasındadır. Ayrıca GKE, optimize edilmiş işletim sistemi imajları (Container-Optimized OS) sayesinde podların çok daha hızlı başlamasını sağlar.

EKS, geleneksel olarak AWS Auto Scaling Groups (ASG) mekanizmasını kullanır. Bu yapı bazen hantal kalabilir ve ölçekleme kararları yavaş alınabilir. Ancak AWS, bu sorunu çözmek için Karpenter adında açık kaynaklı, yüksek performanslı bir Kubernetes grup dışı otomatik ölçeklendirici geliştirdi. Karpenter, doğrudan AWS API’leri ile konuşarak ASG’leri devre dışı bırakır ve saniyeler içinde en uygun maliyetli EC2 örneklerini (instances) kümeye dahil eder. Eğer EKS kullanıyorsanız, canlı ortamda Karpenter kullanmak performansınızı GKE seviyesine yaklaştıracaktır.

AKS ise ölçekleme konusunda karmaşık bir tablo çiziyor. Standart ölçekleyici bazen Azure API sınırlarındaki (rate limiting) dar boğazlar nedeniyle yavaş çalışabilir. Bununla birlikte AKS, “Virtual Nodes” (Sanal Düğümler) özelliği sayesinde Azure Container Instances (ACI) altyapısını kullanarak saniyeler içinde sınırsız ölçekleme sunar. Ancak bu yöntemin maliyeti uzun vadede normal sanal sunuculara göre çok daha yüksektir.

Güvenlik ve Kimlik Doğrulama: IAM Entegrasyonları Nasıl Yapılır?

Kubernetes kümelerinin güvenliği, canlı ortamlarda en çok ihmal edilen ama en kritik konudur. Küme içerisindeki podların, bulut sağlayıcısının diğer servislerine (örneğin bir veritabanına veya depolama alanına) erişmesi gerektiğinde güvenlikten ödün vermemek gerekir. Bunun en güvenli yolu, Kubernetes servis hesapları (Service Accounts) ile bulut sağlayıcısının kimlik yönetim sistemini (IAM) entegre etmektir.

AWS EKS, bu entegrasyonu IRSA (IAM Roles for Service Accounts) teknolojisiyle çözer. Bu sistem, OpenID Connect (OIDC) sağlayıcısı kullanarak her bir pod için geçici AWS STS jetonları (tokens) üretir. Kurulumu ilk başta oldukça zor ve kafa karıştırıcıdır ancak güvenlik açısından kusursuzdur. Aşağıdaki örnekte, bir podun AWS S3 servisine erişebilmesi için gerekli servis hesabı tanımlamasını görebilirsiniz:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: s3-okuyucu-sa
  namespace: canli-uygulama
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/EKS-S3-Okuma-Rolu

Google GKE tarafında ise bu işlem Workload Identity (İş Yükü Kimliği) olarak adlandırılır. GKE’de bu entegrasyonu etkinleştirmek ve kullanmak son derece kolaydır. Google Cloud IAM rolleri ile Kubernetes servis hesapları arasındaki eşleştirme, karmaşık OIDC yapılandırmalarına gerek kalmadan, sadece birkaç konsol komutuyla tamamlanır. Canlı ortam yönetiminde en az hata yaptıran ve en kararlı çalışan kimlik doğrulama yapısı GKE’ye aittir.

Azure AKS ise Microsoft Entra Workload ID (eski adıyla Azure AD Pod Identity) kullanır. Azure ekosisteminde zaten var olan bir şirket için bu entegrasyon büyük bir avantajdır. Şirket içi (on-premise) Active Directory kullanıcıları ve izinleri doğrudan Kubernetes kümesindeki kaynaklarla ilişkilendirilebilir. Ancak, Azure’un kimlik doğrulama servislerindeki olası bir kesinti veya gecikme, küme içerisindeki uygulamaların dış servislere erişimini doğrudan etkileyebilir.

Maliyet Analizi: Gizli Giderler ve Tasarruf Yöntemleri

Kubernetes kullanmanın en büyük motivasyonlarından biri kaynakları optimize ederek maliyetleri düşürmektir. Ancak, yanlış yapılandırılmış bir küme şirketinizi iflasın eşiğine getirebilir. Bulut sağlayıcılarının faturalandırma politikalarını iyi anlamak bu yüzden hayati önem taşır.

İlk olarak, kontrol düzlemi (control plane) ücretlerini inceleyelim. AWS EKS ve Google GKE, oluşturduğunuz her küme için saatlik 0.10$ (aylık yaklaşık 73$) sabit kontrol düzlemi ücreti alır. Google Cloud, her fatura hesabı için bir adet ücretsiz bölgesel (zonal) küme sunarak küçük ölçekli projeler için avantaj sağlar. Azure AKS ise standart SLA (Service Level Agreement – Hizmet Seviyesi Taahhüdü) talep etmediğiniz sürece kontrol düzlemi için herhangi bir ücret almaz. Eğer %99.95 kullanılabilirlik garantisi isterseniz, AKS üzerinde de saatlik 0.10$ ödemeniz gerekir.

İkinci ve en büyük maliyet kalemi ise işçi düğümlerdir (worker nodes). Burada tasarruf etmenin en etkili yolu Spot/Low-Priority Instances (kesintili/düşük öncelikli sanal sunucular) kullanmaktır. Bu sunucular, normal sunuculara göre %90’a varan indirimler sunar ancak bulut sağlayıcısı ihtiyaç duyduğunda bu sunucuları 2 dakika içinde geri alabilir.

  • EKS ve Karpenter: Spot yönetiminde en başarılı kombinasyondur. Karpenter, kesinti bildirimlerini (termination notices) önceden dinleyerek podları güvenli bir şekilde başka düğümlere taşır.
  • GKE Spot Node Pools: Google’ın gelişmiş tahmin algoritmaları sayesinde spot düğümler oldukça kararlı çalışır ve sistem kesintileri minimumda tutulur.
  • AKS Spot Node Pools: Azure’un spot havuzları bazen bölge genelinde (region) yetersiz kapasite sorunlarıyla karşılaşabilir. Bu durum, canlı ortamda uygulamanızın ayakta kalmasını zorlaştırabilir.

Detaylı Karşılaştırma Tablosu

Aşağıdaki tablo, her üç Kubernetes servisinin canlı ortam kriterlerine göre doğrudan bir karşılaştırmasını sunmaktadır:

Özellik Amazon EKS Azure AKS Google GKE
Kontrol Düzlemi Ücreti 0.10 $ / saat Ücretsiz (SLA ile 0.10 $) 0.10 $ / saat (İlk küme ücretsiz)
Kurulum Zorluğu Yüksek (Terraform/eksctl gerekir) Orta Düşük (Tek tıkla kurulum)
Otomatik Ölçekleme Hızı Yavaş (Karpenter ile çok hızlı) Orta Çok Hızlı
Güncelleme Yönetimi Manuel ve Riskli Yarı Otomatik Tam Otomatik ve Güvenli
Kimlik Doğrulama (IAM) Karmaşık (IRSA) Kolay (Azure AD) Çok Kolay (Workload Identity)

İleri Düzey İpuçları: Canlı Ortamda Hayat Kurtaran Tüyolar

Yıllar süren üretim tecrübelerimizden çıkardığımız bazı altın kuralları ve ileri düzey ipuçlarını aşağıda paylaşıyoruz. Bu tüyolar, canlı ortamda yaşayacağınız olası felaketlerin önüne geçebilir.

EKS Kullanıcıları İçin: Kesinlikle varsayılan AWS VPC CNI yerine alternatif CNI çözümlerini (örneğin Cilium) değerlendirin. AWS VPC CNI, her poda doğrudan bir AWS IP adresi atadığı için çok hızlı bir şekilde IP adreslerinizin tükenmesine neden olabilir. Ayrıca, düğüm güncellemelerinde (node upgrades) veri kaybı yaşamamak için PodDisruptionBudget (Pod Kesinti Bütçesi) tanımlamalarını asla ihmal etmeyin.

GKE Kullanıcıları İçin: “Release Channels” (Sürüm Kanalları) özelliğini aktif kullanın. Canlı ortam kümelerinizi “Stable” (Kararlı) kanalında tutarken, test ortamlarınızı “Regular” (Düzenli) veya “Rapid” (Hızlı) kanallarına alarak yeni Kubernetes sürümlerini önceden test edin. Bu sayede, sürüm uyumsuzluklarından kaynaklanan kesintilerin önüne geçersiniz.

AKS Kullanıcıları İçin: Azure’un kaynak sınırlandırmalarına (resource limits) dikkat edin. Özellikle büyük ölçekli kümelerde, Azure Resource Manager (ARM) API limitlerine takılabilirsiniz. Bunu önlemek için küme içerisindeki loglama ve izleme araçlarının (Prometheus, Fluentbit) Azure API’lerine gereksiz istek atmasını engelleyin.

Sıkça Sorulan Sorular (SSS)

1. Küçük bir girişim (startup) için en mantıklı seçim hangisidir?

Eğer ekibinizde uzman bir DevOps mühendisi yoksa ve hızlıca ürünü canlıya almak istiyorsanız kesinlikle Google GKE veya GKE Autopilot tercih etmelisiniz. Kurulum ve bakım maliyeti en düşük olan platform GKE’dir.

2. AWS EKS neden bu kadar popüler ama kurulumu zor?

AWS, bulut pazarının lideridir ve şirketlerin büyük çoğunluğu zaten diğer verilerini AWS üzerinde tutmaktadır. EKS, bu mevcut altyapıya derinlemesine entegre olabildiği için tercih edilir. Zorluğu ise esnekliğinden ve güvenlik politikalarının sıkılığından kaynaklanır.

3. Kubernetes güncellemelerinde kesinti yaşar mıyım?

Eğer podlarınız için uygun replika sayıları ve ReadinessProbe (Hazır Olma Kontrolü) tanımladıysanız, her üç platformda da sıfır kesintiyle (zero-downtime) güncelleme yapabilirsiniz. Ancak GKE, bu süreci otomatik yönetme konusunda en güvenli olanıdır.

4. Maliyeti düşürmek için hangi platformu seçmeliyim?

Sadece kontrol düzlemi ücreti ödememek adına AKS cazip görünebilir. Ancak asıl maliyet işçi düğümlerdedir. AWS EKS üzerinde Karpenter kullanarak spot sunucuları agresif bir şekilde yönetmek, uzun vadede en ucuz çözümü sunabilir.

Sonuç

EKS, AKS ve GKE arasında mutlak bir “en iyi” yoktur; sadece sizin ihtiyaçlarınıza “en uygun” olan servis vardır. Eğer halihazırda tüm altyapınız AWS üzerindeyse ve güçlü bir mühendislik ekibiniz varsa, EKS ve Karpenter ikilisi size sınırsız bir güç sunacaktır. Microsoft ekosistemine göbekten bağlı kurumsal bir yapıysanız, AKS sizin için en doğal ve entegre seçenektir. Ancak, Kubernetes’i en saf, en performanslı ve en zahmetsiz haliyle deneyimlemek istiyorsanız, Google GKE bu yarışın açık ara galibidir.

#Teknoloji #Kubernetes #CloudComputing #DevOps #AWS #Azure #GCP

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.