Kubernetes, konteynerleştirilmiş uygulamaların çalıştırılması, yönetilmesi, ölçeklendirilmesi ve otomatik geri yüklenmesini sağlar; otomatik yük dengesi, rolling update/rollback, HPA ile ölçeklenebilirlik ve güvenli konfigürasyon yönetimi sunar. Uygulama dağıtımı için Docker imajı hazırlanmalı, cluster kurulmalı ve YAML dosyalarıyla deployment ile servis tanımları yapılmalıdır. Konfigürasyonlar ConfigMap ve Secret ile, yük bazlı otomasyon ise HPA ile sağlanır. Bluemark Academy’nin Kubernetes & OpenShift eğitimiyle bu süreçler profesyonel seviyeye taşınabilir.
Kubernetes Nedir ve Neden Kullanılır?
Kubernetes (k8s), konteynerleştirilmiş uygulamaların çalıştırılması, yönetilmesi, ölçeklendirilmesi ve otomatik olarak geri yüklenmesi gibi işlevleri sunar.
Avantajları:
- Otomatik yük dengesini sağlar
- Kolay ölçeklenebilirlik
- Rolling update ve rollback desteği
- Güvenli, izole çalışma ortamı
Uygulama Dağıtımı İçin Gerekli Ön Hazırlıklar
- Docker ile uygulama imajı oluşturulmalıdır.
- Kubernetes cluster kurulumu yapılmalıdır (minikube, kind, EKS, GKE vs.).
kubectlkomutu kurulmalı ve cluster’a bağlanmalıdır.
Örnek komutlar;
kubectl version --client
kubectl config view
kubectl get nodes
Deployment YAML Dosyası Oluşturma
Uygulama Kubernetes’e, YAML formatındaki bir tanım dosyası ile tanıtılır.
Örnek deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: ornek-uygulama
spec:
replicas: 3
selector:
matchLabels:
app: ornek
template:
metadata:
labels:
app: ornek
spec:
containers:
- name: ornek-konteyner
image: myregistry/ornek:v1
ports:
- containerPort: 80
Uygulamanın Kubernetes’e Dağıtılması
Adımlar:
- Deployment dosyası uygulanır:
kubectl apply -f deployment.yaml
- Pod’ları ve durumu kontrol edilir:
kubectl get pods
Servis Oluşturarak Uygulamayı Erişime Açma
Uygulamanın dışarıdan erişilebilir olması için bir servis tanımlanmalıdır.
Örnek service.yaml
apiVersion: v1
kind: Service
metadata:
name: ornek-servis
spec:
type: NodePort
selector:
app: ornek
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30007
Servisi uygulamak:
kubectl apply -f service.yaml
Dağıtım Stratejileri: Rolling Update ve Rollback
Rolling Update:
- Uygulama güncellenirken eski versiyonun bir anda değil, adım adım kaldırılmasını sağlar.
kubectl set image deployment/ornek-uygulama ornek-konteyner=myregistry/ornek:v2
Rollback:
- Eski versiyona geri alma komutu:
kubectl rollout undo deployment/ornek-uygulama
ConfigMap ve Secret Kullanımıyla Konfigürasyon Yönetimi
Kubernetes’te yapılandırma verileri için ConfigMap ve gizli veriler için Secret kaynakları kullanılır.
ConfigMap Örneği:
apiVersion: v1
kind: ConfigMap
metadata:
name: ornek-config
data:
UYGULAMA_MODU: "prod"
Secret Örneği:
apiVersion: v1
kind: Secret
metadata:
name: ornek-secret
stringData:
parola: "gizli123"
Horizontal Pod Autoscaler (HPA) ile Otomatik Ölçeklendirme
Kubernetes, sistem yüküne göre pod sayısını otomatik olarak artırmak veya azaltmak için HPA bileşenini sunar.
HPA Oluşturma Komutu:
kubectl autoscale deployment ornek-uygulama --cpu-percent=50 --min=2 --max=5
HPA’yı Görüntüleme:
kubectl get hpa
Sıkça Sorulan Sorular (SSS)
| Soru | Cevap |
|---|---|
| Uygulama kaç pod olarak dağıtılmalı? | Yükte denge ve hata toleransı için en az 2-3 pod. |
| Servis tipi olarak ne seçilmeli? | Geliştirme için NodePort, prod ortamlar için LoadBalancer. |
| Dağıtımda hata alırsam ne yapmalıyım? | kubectl describe pods ile detaylı log incelenmeli. |
Kubernetes ve OpenShift: Eğitim Alarak Dağıtım Süreçlerini Nasıl Mükemmelleştirebilirsiniz?
Kubernetes üzerinde etkili dağıtım yapabilmek için temel bilgilerin ötesine geçmek gerekir. Bluemark Academy tarafından sunulan Kubernetes & OpenShift Eğitimi, gerçek dünya senaryolarıyla bu süreci profesyonel seviyeye taşımanıza yardımcı olur.