Kubernetes Nedir? VPS/VDS Üzerinde Temel Mimarisi ve Kullanım Rehberi
Kubernetes Nedir? VPS/VDS Üzerinde Temel Mimarisi ve Kullanım Rehberi
Son Güncelleme: Nisan 2026
Kubernetes, konteyner (container) tabanlı uygulamaları yönetmek, ölçeklemek ve yüksek erişilebilirlikle çalıştırmak için kullanılan güçlü bir orkestrasyon (yönetim ve düzenleme) platformudur. Özellikle VPS, VDS, bulut sunucu ve modern uygulama altyapılarında, servislerin merkezi şekilde kontrol edilmesini sağlayarak operasyonel verimlilik sunar.
İçindekiler
- Kubernetes Nedir?
- Neden Kubernetes Kullanılır?
- Kubernetes Mimarisi
- Temel Bileşenler
- VPS/VDS Üzerinde Kubernetes Kullanımı
- Kurulum Öncesi Planlama
- Örnek Kullanım Senaryoları
- Avantajlar ve Dezavantajlar
- Kubernetes ile Docker Farkı
- En İyi Uygulamalar
- Sıkça Sorulan Sorular
- Sonuç
Kubernetes Nedir?
Kubernetes, konteynerleştirilmiş uygulamaların dağıtımı (deployment), ölçeklenmesi (scaling), ağ iletişimi ve yaşam döngüsü yönetimi için geliştirilmiş açık kaynaklı bir platformdur. İlk olarak Google tarafından geliştirilen bu teknoloji, günümüzde bulut tabanlı ve hibrit altyapılarda standart haline gelmiştir.
Basit bir ifadeyle Kubernetes, bir uygulamanın hangi sunucuda çalışacağını, ne zaman yeniden başlatılacağını, ne kadar kaynak kullanacağını ve trafik nasıl dağıtılacağını otomatik olarak yönetir. Bu sayede sistem yöneticileri ve geliştiriciler, manuel işlemler yerine daha sürdürülebilir ve otomatik bir altyapı kurabilir.
Özellikle mikro servis (microservices) mimarisi kullanan projelerde Kubernetes, servislerin birbirinden bağımsız ama koordineli şekilde çalışmasını sağlar. Bir e-ticaret uygulamasında web, api, database-proxy, queue-worker ve cache gibi bileşenler ayrı ayrı çalıştırılabilir ve tek merkezden yönetilebilir.
Neden Kubernetes Kullanılır?
Geleneksel sunucu yönetiminde uygulamaların kurulumu, güncellenmesi, izlenmesi ve ölçeklenmesi çoğu zaman manuel işlemler gerektirir. Bu yaklaşım küçük projelerde yeterli olabilir; ancak trafik artışı, çoklu servis yapısı ve yüksek erişilebilirlik ihtiyacı doğduğunda yönetim karmaşık hale gelir. Kubernetes, bu karmaşıklığı azaltmak için tercih edilir.
Başlıca kullanım nedenleri
- Otomatik ölçekleme: Trafik arttığında yeni uygulama kopyaları devreye alınabilir.
- Kendi kendini iyileştirme: Hata veren konteynerler otomatik yeniden başlatılabilir.
- Servis keşfi: Uygulama bileşenleri birbirini kolayca bulabilir.
- Rolling update: Kesintisiz güncelleme yapılabilir.
- Kaynak optimizasyonu: CPU ve RAM kullanımı daha kontrollü yönetilir.
- Taşınabilirlik: Farklı altyapılarda benzer şekilde çalışabilir.
Örneğin yoğun kampanya dönemlerinde trafik artan bir web uygulamasında Kubernetes, sadece gerekli servisleri ölçeklendirerek hem performans hem de maliyet açısından avantaj sağlayabilir.
Kubernetes Mimarisi
Kubernetes mimarisi temel olarak control plane (kontrol düzlemi) ve worker node (çalışan düğüm) yapısından oluşur. Kontrol düzlemi, kümenin karar mekanizmasıdır; worker node'lar ise uygulama yüklerini çalıştırır.
Control Plane
Control plane bileşenleri, kümenin genel durumunu yönetir. Hangi uygulamanın nerede çalışacağı, istenen durumun nasıl korunacağı ve API üzerinden gelen taleplerin nasıl işleneceği burada belirlenir.
Worker Node
Worker node'lar, konteynerlerin fiilen çalıştığı sunuculardır. Bir veya birden fazla worker node kullanılarak uygulama yükü dağıtılabilir. Bu yapı, özellikle Sanal Sunucu veya Bulut Sunucu altyapılarında esnek kurulum imkanı sağlar.
Temel Bileşenler
Kubernetes öğrenirken bazı temel kavramların anlaşılması gerekir. Bu kavramlar, platformun çalışma mantığını doğrudan etkiler.
Pod
Pod, Kubernetes içindeki en küçük dağıtım birimidir. Bir veya birden fazla konteyner içerebilir. Genellikle aynı iş yükünü paylaşan yardımcı konteynerler aynı pod içinde çalıştırılır.
Deployment
Deployment, belirli sayıda pod'un istenen durumda tutulmasını sağlar. Uygulama güncellemeleri ve ölçekleme işlemleri çoğunlukla deployment üzerinden yapılır.
Service
Service, pod'lara sabit ağ erişimi sağlar. Çünkü pod'lar dinamik olarak oluşturulup silinebilir; service ise sabit erişim noktası sunar.
Ingress
Ingress, HTTP ve HTTPS trafiğini küme içindeki doğru servislere yönlendirmek için kullanılır. Alan adı bazlı yönlendirme ve SSL sonlandırma gibi işlemlerde sıkça tercih edilir.
ConfigMap ve Secret
ConfigMap, uygulama yapılandırmalarını saklamak için; Secret ise parola, API anahtarı ve sertifika gibi hassas veriler için kullanılır.
Namespace
Namespace, aynı küme içinde mantıksal izolasyon sağlar. Örneğin test, staging ve production ortamları ayrı namespace'lerde yönetilebilir.
| Bileşen | Görevi | Kullanım Amacı |
|---|---|---|
| Pod | En küçük çalışma birimi | Uygulama konteynerlerini çalıştırmak |
| Deployment | Pod yönetimi | Güncelleme ve ölçekleme |
| Service | Ağ erişimi | Pod'lara sabit erişim sağlamak |
| Ingress | Trafik yönlendirme | HTTP/HTTPS isteklerini yönlendirmek |
| Secret | Hassas veri yönetimi | Şifre ve anahtar saklamak |
VPS/VDS Üzerinde Kubernetes Kullanımı
Kubernetes sadece büyük kurumsal yapılarda değil, doğru planlandığında VPS ve VDS altyapılarında da kullanılabilir. Özellikle geliştirme, test, staging ve orta ölçekli üretim ortamları için uygun bir seçenek olabilir.
Birden fazla düğümden oluşan bir küme kurmak için Türkiye VDS Sunucu veya Almanya VDS Sunucu çözümleri değerlendirilebilir. Coğrafi lokasyon tercihi, hedef kullanıcı kitlesi ve gecikme süresi (latency) açısından önemlidir.
Tek node mu, çok node mu?
- Tek node: Öğrenme, test ve küçük uygulamalar için uygundur.
- Çok node: Yedeklilik, yük dağıtımı ve daha kararlı üretim ortamları için tercih edilir.
Eğer uygulamanız yüksek erişilebilirlik gerektiriyorsa tek bir sunucu yerine birden fazla node planlamak daha doğru olacaktır. Ayrıca veritabanı, cache ve uygulama katmanlarını ayrı servisler olarak çalıştırmak bakım ve ölçekleme avantajı sağlar.
Kurulum Öncesi Planlama
Kubernetes kurmadan önce altyapı, ağ, depolama ve güvenlik gereksinimleri detaylı şekilde planlanmalıdır. Aksi halde kurulum başarılı olsa bile operasyon sürecinde sorunlar yaşanabilir.
Dikkat edilmesi gereken başlıklar
- Kaynak planlaması: Her node için yeterli CPU, RAM ve disk alanı ayrılmalıdır.
- Ağ yapısı: Node'lar arası özel ağ iletişimi ve gerekli port erişimleri tanımlanmalıdır.
- Depolama: Kalıcı veri için persistent volume yapısı planlanmalıdır.
- Yedekleme: Konfigürasyonlar ve kritik veriler için Yedekleme Hizmeti düşünülmelidir.
- Güvenlik: API erişimi, rol tabanlı yetkilendirme ve gizli verilerin korunması sağlanmalıdır.
- SSL kullanımı: Uygulama yayınında güvenli erişim için SSL Sertifikası kullanılmalıdır.
Küçük bir örnek yapı şu şekilde olabilir: 1 adet control plane, 2 adet worker node, ayrı bir veritabanı sunucusu ve yedekleme hedefi. Bu kurgu, birçok orta ölçekli proje için başlangıç seviyesinde yeterli olabilir.
Örnek kubectl komutları
Kubernetes yönetiminde en sık kullanılan araçlardan biri kubectl komut satırı aracıdır.
kubectl get nodes
kubectl get pods -A
kubectl get svc
kubectl describe pod ornek-pod
kubectl logs ornek-pod
Bu komutlar sayesinde node durumu, çalışan pod'lar, servisler ve hata kayıtları hızlıca görüntülenebilir.
Örnek Kullanım Senaryoları
Kubernetes birçok farklı projede kullanılabilir. Ancak her proje için en doğru çözüm olmayabilir. Bu yüzden kullanım senaryosu doğru analiz edilmelidir.
1. Mikro servis mimarisi
Büyük uygulamaların küçük bağımsız servisler halinde çalıştırılmasında Kubernetes oldukça etkilidir. Örneğin ödeme servisi, kullanıcı servisi ve bildirim servisi ayrı deployment'lar olarak yönetilebilir.
2. Geliştirme ve test ortamları
Yazılım ekipleri, benzer altyapıları hızlıca ayağa kaldırmak için Kubernetes kullanabilir. Böylece test ortamları standart hale gelir.
3. API ve web uygulamaları
Trafiği değişken olan API servislerinde otomatik ölçekleme ciddi avantaj sağlar. Özellikle kampanya, sezon veya lansman dönemlerinde ek pod'lar devreye alınabilir.
4. Arka plan işleyicileri
Kuyruk (queue) tüketen worker servisleri Kubernetes ile yönetmek kolaydır. İş yoğunluğuna göre worker sayısı artırılıp azaltılabilir.
5. Self-hosted platformlar
Kendi altyapısında modern uygulamalar çalıştırmak isteyen işletmeler, Kubernetes ile esnek bir platform kurabilir. Bu noktada güçlü bir Kiralık Sunucu veya ihtiyaca uygun Uygulama Sunucuları çözümleri değerlendirilebilir.
Avantajlar ve Dezavantajlar
Avantajlar
- Esneklik: Farklı uygulama türlerini aynı platformda çalıştırabilir.
- Ölçeklenebilirlik: Trafik ve iş yüküne göre büyüyebilir.
- Otomasyon: Güncelleme, yeniden başlatma ve dağıtım süreçlerini kolaylaştırır.
- Taşınabilirlik: Farklı sunucu ve bulut ortamlarında benzer mantıkla çalışır.
- Kaynak verimliliği: Fiziksel ve sanal kaynakları daha etkin kullanır.
Dezavantajlar
- Öğrenme eğrisi: Başlangıç seviyesinde karmaşık gelebilir.
- Operasyon yükü: Küme yönetimi uzmanlık gerektirir.
- Gereksiz karmaşıklık: Çok küçük projeler için fazla kapsamlı olabilir.
- İzleme ihtiyacı: Sağlıklı kullanım için log, metrik ve alarm sistemleri kurulmalıdır.
Bu nedenle Kubernetes kararı verilirken sadece popüler olduğu için değil, gerçekten ihtiyaç duyulup duyulmadığı değerlendirilmelidir.
Kubernetes ile Docker Farkı
Bu iki teknoloji sıklıkla karıştırılır; ancak görevleri farklıdır. Docker, konteyner oluşturma ve çalıştırma teknolojisidir. Kubernetes ise bu konteynerlerin geniş ölçekte yönetilmesini sağlayan orkestrasyon platformudur.
Yani Docker tek başına konteyner çalıştırabilir; fakat çoklu sunucu, servis keşfi, otomatik iyileşme ve ileri seviye ölçekleme gibi ihtiyaçlarda Kubernetes devreye girer.
| Özellik | Docker | Kubernetes |
|---|---|---|
| Temel amaç | Konteyner oluşturma ve çalıştırma | Konteyner orkestrasyonu |
| Ölçekleme | Sınırlı / manuel | Otomatik ve gelişmiş |
| Çoklu sunucu desteği | Ek araçlarla | Yerleşik mantıkla |
| Kendi kendini iyileştirme | Sınırlı | Gelişmiş |
En İyi Uygulamalar
Kubernetes kullanırken sadece kurulum yapmak yeterli değildir. Sürdürülebilir, güvenli ve performanslı bir yapı için bazı en iyi uygulamaların benimsenmesi gerekir.
- Kaynak limitleri tanımlayın: Her pod için CPU ve RAM sınırları belirleyin.
- Health check kullanın:
livenessProbevereadinessProbetanımlayın. - Secret yönetimini ihmal etmeyin: Parolaları düz metin olarak saklamayın.
- Namespace ayrımı yapın: Test ve üretim ortamlarını ayırın.
- İzleme kurun: Metrik, log ve alarm sistemleri olmadan üretim ortamı yönetmeyin.
- Güncellemeleri kontrollü yapın: Rolling update ve rollback planı oluşturun.
- Yedekleme alın: Özellikle persistent veri kullanan servislerde düzenli yedek şarttır.
Ayrıca başlangıç aşamasında yönetilebilir bir altyapı için güçlü bir Linux Hosting yerine doğrudan Kubernetes kurmak gerekmeyebilir. Uygulamanın ihtiyaç seviyesi arttığında Sanal Sunucu veya Kiralık Sunucu altyapısına geçiş daha mantıklı olabilir.
Sıkça Sorulan Sorular
Kubernetes öğrenmek zor mu?
Başlangıçta kavramlar teknik ve detaylı gelebilir. Ancak pod, deployment, service ve ingress gibi temel yapı taşları öğrenildikten sonra yönetim daha anlaşılır hale gelir. Küçük bir test ortamı ile başlamak en iyi yöntemdir.
Kubernetes her proje için gerekli midir?
Hayır. Küçük ve tek servisli projelerde Kubernetes gereksiz karmaşıklık oluşturabilir. Daha basit hosting veya tek sunucu çözümleri yeterli olabilir.
VPS üzerinde Kubernetes kurulabilir mi?
Evet, kurulabilir. Özellikle geliştirme, test ve orta ölçekli iş yüklerinde VPS/VDS üzerinde Kubernetes çalıştırmak mümkündür. Ancak kaynak planlaması doğru yapılmalıdır.
Kubernetes ile yüksek erişilebilirlik sağlanır mı?
Doğru mimari kurulduğunda evet. Birden fazla node, yük dağıtımı, sağlık kontrolleri ve otomatik yeniden başlatma gibi özellikler sayesinde yüksek erişilebilirlik elde edilebilir.
Kubernetes ile Docker aynı şey mi?
Hayır. Docker konteyner teknolojisidir, Kubernetes ise bu konteynerlerin büyük ölçekte yönetilmesini sağlayan orkestrasyon platformudur.
Kubernetes için hangi sunucu tipi daha uygundur?
Projenin boyutuna göre değişir. Küçük kümeler için VDS veya bulut sunucu yeterli olabilir. Daha yoğun ve kritik sistemlerde ise kiralık sunucu tercih edilebilir.
Sonuç
Kubernetes, modern uygulamaların dağıtımı, ölçeklenmesi ve yönetimi için güçlü bir çözümdür. Doğru kullanıldığında operasyonel verimlilik, esneklik ve yüksek erişilebilirlik sağlar; ancak her proje için zorunlu değildir. Bu nedenle ihtiyaç analizi yapmadan yalnızca trend olduğu için tercih edilmemelidir.
Eğer uygulamanız için güçlü ve esnek bir altyapı planlıyorsanız, Corelux’un Sanal Sunucu, Bulut Sunucu, Kiralık Sunucu ve Yedekleme Hizmeti çözümlerini değerlendirerek Kubernetes altyapınızı daha güvenli ve sürdürülebilir şekilde oluşturabilirsiniz.
Yazar
Boran BAR