DEV Community

Cover image for Kubernetes Ne İşe Yarar? Geliştiriciler İçin Kapsamlı Rehber
Tobias Hoffmann
Tobias Hoffmann

Posted on • Originally published at apidog.com

Kubernetes Ne İşe Yarar? Geliştiriciler İçin Kapsamlı Rehber

Modern yazılım geliştirmede zaman geçirdiyseniz, muhtemelen Kubernetes teriminin vazgeçilmez bir teknoloji olarak etrafta dolaştığını duymuşsunuzdur. Peki Kubernetes tam olarak ne işe yarar? Neden bu kadar önemlidir ve ekiplerin uygulamaları oluşturma, dağıtma ve sürdürme biçimini nasıl dönüştürür? Bu kılavuz, Kubernetes'i açıklığa kavuşturacak, gerçek dünya yeteneklerine doğrudan ve pratik bir bakış sunacaktır.

Apidog’u bugün deneyin

Kubernetes Ne İşe Yarar? Net Bir Tanım

Kubernetes, konteynerize edilmiş uygulamaların dağıtımını, ölçeklendirmesini ve yönetimini otomatikleştirmek için tasarlanmış açık kaynaklı bir platformdur. Konteynerler, kodu ve bağımlılıkları paketleyen hafif, taşınabilir ortamlardır ve yazılımın farklı bilgi işlem ortamlarında tutarlı bir şekilde çalışmasını sağlar. Kubernetes bu konteynerleri düzenler ve temel altyapı ne olursa olsun uygulamalarınızın sorunsuz çalıştığından emin olur.

Peki, Kubernetes pratikte ne işe yarar?

  • Konteynerleri makine kümeleri arasında planlar ve çalıştırır.
  • Uygulama sağlığını izler, bir sorun çıkarsa konteynerleri otomatik olarak yeniden başlatır veya değiştirir.
  • Talebe göre yükleri dengeler ve kaynakları yukarı veya aşağı ölçeklendirir, böylece optimum performans ve maliyet verimliliği sağlar.

Kubernetes, karmaşık uygulamaları dağıtma ve çalıştırma sürecindeki manuel, hataya açık işleri ortadan kaldırarak ekiplerin özellikleri daha hızlı ve daha güvenilir bir şekilde sunmasını sağlar.

Kubernetes Neden Önemlidir? Çözdüğü Sorunlar

Modern yazılım dağıtımında karşılaşılan temel zorluklar:

  • Manuel dağıtım yavaş ve risklidir.
  • Değişken trafiği yönetmek için uygulamaları ölçeklendirmek karmaşıktır.
  • Çalışma süresini ve arızadan hızlı kurtarmayı sağlamak zordur.
  • Birden çok ortamda uygulamaları yönetmek karmaşıktır.

Kubernetes, bu sorunları otomasyonla çözerek ekiplerin yazılımı daha hızlı ve güvenilir bir şekilde sunmasına imkân tanır.

Temel Fonksiyonlar: Kubernetes Sizin İçin Ne Yapar?

Kubernetes’in sağladığı başlıca otomasyonları ve pratik görevlerini adım adım ele alalım:

1. Otomatik Konteyner Düzenleme

Kubernetes, konteynerlerinizi kümeye akıllıca dağıtır ve izler. Örneğin:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ornek-uygulama
spec:
  replicas: 3
  selector:
    matchLabels:
      app: ornek-uygulama
  template:
    metadata:
      labels:
        app: ornek-uygulama
    spec:
      containers:
      - name: ornek-uygulama
        image: ornek/image:latest
Enter fullscreen mode Exit fullscreen mode
  • Yukarıdaki YAML ile aynı anda 3 adet konteynerin sürekli çalışmasını sağlarsınız.
  • Herhangi bir konteyner arızalanırsa, Kubernetes otomatik olarak yeni bir tane başlatır.

2. Kendi Kendini İyileştirme ve Sağlık İzleme

Kubernetes, bir konteyner çöktüğünde veya yanıt vermediğinde otomatik olarak yeniden başlatır ya da değiştirir.

