Veritabanı Deployment
- Docker & Kubernetes kursu
- Orta seviye
- Ders 68/82
- 4 dk
Veritabanı için Deployment ve Service yazarsın.
Veritabanı Deployment'ı
Veritabanı parolasını Secret'tan alır ve verisini bir volume'de tutar. Bu projede basitlik için tek kopyalı bir Deployment kullanıyoruz; üretimde veritabanları için kalıcı depolama ve sabit kimlik sağlayan StatefulSet tercih edilir (ileri seviyede):
apiVersion: apps/v1
kind: Deployment
metadata:
name: db
namespace: magaza
spec:
replicas: 1
selector:
matchLabels: {app: db}
template:
metadata:
labels: {app: db}
spec:
containers:
- name: postgres
image: postgres:16
envFrom:
- secretRef:
name: db-gizli
ports:
- containerPort: 5432Veritabanı servisi ve secret
API veritabanına db adıyla bağlanır; bunun için aynı adlı bir ClusterIP Service gerekir. Parola komutla Secret'a konur, YAML olarak depoya eklenmez:
kubectl create secret generic db-gizli -n magaza \
--from-literal=POSTGRES_PASSWORD="$DB_PAROLA" --from-literal=POSTGRES_DB=magaza
apiVersion: v1
kind: Service
metadata:
name: db
namespace: magaza
spec:
selector:
app: db
ports:
- port: 5432Uygulama Veritabanı servisi
Bir Service YAML'ı yaz: adı db, namespace'i magaza; selector app: db; port 5432.
Başlangıç kodu
# buraya yazÖrnek çözüm
apiVersion: v1
kind: Service
metadata:
name: db
namespace: magaza
spec:
selector:
app: db
ports:
- port: 5432Beklenen çıktı
service/db created
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Veritabanı Deployment'ının kopya sayısı neden 1'dir?
- Daha ucuzdur
- Service yalnızca bir pod'u görür
- Birden çok PostgreSQL kopyası aynı veriyi yazamaz; çoğaltma ayrı kurulum ister Doğru cevap
- Kubernetes izin vermez
Açıklama: Veritabanı kopyaları kendi çoğaltma protokolleriyle (ör. operator) kurulur.
2 Secret'ın tüm anahtarlarını ortam değişkeni yap.
envFrom:
- ____:
name: db-gizli
envFrom:
- secretRef:
name: db-gizli
Açıklama: envFrom altında secretRef tüm anahtarları yükler.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
db-gizli |
Parola Secret'ı |
Service db |
DNS adı db |
replicas: 1 |
Tek yazıcı |
StatefulSet |
Üretim veritabanı |