Kubernetes'e İlk Adım: Pod, Service ve Deployment Kavramları

Kubernetes'in temel kavramlarını öğrenin. Pod, Service, Deployment ve Namespace yapılarını pratik örneklerle keşfederek container orkestrasyonuna başlayın.

Container'lar uygulamaları paketlemenin standart yolu haline geldi, ancak onlarca veya yüzlerce container'ı yönetmek manuel olarak sürdürülemez. Kubernetes başlangıç rehberimizde container orkestrasyonunun temel yapı taşlarını — Pod, Service, Deployment ve Namespace — pratik örneklerle ele alıyoruz. Bu kavramları anlamak, production ortamında ölçeklenebilir ve dayanıklı uygulamalar çalıştırmanın ilk adımıdır.

Kubernetes Nedir?

Kubernetes (K8s), Google tarafından geliştirilen ve 2014'te açık kaynak olarak yayınlanan bir container orkestrasyon platformudur. Container'ların dağıtımını, ölçeklenmesini ve yönetimini otomatikleştirir. Bugün CNCF (Cloud Native Computing Foundation) tarafından yönetilmektedir.

Kubernetes Mimarisi

Kubernetes cluster'ı Control Plane (API Server, etcd, Scheduler, Controller Manager) ve Worker Node'lardan (kubelet, kube-proxy, container runtime) oluşur. Docker geliştirme ortamı rehberimiz container temellerini anlatır.

Kavram Açıklama Kullanım Alanı
Pod En küçük dağıtım birimi, 1+ container içerir Uygulama çalıştırma
Service Pod'lara sabit ağ erişimi sağlar Yük dengeleme, servis keşfi
Deployment Pod'ların istenen durumunu yönetir Rolling update, rollback
Namespace Cluster içinde mantıksal izolasyon Ortam ayrımı (dev, staging, prod)
ConfigMap / Secret Yapılandırma ve hassas veri yönetimi Ortam değişkenleri, şifreler

Pod: Kubernetes'in Temel Birimi

Pod, bir veya daha fazla container'ı aynı ağ namespace'i ve depolama alanını paylaşarak çalıştıran en küçük birimdir. Genellikle bir Pod içinde tek bir uygulama container'ı bulunur; sidecar pattern'de yardımcı container'lar eklenebilir.

💡 İpucu: Pod'ları doğrudan oluşturmak yerine Deployment kullanın. Deployment, Pod'ların istenen sayıda çalışmasını garanti eder ve güncelleme stratejisi (rolling update) sağlar.

Service ve Networking

Pod'lar geçicidir — yeniden oluşturulduğunda IP adresleri değişir. Service, Pod'lara sabit bir DNS adı ve IP üzerinden erişim sağlar. ClusterIP (cluster içi), NodePort (dış erişim) ve LoadBalancer (bulut load balancer) olmak üzere üç temel Service türü vardır.

Deployment ile Uygulama Yönetimi

Deployment, Pod'ların declarative yönetimini sağlar. Replica sayısını belirler, rolling update stratejisi ile sıfır kesinti güncellemesi yapar ve sorun durumunda otomatik rollback imkânı sunar. CI/CD pipeline rehberimizde Kubernetes deployment otomasyonunu inceleyebilirsiniz.

⚠️ Önemli: Resource limits (CPU ve memory) tanımlamadan Pod oluşturmayın. Limitsiz Pod'lar node kaynaklarını tüketebilir ve diğer uygulamaları etkileyebilir. Her container için requests ve limits değerlerini belirleyin.

Yerel Geliştirme: Minikube ve Kind

Kubernetes'i yerel makinenizde denemek için Minikube veya Kind (Kubernetes in Docker) kullanın. Minikube tek node'lu bir cluster oluşturur; Kind ise Docker container'ları içinde multi-node cluster simüle eder. Kubernetes resmi tutorial'ı başlangıç için mükemmel bir kaynaktır. Ayrıca Minikube dokümantasyonu kurulum adımlarını detaylı anlatır.

Sıkça Sorulan Sorular

Kubernetes öğrenmek için Docker bilmek şart mı?

Evet, Kubernetes container'ları orkestre eder. Dockerfile yazma, image oluşturma ve container çalıştırma temellerini bilmek Kubernetes öğrenimini kolaylaştırır.

Küçük projeler için Kubernetes gerekli mi?

Tek sunucuda çalışan basit uygulamalar için Kubernetes gereksiz karmaşıklık yaratır. Docker Compose veya PM2 gibi araçlar yeterlidir. Kubernetes, birden fazla servis ve ölçekleme ihtiyacı olduğunda değer kazanır.

Managed Kubernetes ile self-hosted arasındaki fark nedir?

Managed Kubernetes (EKS, GKE, AKS) control plane yönetimini sağlayıcıya bırakır. Self-hosted'da tüm bileşenleri siz yönetirsiniz. Başlangıç için managed çözümler önerilir.

Sonuç

Kubernetes başlangıç yolculuğunda Pod, Service, Deployment ve Namespace kavramlarını anlamak temel oluşturur. Yerel ortamda Minikube ile pratik yaparak bu kavramları pekiştirin ve production ortamına geçmeden önce resource limits, health check ve rolling update stratejilerini uygulayın.

Kubernetes İçin Güçlü Bulut Altyapısı

Hosted Cloud bulut sunucuları ile Kubernetes cluster'ınızı yüksek performanslı donanım üzerinde çalıştırın.

Bulut Sunucu Planlarını İncele →
A

Ahmet Yılmaz

Kıdemli Altyapı Mühendisi

10 yılı aşkın bulut altyapısı ve DevOps deneyimiyle Hosted Cloud'un teknik ekibinde yer almaktadır. Kubernetes, Terraform ve yüksek erişilebilirlik mimarileri üzerine uzmanlaşmıştır.

Yorumlar yakında