Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Tam Kılavuz: Minikube ile Kubernetes’te Laravel + React Uygulamasını Dağıtma
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Tam Kılavuz: Minikube ile Kubernetes’te Laravel + React Uygulamasını Dağıtma

Yazılım

Tam Kılavuz: Minikube ile Kubernetes’te Laravel + React Uygulamasını Dağıtma

teknomers
Son güncelleme: 13 Ocak 2026 00:18
teknomers
Paylaş
Paylaş

Giriş

Kubernetes dünyasına yeni adım atan bir birey olarak, tam yığın bir uygulamayı dağıtmak çok karmaşık görünebilir. Bu kapsamlı rehberde, bir Laravel + React uygulamasını (BookMyShow) Windows üzerinde Minikube kullanarak Kubernetes’te nasıl dağıtacağınızı gösteriyorum. Bu rehberin sonunda sadece nasıl dağıtacağınızı değil, her adımın neden önemli olduğunu da anlayacaksınız.

Kubernetes Nedir ve Neden Kullanılır?

Kubernetes (genellikle K8s olarak kısaltılır), açık kaynak bir konteyner orkestrasyon platformudur. Bunu, aşağıdaki görevleri otomatik olarak gerçekleştiren zeki bir yönetici olarak düşünün:

  • Otomatik olarak konteynerleri dağıtır ve yönetir
  • Uygulamaları talebe göre ölçeklendirir
  • Hizmet keşfi ve yük dengeleme işlemlerini yönetir
  • Başarısız konteynerleri yeniden başlatarak kendini onarır

Minikube, makinenizde yerel bir Kubernetes kümesi oluşturan hafif bir Kubernetes uygulamasıdır; bu, öğrenim ve geliştirme için mükemmeldir.

Ön Gereksinimler

Başlamadan önce, Windows bilgisayarınızda aşağıdakilerin kurulu olduğundan emin olun:

  1. Docker Desktop – Konteynerleştirme becerileri sağlar
  2. Minikube – Yerel Kubernetes kümesi
  3. kubectl – Kubernetes ile etkileşimde bulunan komut satırı aracı

Kurulumları Doğrulama
PowerShell’i açın ve aşağıdaki komutlarla kurulumları doğrulayın:

# Docker'ı kontrol et
docker --version

# Minikube'u kontrol et
minikube version

# kubectl'i kontrol et
kubectl version --client

Mimariyi Anlamak

Uygulamamız birden fazla bileşenden oluşmaktadır:

Temel Kubernetes Kavramları Açıklaması

  1. Pods

    A Pod, Kubernetes’teki en küçük dağıtılabilir birimdir. Bir veya daha fazla konteyneri sarar. Bizim durumumuzda, ayrı pod’larımız var:

    # 1. Laravel uygulaması
    # 2. MySQL veritabanı
    # 3. Redis önbellek
    # 4. phpMyAdmin

  2. Deployments
    Deployments, pod’larınız için istenen durumu tanımlar. Belirtilen sayıda pod kopyasının çalışmasını sağlar ve güncellemeleri yönetir.

  3. Services
    Service, pod’lara erişmek için sabit bir ağ ucu sağlar. Pod’lar yeniden başlatılsa ve yeni IP adresleri alsa bile, hizmet sabit kalır.

  4. Persistent Volumes
    Persistent Volumes (PV), pod yaşam döngülerinden bağımsız olarak kalıcı depolama sağlar. Verilerin pod yeniden başlatmalarını aşması gereken veritabanları için gereklidir.

  5. Secrets
    Secrets, şifreler ve API anahtarları gibi hassas bilgileri güvenli bir şekilde saklar.

  6. Init Containers
    Init Containers, ana uygulama konteyneri başlamadan önce çalıştırılır. Bağımlılıkların yüklenmesi gibi kurulum görevleri için mükemmeldir.

Aşama Aşama Dağıtım Rehberi

Adım 1: Minikube’u Başlat
Öncelikle, Docker Desktop’ın çalıştığından emin olun ve ardından Minikube’u başlatın:

minikube start

Burada neler oluyor?

  • Minikube, sanal bir makine oluşturur
  • Kubernetes bileşenlerini yükler
  • Tek düğümlü bir küme kurar

Adım 2: Docker Ortamını Yapılandırma
Minikube için Docker görüntüleri oluştururken, Docker Desktop’ın yerine Minikube’un Docker daemon’unu kullanmamız gerekiyor:

minikube -p minikube docker-env --shell powershell | Invoke-Expression

