CodeBlanks Logo Icon CodeBlanks

Proje tasarımı

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:

  1. Kendi magaza namespace'i
  2. Veritabanı: Secret'tan parola alan tek kopyalı Deployment + ClusterIP Service
  3. API ve web: çok kopyalı Deployment'lar, ConfigMap'ten ayar
  4. 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=magaza

Uygulama Namespace'i hazırla

İki komut yaz: magaza namespace'ini oluştur; etkin context'in namespace'ini magaza yap.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
kubectl create namespace magaza
kubectl config set-context --current --namespace=magaza

Beklenen çı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.

Soru
kubectl apply -f ____
Cevap
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

Orta seviye bölümündeki tüm dersler