livenessProbe:
  httpGet:
    path: /health
    port: 8080
  initialDelaySeconds: 10
  periodSeconds: 5
Enter fullscreen mode Exit fullscreen mode

Bu örnek, uygulamanızın sağlık durumunu izlemek için bir liveness probe kullanır.

3. Otomatik Ölçeklendirme

Gerçek zamanlı taleplere göre konteyner sayısını artırmak veya azaltmak için Horizontal Pod Autoscaler kullanın:

kubectl autoscale deployment ornek-uygulama --cpu-percent=50 --min=3 --max=10
Enter fullscreen mode Exit fullscreen mode

Yukarıdaki komut, CPU kullanımı %50’yi aşarsa pod’ların otomatik olarak ölçeklenmesini sağlar.

4. Servis Keşfi ve Yük Dengeleme

Kubernetes, uygulamalarınız için sabit bir servis adresi ve yük dengeleme sağlar:

apiVersion: v1
kind: Service
metadata:
  name: ornek-servis
spec:
  selector:
    app: ornek-uygulama
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: ClusterIP
Enter fullscreen mode Exit fullscreen mode

Pod’lar gelip geçse de, isme bağlı sabit bir servis adresiniz olur.

5. Kademeli Güncellemeler ve Geri Alma

Uygulamanızı yeni bir sürüme geçirmek için deployment güncelleyin, Kubernetes kesintisiz şekilde rollout yapar ve sorun olursa kolayca rollback edebilirsiniz:

kubectl rollout undo deployment/ornek-uygulama
Enter fullscreen mode Exit fullscreen mode

6. Bildirime Dayalı Yapılandırma Yönetimi

İstenen durumu YAML veya JSON ile tanımlayın, Kubernetes bunu sürekli uygular.

7. Gizli ve Yapılandırma Yönetimi

API anahtarları gibi hassas verileri Secret, ortam yapılandırmalarını ise ConfigMap ile yönetin:

apiVersion: v1
kind: Secret
metadata:
  name: api-secret
type: Opaque
data:
  password: c2VjcmV0cGFzcw==
Enter fullscreen mode Exit fullscreen mode

Kubernetes Nasıl Çalışır: İş Başındaki Bileşenler

  • Düğüm (Node): Konteynerleri çalıştıran tek bir makine (sanal veya fiziksel).
  • Pod: Kubernetes’te dağıtılan en küçük birim; bir veya daha fazla konteyner içerir.
  • Küme (Cluster): Birden çok düğümün birleşimi.
  • Deployment: Uygulamanın kaç kopya çalışacağını ve güncelleme şeklini tanımlar.
  • Service: Pod’lara sabit ağ erişimi sağlar.
  • Ingress: HTTP/HTTPS gibi harici erişimi yönetir.

Kubernetes API Geliştirme İçin Ne Yapar?

API tabanlı uygulamalar için Kubernetes’in pratik katkıları:

  • API’lerin sürekli erişilebilir olmasını sağlar, yeniden başlatma ve hata durumlarını otomatik olarak yönetir.
  • API’leri trafik artışına göre kolayca ölçeklendirir.
  • Mavi-yeşil ve kanarya dağıtımlarını destekler, sorunsuz versiyon geçişi sunar.

Kubernetes, Apidog gibi bir aracı API tasarımı, testi ve dokümantasyonu için kullanıyorsanız, API’lerinizi güvenilir ve otomatik bir ortamda çalıştırmanızı sağlar. Apidog ile API oluşturup test ettikten sonra, dağıtım ve ölçeklendirme için Kubernetes’i entegre edebilirsiniz.

Gerçek Dünya Örnekleri: Kubernetes Pratikte Ne Yapar?

Kubernetes’in nasıl bir fark yarattığını aşağıdaki senaryolarda görebilirsiniz:

Örnek 1: E-ticaret Platformu Ölçeklendirme

Bir online mağaza trafik artışı yaşadığında, Kubernetes otomatik olarak pod (konteyner) sayısını artırır, trafik düştüğünde ise azaltır. Böylece maliyetten tasarruf sağlarken kullanıcı deneyimi sürekli iyi kalır.

Örnek 2: API'ler İçin Sürekli Dağıtım