Bunun önemi nedir? Yerel Docker kullanarak bir görüntü oluşturduğunuzda, Minikube bunu göremez çünkü kendi sanal makinesinde çalışır. Bu komut, terminalinizi Minikube’un Docker daemon’unu kullanacak şekilde yapılandırır, böylece oluşturduğunuz görüntüler Minikube’a doğrudan erişilebilir.

Adım 3: Uygulama Görüntünüzü Oluşturun

docker build -t sail-8.5/app:latest .

Dockerfile’ınızı anlamak: Dockerfile’ınız genellikle:

  1. Gerekli uzantılara sahip bir PHP imajından başlar
  2. Composer bağımlılıklarını yükler
  3. Uygulama kodunu kopyalar
  4. İzinleri ayarlar
  5. Web sunucusunu yapılandırır

Adım 4: Doğru Sırayla Dağıtım Yapın
Kubernetes kaynakları belirli bir sırada dağıtılmalıdır:

# 1. Önce Secrets (diğer hizmetler için gereklidir)
kubectl apply -f k8s\secrets.yaml

# 2. Depolama alanları
kubectl apply -f k8s\persistent-volumes.yaml

# 3. Veritabanı ve destekleyici hizmetler
kubectl apply -f k8s\mysql-deployment.yaml
kubectl apply -f k8s\redis-deployment.yaml
kubectl apply -f k8s\phpmyadmin-deployment.yaml

# 4. Veritabanının hazır olmasını bekleyin
kubectl wait --for=condition=ready pod -l tier=database --timeout=120s

# 5. Nihayet uygulamayı dağıtın
kubectl apply -f k8s\deployment.yaml
kubectl apply -f k8s\service.yaml

# 6. Uygulamanın hazır olmasını bekleyin
kubectl wait --for=condition=ready pod -l tier=frontend --timeout=120s

Bu sıranın önemi nedir?

Secrets, hizmetlerin bunları referans almadan önce mevcut olmalıdır.
Veritabanları, uygulamalar bağlantı kurmaya çalışmadan önce hazır olmalıdır.
kubectl wait komutu, her katmanın tamamen işletime hazır olmasını sağlar.

Adım 5: Veritabanını Başlatın
Pod’lar çalıştıktan sonra, veritabanınızı başlatın:

# Pod adını dinamik olarak alın
$podName = kubectl get pods -l tier=frontend -o jsonpath="{.items[0].metadata.name}"

# Migrations'ı çalıştırın
kubectl exec -it $podName -- php artisan migrate

# Örnek verilerle veritabanını doldurun
kubectl exec -it $podName -- php artisan db:seed

kubectl exec’in anlamı: Bu komut, çalışan bir konteynerin içinde bir komut çalıştırır; bu, bir sunucuya SSH ile bağlanmaya benzer. -it bayrakları, şunu ifade eder:

-i: stdin’i açık tutar (etkileşimli)
-t: bir sanal TTY (terminal) ayarlar

Adım 6: Geliştirme Sunucusunu Başlatın
Laravel + React uygulamaları için Vite kullanıyorsanız, Vite geliştirme sunucusunu başlatmalısınız:

kubectl exec -it $podName -- npm run dev -- --host 0.0.0.0

Neden –host 0.0.0.0? Varsayılan olarak, Vite localhost’a bağlanır, bu yalnızca konteynerin içinden erişilebilir. 0.0.0.0 kullanmak, dışarıdan erişilebilir olmasını sağlar.

Adım 7: CORS’u Port Yönlendirmesi ile Yönetme
Modern web geliştirme sık sık CORS (Cross-Origin Resource Sharing) zorlukları ile karşılaşır. Çözüm budur:

Start-Job -Name "port-5173" -ScriptBlock { 
    kubectl port-forward $using:podName 5173:5173 
}

Port yönlendirmesi nedir? Port-yönlendirme, yerel makineniz ile bir pod arasında bir tünel oluşturur. Tarayıcınız localhost:5173 adresine bir istek yaptığında, bu istek pod’un 5173 portuna yönlendirilir.

Adım 8: Uygulamanıza Erişim Sağlayın

# Uygulama URL'sini alın
minikube service bookmyshow-service --url

# phpMyAdmin URL'sini alın
minikube service phpmyadmin-service --url

Minikube Hizmetlerini Anlamak: Minikube, hizmetleri NodePort aracılığıyla dışa açar; bu, Minikube VM’sindeki bir portu hizmetinize eşler. –url bayrağı, erişilebilir URL’yi döndürür.

Kubernetes Yapılandırma Dosyalarını Anlamak
secrets.yaml – Hassas Verileri Güvenli Hale Getirmek

