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.
Ahmet Yılmaz
Kıdemli Altyapı Mühendisi
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 →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