Proje tasarımı
- Docker & Kubernetes kursu
- Orta seviye
- Ders 67/82
- 4 dk
Web ve veritabanı için Kubernetes yapısını tasarlarsın.
Proje: çok katmanlı uygulama
Bu projede bir web arayüzü, bir API ve bir PostgreSQL veritabanından oluşan uygulamayı Kubernetes'e taşıyacaksın. Plan:
- Kendi
magazanamespace'i - Veritabanı: Secret'tan parola alan tek kopyalı Deployment + ClusterIP Service
- API ve web: çok kopyalı Deployment'lar, ConfigMap'ten ayar
- Dışarıya yalnızca web açılır (NodePort)
k8s/
00-namespace.yaml
10-db.yaml
20-api.yaml
30-web.yaml
40-ayar.yaml
kubectl apply -f k8s/Dosya adlarındaki sayılar, klasör uygulanırken sıranın tahmin edilebilir olmasını sağlar.
Namespace ve bağlam
İlk dosya namespace'i oluşturur; sonraki tüm nesneler metadata.namespace: magaza taşır. Çalışırken her komuta -n yazmamak için context'in namespace'i ayarlanır:
# 00-namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: magaza
kubectl apply -f k8s/00-namespace.yaml
kubectl config set-context --current --namespace=magazaUygulama Namespace'i hazırla
İki komut yaz: magaza namespace'ini oluştur; etkin context'in namespace'ini magaza yap.
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl create namespace magaza
kubectl config set-context --current --namespace=magazaBeklenen çıktı
namespace/magaza created Context "minikube" modified.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bu tasarımda veritabanına cluster dışından erişilebilir mi?
- Evet, 5432 portundan
- Evet, NodePort ile
- Yalnızca Minikube'de
- Hayır; ClusterIP yalnızca cluster içidir Doğru cevap
Açıklama: Gerektiğinde kubectl port-forward ile geçici erişim sağlanır.
2 Klasördeki tüm dosyaları uygula.
kubectl apply -f ____
kubectl apply -f k8s/
Açıklama: -f bir klasör alabilir.
3 Katmanları eşleştir.
| Kavram | Anlamı |
|---|---|
web |
NodePort ile dışa açık |
api |
ClusterIP, çok kopya |
db |
ClusterIP, tek kopya |
magaza |
Projenin namespace'i |