apiVersion: v1
kind: Secret
metadata:
  name: mysql-secret
type: Opaque
data:
  password: cGFzc3dvcmQ=  # base64 kodlu

Temel Noktalar:

  • Secrets base64 kodludur (şifrelenmiş değildir!)
  • Üretimde, Sealed Secrets veya harici gizli yöneticiler gibi araçlar kullanın
  • Gerçek gizli bilgileri versiyon kontrolüne asla eklemeyin

deployment.yaml – Uygulama Planı
Dağıtım dosyası şunları içerir:

Init Containers:

initContainers:
- name: init-permissions
  # Dosya izinlerini ayarlar
- name: npm-install
  # Node bağımlılıklarını yükler

Neden Init Containers? Ana konteyner başlamadan önce sıralı bir şekilde çalışırlar, şu görevler için mükemmeldir:

  • İzinleri ayarlamak
  • Bağımlılıkları yüklemek
  • Veritabanı migrations’larını çalıştırmak
  • Yapılandırmayı indirmek

Ana Konteyner:

containers:
- name: app
  image: sail-8.5/app:latest
  imagePullPolicy: Never  # Yerel görüntüyü kullan

imagePullPolicy: Never, Kubernetes’e bir kayıt defterinden çekmemesini, bunun yerine oluşturduğunuz yerel görüntüyü kullanmasını söyler.

Volume Mounts:

volumeMounts:
- name: app-storage
  mountPath: /var/www/html/storage
- name: node-modules
  mountPath: /var/www/html/node_modules

Volume’lar, veri kaybını önler. Biz:

  • Önemli veriler için PersistentVolumeClaim (depolama)
  • Geçici veriler için emptyDir (önbellek, node_modules)

service.yaml – Ağ Erişimi

apiVersion: v1
kind: Service
metadata:
  name: bookmyshow-service
spec:
  type: NodePort
  selector:
    app: bookmyshow
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30080

Hizmet Türleri:

  • ClusterIP (varsayılan): Sadece küme içinde erişilebilir
  • NodePort: Her düğümün IP’sinde sabit bir port üzerinden erişilebilir
  • LoadBalancer: Bulut sağlayıcısı yük dengeleyici (Minikube’da mevcut değil)

Temel kubectl Komutları

Kaynakları Görüntüleme


# Tüm kaynakları görüntüle
kubectl get all

# Belirli kaynakları görüntüle
kubectl get pods
kubectl get deployments
kubectl get services

# Ayrıntılı bilgi
kubectl describe pod 
kubectl get pods -o wide  # IP adreslerini ve düğümleri gösterir

Log’lar ve Hata Ayıklama

# Log'ları görüntüle (son log'lar)
kubectl logs 

# Log'ları akış modunda (follow mode)
kubectl logs -f 

# Belirli bir label'a sahip tüm pod'ların log'ları
kubectl logs -l tier=frontend -f

# Önceki konteynerin log'larını görüntüle (çökmüşse)
kubectl logs  --previous

Komutları Çalıştırma

# Komut çalıştır
kubectl exec  -- ls -la

# Etkileşimli shell
kubectl exec -it  -- bash

# Belirli bir konteynerda komut çalıştır (birden çok konteynerli pod'lar için)
kubectl exec -it  -c  -- bash

Kaynakları Yönetme

# Değişiklikleri uygula
kubectl apply -f 

# Kaynakları sil
kubectl delete -f 
kubectl delete pod 

# Dağıtımı zorla yeniden başlat
kubectl rollout restart deployment 

# Yeniden başlatma durumunu kontrol et
kubectl rollout status deployment 

Geliştirme Ortamını Başlatma
Bilgisayarınızı kapattıktan veya yeniden başlattıktan sonra, hızlı başlangıç rutininiz:

# 1. Minikube'u başlat
minikube start

# 2. Pod'ların hazır olmasını bekleyin (Minikube duraklatıldığında sürdürülür)
kubectl wait --for=condition=ready pod -l tier=frontend --timeout=120s

# 3. Pod adını alın
$podName = kubectl get pods -l tier=frontend -o jsonpath="{.items[0].metadata.name}"

# 4. Vite dev sunucusunu arka planda başlat
Start-Job -Name "vite-dev" -ScriptBlock { 
    kubectl exec -it $using:podName -- npm run dev -- --host 0.0.0.0 
}

# 5. CORS için port yönlendirin
Start-Job -Name "port-5173" -ScriptBlock { 
    kubectl port-forward $using:podName 5173:5173 
}