Apidog ile geliştirilen yeni bir API sürümü hazır olduğunda, Kubernetes deployment güncellenir. Eski konteynerler kademeli olarak yeni sürümlerle değiştirilir; hata tespit edilirse, Kubernetes rollout’u anında geri alır.

Örnek 3: Çoklu Bulut ve Hibrit Bulut Esnekliği

Bir SaaS şirketi uygulamasını hem AWS hem de şirket içi sunucularda çalıştırmak isterse, Kubernetes ile tek bir kontrol düzleminden tüm ortamlar yönetilir.

Geliştirici İş Akışında Kubernetes

Modern bir geliştirme hattında Kubernetes’i nasıl entegre edersiniz? Temel adımlar:

  1. Apidog gibi bir platformda API’nizi tasarlayın ve test edin.
  2. Uygulamanızı Docker ile konteynerize edin.
  3. Kubernetes YAML dosyalarında deployment ve servislerinizi tanımlayın.
  4. Kubernetes kümenize dağıtın (bulutta, şirket içi veya hibrit).
  5. Kubernetes otomatik olarak ölçeklendirme, sağlık ve güncellemeleri yönetir.

Bu süreç, manuel adımları azaltır ve sürekli, hızlı yazılım teslimi sağlar.

Yaygın Yanılgılar: Kubernetes Ne Yapmaz?

  • Kubernetes konteynerlerinizi oluşturmaz veya paketlemez (Docker gibi araçlar gereklidir).
  • Kubernetes geleneksel bir PaaS değildir; daha esnek ama biraz kurulum gerektirir.
  • Kubernetes uygulama kodunuzu yönetmez, kodunuzu çalıştıran konteynerleri yönetir.

API Başarısı İçin Apidog'u Kubernetes ile Entegre Etmek

API geliştiriyorsanız, Apidog ve Kubernetes'i pratik bir şekilde birlikte kullanabilirsiniz:

  • API uç noktalarını tasarlayın ve maketlerini oluşturun.
  • Swagger veya OpenAPI formatında API spesifikasyonları oluşturun/ithal edin.
  • API’lerinizi otomatik olarak belgeleyin ve test edin.

Sonrasında bu API’leri Kubernetes managed konteynerler olarak dağıtın. Kubernetes, API’lerinizi sağlıklı ve yüksek erişilebilirlikte tutar, gerektiğinde otomatik ölçeklendirme sağlar.

Sonuç: Kubernetes'in Ne İş Yaptığını Bilmek Neden Önemli?

Kubernetes’in işlevini anlamak, özellikle API ve ölçeklenebilir uygulamalar geliştiren ekipler için kritik önemdedir. Kubernetes, dağıtım, sağlık kontrolleri, otomatik ölçeklendirme ve güncellemeleri kod bazında değil, altyapı seviyesinde otomatikleştirir.

Apidog gibi API tasarım ve test araçları ile birlikte kullanıldığında, Kubernetes sağlam ve verimli bir geliştirme yaşam döngüsü sağlar.

API geliştirmenizi bir üst seviyeye taşımak için Apidog ile sorunsuz API tasarımı deneyin, ardından Kubernetes ile dağıtıma geçin. Kubernetes’in ne işe yaradığını ve nasıl kullanılacağını bilmek, ekibinizi modern yazılım dünyasında öne çıkaracaktır.

Kubernetes'in Ne Yaptığı Hakkında Sıkça Sorulan Sorular

S: Küçük projeler için Kubernetes kullanabilir miyim?

C: Evet! Kubernetes büyük ölçek için mükemmeldir ama küçük projeler ve büyümeyi bekleyen işler için de uygundur.

S: Kubernetes sadece Docker ile mi çalışır?

C: Hayır, birden çok konteyner çalışma zamanı desteklenir ancak Docker en yaygın olanıdır.

S: Kubernetes'i öğrenmek zor mu?

C: Başlangıçta bir öğrenme eğrisi vardır, ancak Apidog gibi araçlar API geliştirmeyi basitleştirerek Kubernetes ile entegrasyona odaklanmanıza yardımcı olur.

Top comments (0)