KUBERNETES EĞİTİMİ
Kubernetes eğitimi, "YAML korkusu"nu operasyonel kontrol aracına dönüştürmek için tasarlandı. Pod, ReplicaSet, Deployment ve Service ayrımı manifest seviyesinde anlatılır; ConfigMap ve Secret ile konfigürasyonun kod dışına çıkarılması günlük rutine yedirilir.
Program sonunda katılımcı, PersistentVolume ve StatefulSet ile stateful workload tasarlar; Ingress, Network Policy ve Service Mesh ile trafik yönetir; HPA ve VPA ile yatay ve dikey ölçeklemeyi otomatik kurar. RBAC, Pod Security Standards ve Helm chart ile uygulama paketleme eğitimin pratik kapanışıdır. Eğitim akışı Kubernetes belgeleri referans alınarak şekillenir.
Katılımcı Profili
Bu eğitim, Kubernetes'i YAML korkusu olmaktan çıkartıp operasyonel kontrolün aracı yapmak isteyen rollere yöneliktir:
- DevOps Mühendisleri: Container orchestration tasarlayan roller
- SRE'ler: Kubernetes ile production'ı işleten mühendisler
- Platform Mühendisleri: Internal Kubernetes platform kuran roller
- Cloud Native Geliştiriciler: K8s-native uygulama yazan ekipler
- Sistem Yöneticileri: On-prem Kubernetes cluster yöneten roller
Ön Gereklilikler
Bu eğitime katılım için aşağıdaki ön bilgiler önerilir:
- Linux komut satırı (cd, ls, ps, grep) ile temel rahatlık
- Docker konteyner ve image kavramlarına aşinalık
- HTTP, port, DNS ve TLS gibi temel network kavramları
- YAML söz dizimi ile rahatlık
- Git ile sürüm kontrol akışı bilgisi
Süresi ve Tarihi
Süre: 3 gün. Bu süre standart program içindir; ek modüllere ve hedefe göre süre özelleştirilebilir.
Eğitim tarihleri ve saatleri, ekibinizin uygunluğuna göre birlikte planlanır.
Kazanımlar
Eğitim bitiminde katılımcı, Kubernetes'i YAML korkusu olmaktan çıkartıp operasyonel kontrolün aracı yapar:
- Pod, ReplicaSet, Deployment ve Service ayrımını manifest seviyesinde anlatır
- ConfigMap ve Secret ile konfigürasyonu kod dışına çıkarır
- PersistentVolume ve StatefulSet ile stateful workload tasarlar
- Ingress, Network Policy ve Service Mesh ile trafik yönetir
- HPA ve VPA ile yatay ve dikey ölçeklemeyi otomatik kurar
- RBAC ve Pod Security Standards ile güvenlik politikası uygular
- Helm chart ile uygulamayı paketler ve versiyonlar
Kubernetes Eğitimi Konuları
1. Kubernetes Mimarisi
- Container orchestration tarihçesi ve Borg mirası
- Kubernetes ne çözer, ne çözmez
- CNCF (Cloud Native Computing Foundation) ekosistemi
- Cluster, node, pod kavramları
2. Control Plane Bileşenleri
- kube-apiserver: REST API gateway
- etcd: dağıtık key-value store
- kube-scheduler: pod yerleştirme
- kube-controller-manager: reconciliation loop
- cloud-controller-manager: bulut entegrasyonu
3. Worker Node ve kubelet
- kubelet: pod lifecycle yöneticisi
- kube-proxy: network rules
- Container runtime: containerd, CRI-O
- CRI (Container Runtime Interface)
4. Pod ve Container Yaşam Döngüsü
- Pod: en küçük deploy edilebilir birim
- Multi-container pod ve sidecar pattern
- Init container ve init sırası
- Pod lifecycle: Pending, Running, Succeeded, Failed
- Restart policy ve container exit code
5. Deployment, ReplicaSet, StatefulSet, DaemonSet
- Deployment ile rolling update
- ReplicaSet: alt seviye, doğrudan kullanılmaz
- StatefulSet ile stateful workload
- DaemonSet: her node'da pod
- Job ve CronJob batch işler
6. Service - ClusterIP, NodePort, LoadBalancer
- ClusterIP: cluster içi erişim
- NodePort: node bazlı port açma
- LoadBalancer: bulut LB entegrasyonu
- Headless service ve service discovery
- ExternalName service
7. Ingress ve Ingress Controller
- Ingress resource ve path routing
- Nginx, Traefik, HAProxy controller
- TLS terminasyonu ve cert-manager
- Gateway API: Ingress'in geleceği
8. ConfigMap ve Secret
- ConfigMap ile non-sensitive config
- Secret ile credential yönetimi
- Volume mount vs environment variable
- External Secrets Operator
- Sealed Secrets ile GitOps uyumlu
9. Volume - PV, PVC, StorageClass
- PersistentVolume ve PersistentVolumeClaim
- StorageClass ile dinamik provisioning
- Access mode: RWO, ROX, RWX
- CSI (Container Storage Interface) driver
- Volume snapshot ve backup
10. Namespace ve Resource Quota
- Namespace ile multi-tenancy
- ResourceQuota ile namespace limit
- LimitRange ile pod default
- Hierarchical Namespace
11. RBAC - Role ve ClusterRole
- Role ve RoleBinding namespace bazlı
- ClusterRole ve ClusterRoleBinding
- ServiceAccount ile pod identity
- Aggregated ClusterRole
12. Helm Chart ve Templating
- Helm chart yapısı ve Chart.yaml
- Template ve values.yaml
- Helm repository ve sürüm
- Helm hooks ve install/upgrade lifecycle
- Kustomize alternatifi
13. Health Probes - Liveness, Readiness, Startup
- Liveness probe: restart trigger
- Readiness probe: traffic gate
- Startup probe: yavaş başlangıç
- HTTP, TCP, exec probe çeşitleri
14. Autoscaling - HPA, VPA, Cluster Autoscaler
- Horizontal Pod Autoscaler (HPA)
- Vertical Pod Autoscaler (VPA)
- Cluster Autoscaler ile node ekleme
- KEDA: event-driven autoscaling
15. Network Policy ve CNI
- CNI (Container Network Interface)
- Calico, Cilium, Flannel CNI'ları
- NetworkPolicy ile pod-to-pod kısıtlama
- eBPF tabanlı network (Cilium)
16. Service Mesh - Istio Temel
- Sidecar proxy (Envoy) modeli
- Istio control plane bileşenleri
- VirtualService, DestinationRule
- mTLS otomatik şifreleme
- Linkerd ve Cilium Service Mesh alternatifi
17. Logging ve Monitoring
- Prometheus ile cluster metric
- Loki ile log aggregation
- Grafana dashboard
- OpenTelemetry collector
- kube-state-metrics ve cAdvisor
18. GitOps - Argo CD ve Flux
- GitOps prensibi: declarative state in Git
- Argo CD application ve sync
- Flux v2 ve GitRepository
- Drift detection ve auto-heal
- Progressive delivery: Argo Rollouts, Flagger
KUBERNETES EĞİTİMİ ile İlgili
Sıkça Sorulan Sorular ve Cevapları
Deployment ile StatefulSet arasında nasıl seçim yapılır?
Deployment stateless uygulamalar için — pod'lar değiştirilebilir, sırasız. StatefulSet stateful (DB, Kafka, Zookeeper) — pod'lar ordered (web-0, web-1) ve stable network identity ile persistent volume claim. DB'yi Deployment'la yönetmek veri kaybına yol açar; doğru seçim kritik.
ConfigMap ve Secret arasındaki fark sadece encryption mı?
Secret base64 encoded — varsayılan olarak şifrelenmez! Encryption at rest için EncryptionConfiguration veya external secret manager (Vault, Sealed Secrets) gerekir. Pratik fark: Secret etcd'de farklı tutulur, kubectl get secret default'ta değer maskelenir; RBAC ile erişim ayrıştırılır. Hassas veri için Secret + KMS şart.
HPA ile VPA arasında ölçekleme kararı?
Horizontal Pod Autoscaler CPU/memory/custom metric'e göre replica sayısını artırır — stateless ve yatay ölçeklenen iş yükleri için. Vertical Pod Autoscaler tek pod'un resource'unu artırır — stateful veya yatay zor ölçeklenen iş yükleri için. İkisi aynı pod'da çatışır; karar paterni stateful mu stateless mi belirler.
Ingress Controller seçimi (Nginx, Traefik, HAProxy) nasıl yapılır?
Nginx-ingress en yaygın, sağlam ama config karmaşık olabilir. Traefik dinamik config ve service discovery güçlü, CRD ile k8s-native. HAProxy yüksek throughput ve TCP layer için tercih edilir. AWS ALB Controller bulut-native entegrasyon sağlar. Karar takım tecrübesi ve özel feature ihtiyacına bağlı.
Pod Security Standards (Restricted, Baseline, Privileged) nasıl uygulanır?
PSS namespace label ile uygulanır (pod-security.kubernetes.io/enforce=restricted). Restricted en güvenli — root yok, privileged escalation yok, host network yok. Baseline minimum güvenlik. Privileged sınırsız (sadece sistem namespace'leri için). Multi-tenant cluster'da Restricted default olmalı.
Helm chart ile Kustomize arasındaki karar?
Helm template + values ile parametrik chart paketler — versioning, rollback ve marketplace gücü var. Kustomize manifest'leri patch ile değiştirir; daha sade, native kubectl desteği. Karmaşık parametre yönetimi Helm; environment-specific küçük override Kustomize. ArgoCD ikisini de destekler.