# 6. Uygulama URL'lerini alın
minikube service bookmyshow-service --url
minikube service phpmyadmin-service --url

Yaygın Sorunlar ve Çözümleri

Sorun 1: Görüntü Çekme Hataları
Hata: ErrImagePull veya ImagePullBackOff

Çözüm:

# Minikube'un Docker'ını kullanarak yeniden oluştur
minikube -p minikube docker-env --shell powershell | Invoke-Expression
docker build -t sail-8.5/app:latest .
kubectl delete pod -l tier=frontend

Neden? Kubernetes, bir kayıt defterinden çekmeyi dener, ancak bu görüntü yalnızca Minikube’un yerelinde mevcuttur.

Sorun 2: CORS Hataları
Hata: CORS isteği başarılı olmadı

Çözüm:


# Vite dev sunucusunun portunu yönlendirin
Start-Job -ScriptBlock { kubectl port-forward $using:podName 5173:5173 }

Neden? Tarayıcınız, pod içindeki Vite dev sunucusuna doğrudan erişemez, port yönlendirmesi olmadan.

Sorun 3: Port Zaten Kullanımda
Hata: Port 5173 zaten kullanımda

Çözüm:

# Mevcut işlemi kapatın
kubectl exec -it $podName -- pkill -f "vite"

# Veya pod'u yeniden başlatın
kubectl delete pod -l tier=frontend

Sorun 4: Veritabanı Bağlantısı Başarısız
Çözüm:

# MySQL pod'unun çalıştığını kontrol edin
kubectl get pods -l tier=database

# MySQL log'larını kontrol edin
kubectl logs -l tier=database

# Servisin mevcut olup olmadığını doğrulayın
kubectl get service mysql-service

Hata Ayıklama İpuçları:

  • Hizmetler DNS adlarını kullanır (örneğin, mysql-service)
  • Çevresel değişkenlerin doğru olduğunu kontrol edin
  • Secrets’in dağıtımlardan önce oluşturulduğundan emin olun

En İyi Uygulamalar

  1. Etiketleri Tutarlı Kullanın

Etiketler, kaynakları düzenlemek ve seçmekte yardımcı olur:

labels:
  app: bookmyshow
  tier: frontend
  environment: development
  1. Kaynak Sınırlarını Ayarlayın
    Kaynak tükenmesini önleyin:
resources:
  requests:
    memory: "256Mi"
    cpu: "250m"
  limits:
    memory: "512Mi"
    cpu: "500m"
  1. Sağlık Kontrolleri Kullanın
    Yaşama ve hazır olma denetimleri ekleyin:
livenessProbe:
  httpGet:
    path: /health
    port: 80
  initialDelaySeconds: 30
  periodSeconds: 10

readinessProbe:
  httpGet:
    path: /ready
    port: 80
  initialDelaySeconds: 10
  periodSeconds: 5
  1. Kaynaklarınızı Namespace ile Ayırın
    Daha büyük projeler için, namespace’ler kullanın:
# Namespace oluştur
kubectl create namespace bookmyshow

# Namespace'e dağıtım yap
kubectl apply -f deployment.yaml -n bookmyshow

# Varsayılan namespace ayarla
kubectl config set-context --current --namespace=bookmyshow
  1. Konfigürasyon için ConfigMaps Kullanın
    Yapılandırmayı koddan ayırın:
apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  APP_ENV: "local"
  LOG_LEVEL: "debug"

İzleme ve Görünürlük
Kaynak Kullanımını Görüntüleme

# Pod kaynak kullanımı
kubectl top pods

# Düğüm kaynak kullanımı
kubectl top nodes

# Olaylar için detaylı bilgi
kubectl describe pod 

Kubernetes Dashboard’a Erişim

# Dashboard'u başlat
minikube dashboard

Bu, tüm küme kaynaklarını görsel olarak gösteren bir web UI açar.

Temizlik
Kısmi Temizleme (Küme Koruma)

# Tüm uygulama kaynaklarını sil
kubectl delete -f k8s\service.yaml
kubectl delete -f k8s\deployment.yaml
kubectl delete -f k8s\phpmyadmin-deployment.yaml
kubectl delete -f k8s\redis-deployment.yaml
kubectl delete -f k8s\mysql-deployment.yaml
kubectl delete -f k8s\persistent-volumes.yaml
kubectl delete -f k8s\secrets.yaml

# Minikube'u durdur (küme durumunu korur)
minikube stop

Tam Temizlik

# Tüm kümeyi sil
minikube delete

# Bu, her şeyi kaldırır: tüm pod'lar, hizmetler, volume'ler

