Son yıllarda yazılım geliştirme dünyasında büyük bir değişim yaşandı. Monolitik uygulamaların yerini mikroservis mimarisi, geleneksel deployment yöntemlerinin yerini ise container teknolojileri aldı. İşte tam bu noktada Kubernetes devreye giriyor.
Kubernetes, Google tarafından geliştirilen ve daha sonra Cloud Native Computing Foundation (CNCF) tarafından yönetilmeye başlanan açık kaynaklı bir platformdur. Temel amacı, container tabanlı uygulamaları otomatik olarak dağıtmak, ölçeklemek ve yönetmektir.
Bugün Netflix, Spotify, Airbnb ve Google gibi dev teknoloji şirketleri uygulamalarını Kubernetes üzerinde çalıştırıyor.
Kubernetes’i öğrenmek isteyenler için temel seviyeden başlayabileceğiniz bir eğitim:
Kubernetes Fundamentals Eğitimi
Kubernetes Neden Bu Kadar Popüler?
Kubernetes’in bu kadar hızlı yayılmasının arkasında çok güçlü özellikler bulunur.
Otomatik Ölçekleme
Kubernetes, uygulamanın trafik durumuna göre container sayısını otomatik olarak artırabilir veya azaltabilir.
Örneğin:
| Trafik Durumu | Kubernetes Davranışı |
|---|---|
| Trafik düşük | Pod sayısını azaltır |
| Trafik artıyor | Yeni pod’lar oluşturur |
| Trafik çok yüksek | Cluster kapasitesini genişletebilir |
Bu sayede sistem hem performanslı hem de maliyet açısından optimize edilmiş olur.
Self-Healing (Kendini İyileştirme)
Kubernetes’in en güçlü özelliklerinden biri self-healing mekanizmasıdır.
Eğer bir container crash olursa Kubernetes:
Container’ı yeniden başlatır
Sağlıksız pod’u değiştirir
Trafiği çalışan pod’lara yönlendirir
Bu da sistemin yüksek erişilebilirliğini sağlar.
Otomatik Deployment ve Rollback
Yeni bir versiyon deploy ettiğinizde sorun yaşanırsa Kubernetes otomatik olarak önceki sürüme dönebilir.
Deployment süreci:
Yeni container image deploy edilir
Trafik kademeli olarak yeni versiyona aktarılır
Sorun oluşursa rollback yapılır
Bu yaklaşım CI/CD süreçlerinin temelini oluşturur.
Kubernetes Temel Kavramları
Kubernetes’i anlamak için bazı temel kavramları bilmek gerekir.
Pod
Kubernetes’te deploy edilen en küçük birim Pod’dur.
Bir pod:
1 veya daha fazla container içerir
Aynı network ve storage’ı paylaşır
Kubernetes tarafından birlikte yönetilir
| Özellik | Açıklama |
|---|---|
| En küçük deploy birimi | Pod |
| İçeriği | Container veya container grubu |
| Yaşam süresi | Geçici |
Node
Node, Kubernetes cluster içerisindeki çalışan makinedir.
Node iki farklı türde olabilir:
Worker Node
Master Node (Control Plane)
Node üzerinde çalışan ana bileşenler:
kubelet
kube-proxy
container runtime
Cluster
Cluster, Kubernetes’in en temel mimari yapısıdır.
Bir cluster şunlardan oluşur:
| Bileşen | Görev |
|---|---|
| Control Plane | Yönetim |
| Worker Node | Uygulamaları çalıştırır |
| etcd | Konfigürasyon verisi |
Cluster sayesinde uygulamalar yüksek erişilebilir şekilde dağıtılır.
Kubernetes ve Docker İlişkisi
Kubernetes genellikle Docker ile birlikte anılır.
Docker:
Container oluşturur
Image üretir
Uygulamayı paketler
Kubernetes ise:
Container’ları yönetir
Cluster üzerinde dağıtır
Ölçeklendirir
Bu yüzden çoğu DevOps süreci şu şekilde ilerler:
Docker ve Kubernetes’i birlikte öğrenmek isteyenler için:
Docker Kubernetes Service Eğitimi
Kubernetes Kullanım Senaryoları
Kubernetes sadece büyük şirketler için değildir. Günümüzde birçok farklı senaryoda kullanılır.
Mikroservis Mimarisi
Modern uygulamalar genellikle mikroservis mimarisi kullanır.
Örnek yapı:
| Servis | Görev |
|---|---|
| User Service | Kullanıcı yönetimi |
| Payment Service | Ödeme işlemleri |
| Product Service | Ürün yönetimi |
| Notification Service | Bildirimler |
Kubernetes bu servisleri bağımsız şekilde yönetir.
CI/CD Pipeline
Kubernetes, modern CI/CD süreçlerinin merkezinde yer alır.
Deployment pipeline örneği:
Bu sayede uygulamalar dakikalar içinde production ortamına alınabilir.
Kubernetes Öğrenme Yolu
Kubernetes öğrenmek isteyenler için ideal öğrenme sırası şu şekildedir.
| Adım | Öğrenilecek Konu |
|---|---|
| 1 | Linux ve Networking |
| 2 | Docker |
| 3 | Kubernetes Temelleri |
| 4 | Deployment ve Scaling |
| 5 | Production Cluster Yönetimi |
Temelden başlamak isteyenler için:
Kubernetes Fundamentals Eğitimi
Kubernetes Sertifikaları
Kubernetes dünyasında en popüler iki sertifika bulunur.
CKA — Kubernetes Administrator
Cluster yönetimi ve altyapı tarafına odaklanır.
Bu sertifika şunları kapsar:
Cluster kurulumu
Networking
Storage yönetimi
Güvenlik
Detaylı eğitim:
Kubernetes Administrator (CKA) Eğitimi
CKAD — Kubernetes Application Developer
Geliştiriciler için hazırlanmış bir sertifikadır.
Odak noktası:
Application deployment
Pod yönetimi
ConfigMap ve Secret kullanımı
Detaylı eğitim:
Kubernetes Application Developer (CKAD) Eğitimi
Google Kubernetes Engine (GKE)
Kubernetes’i sıfırdan kurmak yerine birçok şirket managed Kubernetes servisleri kullanır.
En popüler servislerden biri Google Kubernetes Engine (GKE)’dir.
GKE avantajları:
| Avantaj | Açıklama |
|---|---|
| Otomatik cluster yönetimi | Google yönetir |
| Kolay ölçekleme | Tek komut |
| Güvenlik | Google altyapısı |
GKE öğrenmek isteyenler için eğitim:
Getting started with Google kubernetes engine Eğitimi
Kubernetes Geleceği
Cloud-native mimariler büyüdükçe Kubernetes’in önemi de artıyor.
Gelecekte Kubernetes’in daha fazla kullanıldığı alanlar:
Serverless Kubernetes
Edge computing
AI / ML workload yönetimi
Platform engineering
Bugün Kubernetes öğrenmek, geleceğin yazılım mimarilerini anlamak anlamına geliyor.
Kubernetes artık modern yazılım altyapısının merkezinde yer alıyor. Container teknolojilerinin yükselişiyle birlikte uygulamaları yönetmenin en güçlü yolu haline geldi.
Eğer DevOps, cloud veya modern yazılım mimarileriyle ilgileniyorsanız Kubernetes öğrenmek kariyeriniz için önemli bir yatırım olacaktır.
Kubernetes yolculuğuna başlamak için şu eğitimlerle ilerleyebilirsiniz:
Kubernetes Fundamentals
Kubernetes Administrator (CKA)
Kubernetes Application Developer (CKAD)
Docker & Kubernetes Service