PowerShell Arka Plan İşlerini Anlamak
PowerShell işlerini, işlemlerin arka planda çalışmasına izin verir:

# Arka planda bir iş başlat
Start-Job -Name "my-job" -ScriptBlock { 
    # Uzun süren komut
}

# İşleri listele
Get-Job

# İş çıktılarını görüntüle
Receive-Job -Name "my-job"

# Durdur ve kaldır
Stop-Job -Name "my-job"
Remove-Job -Name "my-job"

Ne zaman işler kullanılmalı:

Port-yönlendirmesi (aktif kalması gerekir)
Geliştirme sunucularını çalıştırma
Terminalinizi bloke eden herhangi bir uzun süreli işlem
Gelecek İncelenecek Gelişmiş Konular

  1. Helm Charts
    Kubernetes için paket yöneticisi—K8s için npm gibi.

  2. Ingress Kontrolörleri
    Gelişmiş yönlendirme ve yük dengeleme.

  3. StatefulSets
    Veritabanları gibi belirli pod kimlik gereksinimleri olan durum bilgisi içeren uygulamalar için.

  4. Horizontal Pod Autoscaling
    CPU/memory kullanımına dayalı olarak pod’ları otomatik olarak ölçeklendirir.

  5. CI/CD Entegrasyonu
    GitHub Actions, Jenkins veya GitLab CI ile dağıtımı otomatikleştirin.

Sonuç
Tebrikler! Minikube kullanarak Kubernetes’te tam yığın bir Laravel + React uygulamasını başarıyla dağıttınız. Artık şunları anlıyorsunuz:

  • Temel Kubernetes kavramları (Pods, Deployments, Services)
  • Kubectl’yi etkili bir şekilde nasıl kullanacağınızı
  • Yaygın sorunları nasıl çözeceğinizi
  • Kubernetes ile günlük geliştirme iş akışını
  • Konteyner orkestrasyonu için en iyi uygulamalar

Kubernetes’in zorlu bir öğrenme eğrisi vardır, ancak bu tür pratiklerle, hızla yetkin hale geleceksiniz. Burada öğrendiğiniz beceriler, sadece Minikube ile yerel geliştirme için değil, aynı zamanda Bulut’taki üretim Kubernetes kümeleri (AWS EKS, Google GKE, Azure AKS) için de geçerlidir.

Ek Kaynaklar

Bu rehber, BookMyShow uygulamasını Windows üzerinde Docker Desktop ve Minikube ile dağıtma üzerine kuruludur. Üretim dağıtımları için ek güvenlik önlemleri, izleme çözümleri ve bulut yerel hizmetleri düşünün.

Kaynak: Orijinal Makale

Contents
  • Giriş
  • Kubernetes Nedir ve Neden Kullanılır?
  • Ön Gereksinimler
  • Mimariyi Anlamak
  • Temel Kubernetes Kavramları Açıklaması
  • Aşama Aşama Dağıtım Rehberi
  • Temel kubectl Komutları
  • Yaygın Sorunlar ve Çözümleri
    • Hata Ayıklama İpuçları:
  • En İyi Uygulamalar
  • Ek Kaynaklar
Artisan Kaydırmaktan Bıktınız mı? php artisan list –mine ile Tanışın
Sıfırdan PHP Hata Ayıklayıcı Yapmanın Teknik Süreci
Laravel kuyruğu “Açık dosya sayısı sınırını aştı” hatasıyla karşılaşıyor
Kendi Planlama Pokeri Araçımı Neden Geliştirdim (ve Arkasında Ne Var)
API Ara Katmanı – Laravel 11 ile entegre DLP taraması olan kendi barındırdığınız API geçidi
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Minneapolis’te Sağcı İnfluencerlerin Yükselişi: Gerçekler ve Sonuçlar
Sonraki Makale Pebble Kurucusu Yeni Şirketinin Bir Girişim Olmadığını Açıkladı

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Yaz Geliştirici Festivali 2026: Tüm Yenilikler Ortaya Çıkıyor
Oyun
Madonna’nın Grindr’daki Cesur ve Heyecan Verici Ticareti
Genel
Meta’nın AI Sunucuları İçin Tüm ABD’ye Çadırlar Kurması
Donanım
Grand Theft Auto VI Oyun Dünyasında Tarihleri Değiştiriyor
Liste
Microsoft’un Mojo’su Geri Mi Gidiyor? AI ve Yenilikler Ne Diyor?
Genel
Donanım Dünyası: Computex 2026, 4. Gün – B2B Değişimi ve Taipei’ye Veda
Donanım
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?