9 Şubat 2026 Pazartesi

Docker ile Lokal Yapay Zekâ Modeli Çalıştırma: Ollama Kurulumu ve Open WebUI ile Web Arayüzü

Giriş: Bulutta Değil, Kendi Bilgisayarında Yapay Zekâ

Yapay zekâ modellerini denemek için çoğu kişi web servislerine yöneliyor. Ancak hem gizlilik hem de maliyet açısından, modeli kendi bilgisayarında çalıştırmak ciddi avantaj sağlayabiliyor. Bu rehberde güncel ve pratik bir yaklaşımı ele alacağım: Ollama ile yerel (local) LLM çalıştırmak ve bunu Docker üzerinden Open WebUI ile şık bir web arayüzüne bağlamak. Sonuçta tarayıcıdan sohbet edebileceğiniz, API erişimi sunan ve tamamen sizin kontrolünüzde bir kurulum elde edeceksiniz.

Ön Gereksinimler

Kuruluma başlamadan önce şunlara ihtiyacınız var: Docker (Docker Desktop ya da Linux üzerinde Docker Engine), temel terminal kullanımı, en az 8 GB RAM (tercihen 16 GB ve üzeri) ve yeterli disk alanı. Modeller boyuta göre 2–10+ GB arası yer kaplayabiliyor. GPU şart değil; CPU ile de çalışır ama performans beklentinizi buna göre ayarlamanız gerekir.

Adım 1: Ollama Kurulumu (Host Üzerinde)

Ollama, popüler açık kaynak modelleri yerel ortamda kolayca indirip çalıştırmanızı sağlayan bir araç. Windows ve macOS için yükleyicisi var; Linux tarafında ise resmi kurulum komutu ile hızlıca kurulabiliyor. Kurulumdan sonra Ollama varsayılan olarak 11434 portunda bir servis gibi çalışır ve API sağlar.

Kurulumun doğru yapıldığını test etmek için terminalden bir model çalıştırabilirsiniz. Örneğin: ollama run llama3.1. İlk çalıştırmada model indirileceği için bekleme süresi internet hızınıza bağlı olarak değişir. İndirme tamamlandığında komut satırında doğrudan sohbet edebildiğinizi görürsünüz.

Adım 2: Docker ile Open WebUI Kurulumu

Komut satırından sohbet etmek iş görse de çoğu kullanıcı için tarayıcı tabanlı bir arayüz daha konforlu. Open WebUI bu noktada devreye giriyor: modern bir arayüz, sohbet geçmişi ve model seçimi gibi özellikleri tek yerde topluyor. Open WebUI’yi Docker ile çalıştırmak hem güncellemeyi kolaylaştırır hem de sisteminizi “temiz” tutar.

Aşağıdaki örnek komut, Open WebUI konteynerini ayağa kaldırır. Buradaki kritik nokta, Open WebUI’nin Ollama API’sine erişebilmesi. Eğer Ollama host üzerinde çalışıyorsa, Docker konteynerinden host’a erişim yöntemi işletim sistemine göre değişebilir. Docker Desktop (Windows/macOS) için genellikle host.docker.internal kullanılabilir.

Örnek Docker komutu:
docker run -d --name open-webui -p 3000:8080 -e OLLAMA_BASE_URL=http://host.docker.internal:11434 -v open-webui:/app/backend/data --restart unless-stopped ghcr.io/open-webui/open-webui:main

Adım 3: Linux Kullanıcıları İçin Host Erişimi

Linux’ta host.docker.internal her zaman otomatik gelmeyebilir. Bu durumda iki pratik seçenek var: (1) Ollama’yı da Docker içinde çalıştırmak, (2) konteynerin host ağına erişimini ayarlamak. En basit yaklaşım çoğu senaryoda Ollama’yı da Docker’a almak olur; fakat rehberin amacında “host üzerinde Ollama + Docker’da arayüz” olduğu için, Linux’ta genellikle host IP’sini ya da ağ yapılandırmasını kullanmak gerekir. Örneğin host’un yerel IP’si 192.168.1.10 ise OLLAMA_BASE_URL değeri http://192.168.1.10:11434 olabilir.

Diğer bir yöntem, bazı Docker sürümlerinde ekstra parametreyle host ismini çözümletmektir. Ancak ağ yapılandırmaları sistemden sisteme değiştiği için, en stabil yöntem çoğu kullanıcı için host IP’sini kullanmaktır.

Adım 4: Open WebUI Üzerinden Model Yönetimi

Konteyner çalıştıktan sonra tarayıcıdan http://localhost:3000 adresine gidin. İlk açılışta bir kullanıcı oluşturmanız istenir. Ardından ayarlarda Ollama bağlantısını doğrulayabilir, indirdiğiniz modelleri listede görebilirsiniz. Eğer listede model görünmüyorsa genellikle iki sebep olur: OLLAMA_BASE_URL yanlış girilmiştir ya da Ollama servisi çalışmıyordur.

Model seçerken donanımınıza uygun boyutta kalmak önemli. Daha küçük modeller (ör. 7B civarı) günlük kullanımda daha akıcı yanıt verir. Daha büyük modeller daha iyi muhakeme sağlayabilir ama RAM ve işlemciye yük bindirir. Open WebUI, aynı anda birden fazla sohbet oturumu açmanıza da izin verir; bu da farklı “denemeleri” yan yana götürmek için kullanışlıdır.

Performans ve Güvenlik İpuçları

Yerel yapay zekâ kurulumunda performansı etkileyen en büyük faktör, modelin boyutu ve sistem kaynaklarıdır. Arka planda gereksiz uygulamaları kapatmak, modeli ilk kez çalıştırdıktan sonra sistemin “ısınmasına” izin vermek ve mümkünse SSD üzerinde çalışmak hız kazandırır. Ayrıca bu kurulumun güzel tarafı, verilerinizin dışarı çıkmamasıdır; ancak yine de Open WebUI’yi internetten erişilebilir hale getirecekseniz güçlü parola, ters proxy ve HTTPS gibi temel önlemleri almalısınız.

Son olarak, Docker ile çalıştığınız için güncelleme oldukça basit: yeni imajı çekip konteyneri yeniden oluşturabilirsiniz. Veri kaybı yaşamamak için volume kullanımını (örnekte open-webui:/app/backend/data) ihmal etmeyin.

Sonuç

Ollama + Open WebUI ikilisi, yerel yapay zekâ deneyimini “kur, çalıştır ve yönet” seviyesine taşıyor. Bulut maliyetlerine girmeden, API ve web arayüzü rahatlığını aynı anda elde etmek mümkün. Eğer geliştirme yapıyorsanız, Ollama’nın sunduğu yerel API ile uygulamalarınıza hızlıca entegrasyon da ekleyebilirsiniz. Kendi bilgisayarınızda, kendi kurallarınızla çalışan bir LLM kurulumu için bu yaklaşım güncel ve oldukça pratik bir seçenek.

8 Şubat 2026 Pazar

IPv6’ya Geçiş Rehberi: Dual Stack, DNS ve Güvenlik Ayarlarıyla Adım Adım Kurulum

IPv6 neden şimdi gündemde?

IPv4 adreslerinin pratikte tükenmesi, CGNAT kullanımının artması ve uzaktan erişim senaryolarının çoğalması IPv6’yı “bir gün geçeriz” seviyesinden çıkarıp gerçek bir ihtiyaç hâline getirdi. IPv6 sadece daha fazla adres demek değil; doğru planlandığında daha temiz bir ağ tasarımı, daha az NAT bağımlılığı ve modern güvenlik yaklaşımlarına daha uyumlu bir altyapı anlamına geliyor. Bu yazıda, ev/ofis ölçeğinden başlayıp küçük işletmeye kadar uygulanabilecek şekilde Dual Stack (IPv4+IPv6 birlikte) kurulumu, DNS kayıtları ve temel güvenlik adımlarını pratik bir rehber olarak ele alacağım.

1) Ön koşullar: ISS ve modem/router desteğini doğrulayın

Önce internet servis sağlayıcınızın (ISS) IPv6 sağladığını kontrol edin. Birçok ISS, DHCPv6-PD (Prefix Delegation) ile router’a bir “prefix” (örneğin /56 veya /64) atar. Modem/router arayüzünüzde IPv6 menüsünü bulun; “Native IPv6”, “DHCPv6”, “Prefix Delegation” gibi seçenekler görmelisiniz. Eğer cihazınız çok eskiyse IPv6 desteklese bile gelişmiş firewall/RA ayarlarını sunmayabilir. Bu aşamada hedefiniz: router’ın WAN tarafında IPv6 adresi alması ve LAN tarafına prefix dağıtabilmesi.

2) Dual Stack kurulum: IPv4’e dokunmadan IPv6’yı ekleyin

En sorunsuz geçiş yaklaşımı Dual Stack’tir. Çünkü cihazlar ve uygulamalar IPv6’yı destekliyorsa onu kullanır, desteklemiyorsa IPv4 ile devam eder. Router’da IPv6’yı etkinleştirdikten sonra genellikle iki kritik ayar vardır: DHCPv6-PD ve RA (Router Advertisement). DHCPv6-PD ile ISS’den aldığınız prefix, LAN’a dağıtılır. RA ise istemcilere “bu ağda IPv6 var, varsayılan ağ geçidi benim” bilgisini duyurur. Çoğu ev router’ında “SLAAC” (Stateless Address Autoconfiguration) otomatik gelir; bu sayede Windows, macOS, Linux ve mobil cihazlar IPv6 adresini kendisi üretir.

Kurulumdan sonra istemci tarafta doğrulama yapın. Windows’ta ipconfig, Linux/macOS’ta ip a komutuyla global IPv6 adresi görmelisiniz (genellikle 2000::/3 aralığında). Ardından bir IPv6 test sitesine girip erişimi doğrulayın. Eğer “IPv6 var ama internet yok” gibi bir durum oluşursa, çoğunlukla DNS veya firewall kuralı hatasıdır.

3) DNS tarafı: AAAA kayıtları, ters kayıt ve split-horizon

IPv6’da web sunucunuzu veya evdeki servislerinizi dışarı açacaksanız DNS’e AAAA kaydı eklemeniz gerekir. Örneğin example.com için hem A (IPv4) hem AAAA (IPv6) kaydı eklemek, istemcinin en uygun protokolle bağlanmasını sağlar. Bazı sistemler IPv6’yı tercih edebilir; bu yüzden IPv6’nız stabil değilse AAAA kaydını eklemek “yavaş açılıyor” şikâyetlerine yol açabilir. En iyi pratik: önce IPv6 bağlantısını ve firewall’ı sağlamlaştırın, sonra AAAA kaydını yayınlayın.

Kurumsal tarafta iç ağ isim çözümlemesi için split-horizon DNS (içeride farklı, dışarıda farklı kayıt döndürme) kullanılıyorsa, IPv6’yı her iki tarafta da tutarlı planlamak önemlidir. İçeride özel servisler için ULA (fc00::/7) kullanmak cazip görünse de çoğu senaryoda ISS’den gelen global prefix ile devam etmek, NAT benzeri karmaşıklıklardan kaçınmanızı sağlar. Ters DNS (PTR) kaydı ise genellikle barındırma sağlayıcı/ISS tarafında yönetilir; e-posta gibi servisler planlıyorsanız ihmal etmeyin.

4) Güvenlik: “NAT yoksa güvensiz” yanılgısı ve doğru firewall

IPv4 dünyasında NAT, yanlışlıkla “güvenlik duvarı” yerine kondu. IPv6’da her cihazın global adres alabilmesi, doğru yapılandırılmamış ağlarda yüzey alanını artırır. Bu yüzden IPv6’ya geçerken yapılacak en kritik iş, router üzerinde stateful firewall kurallarını kontrol etmektir. İyi haber: Çoğu modern router, IPv6’da varsayılan olarak dışarıdan içeri gelen bağlantıları engeller, içeriden dışarıya izin verir.

Kontrol etmeniz gerekenler: WAN’dan LAN’a inbound trafiğin kapalı olması, yönetim arayüzünün (web/SSH) internetten erişime açık olmaması, UPnP benzeri otomatik port açma mekanizmalarının IPv6’da ne yaptığı ve misafir ağlarının IPv6 izolasyonu. Ayrıca IoT cihazlar için ayrı VLAN veya misafir SSID kullanıyorsanız, IPv6 tarafında da aynı segmentasyonun uygulandığından emin olun. IPv6’da “port taraması daha zor” gibi iddialar pratikte güvenlik stratejisi değildir; temel yaklaşım yine aynıdır: minimum yetki, segmentasyon ve güncel yazılım.

5) Adres planlama: /64, /56 ve küçük ölçekli iyi pratikler

IPv6’da tipik bir LAN segmenti /64 kullanır. ISS’den /56 alıyorsanız teoride 256 adet /64 alt ağınız vardır; bu da “her VLAN’a bir /64” yaklaşımını kolaylaştırır. Ev/ofis için basit bir plan: ana ağ, misafir ağı ve IoT ağı için üç ayrı /64 ayırmak. Router bunu otomatik yapabiliyorsa harika; yapamıyorsa en azından tek bir /64 ile başlayıp ileride genişletebilirsiniz. Burada amaç, büyüdükçe yamalı bohça olmamak.

6) Sorun giderme: En sık karşılaşılan 5 problem

1) IPv6 var görünüyor ama site açılmıyor: DNS çözümlemesi veya firewall sorunu olabilir. İstemcide farklı DNS deneyin (ISS DNS’i, güvenilir bir genel DNS). 2) Bazı cihazlar IPv6 alıyor bazıları almıyor: RA yayınları kapalı olabilir veya Wi‑Fi izolasyonu/ACL engeli vardır. 3) Oyunlarda/VoIP’de sorun: Uygulama IPv6’yı kötü yönetiyor olabilir; geçici olarak AAAA kaydını kaldırmak veya istemci tarafında IPv6 önceliğini düşürmek test amaçlı yapılabilir. 4) Prefix sık değişiyor: ISS dinamik prefix veriyorsa, dış erişim için dinamik DNS ve otomatik güncelleme şarttır. 5) Port açmadan servis yayınlamak: IPv6’da NAT yok diye her şey açık değildir; yine firewall’da ilgili portlara izin vermelisiniz.

Sonuç: IPv6’yı kontrollü şekilde devreye alın

IPv6’ya geçişi “bir gecede IPv4’ü kapatalım” şeklinde düşünmek yerine, Dual Stack ile başlayıp adım adım olgunlaştırmak en sağlıklı yoldur. Önce ISS ve router uyumluluğunu doğrulayın, sonra RA/DHCPv6-PD ile istemcilere stabil adresleme sağlayın, DNS’te AAAA kayıtlarını kontrollü yayınlayın ve en önemlisi IPv6 firewall kurallarını bilinçli yönetin. Doğru kurulduğunda IPv6, erişilebilirliği artırır ve ağ yönetimini daha öngörülebilir hâle getirir.

7 Şubat 2026 Cumartesi

Cloudflare Tunnel ile Evdeki Sunucunuza Statik IP Olmadan Güvenli Erişim (Adım Adım Kurulum)

Cloudflare Tunnel nedir ve neden tercih edilmeli?

Evde NAS, Raspberry Pi, mini PC ya da bir Docker sunucusu çalıştırıyorsanız, dışarıdan güvenli erişim genellikle iki seçeneğe sıkışır: port yönlendirme (NAT) veya VPN. Port yönlendirme pratik görünse de güvenlik riskleri ve dinamik IP gibi sorunlar doğurabilir. Cloudflare Tunnel (eski adıyla Argo Tunnel) ise statik IP’ye ihtiyaç duymadan, router’da port açmadan ve servislerinizi doğrudan internete maruz bırakmadan dış erişim sağlayan modern bir yöntemdir.

Tunnel mantığı basittir: Yerel ağınızdaki bir “connector” (cloudflared) Cloudflare’a doğru dışarıya bir bağlantı başlatır. Dışarıdan gelen istekler Cloudflare üzerinden bu tünel aracılığıyla içerdeki servise iletilir. Böylece ev IP’niz ifşa olmaz, saldırı yüzeyiniz küçülür ve Cloudflare’ın WAF/Rate Limiting gibi korumalarıyla entegre olursunuz.

Ön koşullar

Bu öğreticide örnek olarak yerel ağda çalışan bir web servisini (ör. http://localhost:8080) yayınlayacağız. İhtiyacınız olanlar: Cloudflare hesabı, Cloudflare’a eklenmiş bir alan adı (ör. example.com), tüneli çalıştıracağınız bir makine (Linux önerilir; Docker da olur) ve yayınlanacak servis.

Not: Cloudflare Tunnel ile yalnızca web uygulamaları değil, uygun yapılandırma ile çeşitli TCP servisleri de yönetilebilir. Ancak en temiz ve güvenli senaryo, HTTP/HTTPS tabanlı servisleri Cloudflare Access ile kimlik doğrulama ekleyerek yayınlamaktır.

1) Cloudflare’da Tunnel oluşturma

Cloudflare paneline girin ve ilgili domaini seçin. Sol menüde Zero Trust (veya “Access/Zero Trust”) bölümüne geçin. Buradan Networks > Tunnels menüsünü açıp Create a tunnel ile yeni bir tünel oluşturun. Tünele anlaşılır bir ad verin (ör. “ev-sunucu”).

Cloudflare size kurulum adımlarını gösterecek. Bu aşamada iki yol var: doğrudan binary kurmak ya da Docker ile çalıştırmak. İleri seviye kullanıcılar için Docker, otomasyon ve taşınabilirlik açısından daha rahattır.

2) Docker ile cloudflared çalıştırma

Cloudflare panelinde “Run the connector” adımında bir token üretilir. Bu token tünelin kimliğidir. Token’ı kopyalayın ve tüneli çalıştıracağınız makinede aşağıdaki komutu kullanın:

docker run -d --name cloudflared --restart unless-stopped cloudflare/cloudflared:latest tunnel --no-autoupdate run --token YOUR_TOKEN

Bu komut, cloudflared’ı arka planda başlatır ve makine yeniden başladığında otomatik ayağa kaldırır. Sorun yaşarsanız logları görmek için:

docker logs -f cloudflared

Burada “connected” benzeri bir ifade görüyorsanız tüneliniz Cloudflare’a başarıyla bağlanmıştır.

3) Public hostname tanımlama (subdomain yönlendirme)

Şimdi dış dünyadan erişilecek adresi belirleyeceğiz. Yine Zero Trust panelinde ilgili tünelin içine girin ve Public Hostnames bölümünden yeni kayıt ekleyin. Örneğin:

Subdomain: panel
Domain: example.com
Path: (boş bırakabilirsiniz)
Service: http://localhost:8080

Bu ayarla https://panel.example.com isteği Cloudflare üzerinden tünelinize gelir ve yereldeki 8080 portuna yönlenir. Router’da port açmadığınız için servisiniz “internete açık” hale gelmez; yalnızca Cloudflare tüneli üzerinden erişilebilir olur.

4) Güvenliği bir üst seviyeye taşıma: Cloudflare Access

Tünel çalışsa bile erişimi herkese açık bırakmak istemezsiniz. Cloudflare’ın en büyük artısı burada başlar: Access policy ile kimlerin gireceğini belirleyebilirsiniz. Zero Trust panelinde Access > Applications bölümüne gidip “Self-hosted” uygulama ekleyin ve aynı hostname’i (panel.example.com) seçin.

Ardından bir politika tanımlayın. Örneğin yalnızca belirli e-posta adreslerine izin verin (Google/Microsoft ile SSO da mümkün). Bu sayede URL’yi bilen herkes değil, sadece yetkili kullanıcılar giriş yapabilir. Bu yaklaşım klasik Basic Auth’tan daha esnek ve denetlenebilir bir güvenlik katmanı sunar.

5) Sık yapılan hatalar ve ipuçları

Servis “Bad Gateway” veriyor: Genellikle yereldeki servis yanlış portta çalışıyordur veya yalnızca 127.0.0.1 yerine belirli bir arayüze bağlıdır. Docker içinden başka bir konteynıra yönlendiriyorsanız ağ ayarlarınızı kontrol edin.

HTTPS/sertifika konusu: Cloudflare dışarıya HTTPS sunar. İçerideki servisiniz HTTP olabilir; bu yaygın bir kullanımdır. Ancak içeride de TLS istiyorsanız origin sertifikası gibi seçenekler mevcut.

Performans ve gecikme: Tunnel trafiği Cloudflare POP’ları üzerinden geçer. Çoğu ev senaryosunda gecikme farkı ihmal edilebilir düzeydedir; asıl sınır genellikle ev internetinizin upload hızıdır.

Log ve izleme: Zero Trust üzerinden bağlantı denemelerini ve Access loglarını inceleyin. Şüpheli denemelerde rate limiting veya ek erişim kısıtları uygulayabilirsiniz.

Sonuç

Cloudflare Tunnel, evde barındırdığınız servisleri statik IP olmadan, port açmadan ve daha kontrollü şekilde yayınlamak için güncel ve güçlü bir çözümdür. Özellikle Cloudflare Access ile birlikte kullanıldığında, “herkese açık admin paneli” gibi riskli senaryoları neredeyse tamamen ortadan kaldırır. Eğer self-hosted uygulamalarınız var ve güvenliği ciddiye alıyorsanız, bu yaklaşım modern bir varsayılan haline gelmeye başladı.

Docker ve Proxmox ile Otomasyon: Ansible Kullanarak Etkin ve Hızlı Container Dağıtımı

Docker ve Proxmox ile Otomasyon: Ansible Kullanarak Etkin ve Hızlı Container Dağıtımı

Siber güvenlik ve bulut altyapısı projelerinde hız, güvenilirlik ve tekrarlanabilirlik kritik öneme sahiptir. Docker gibi container teknolojisi ile Proxmox gibi sanallaştırma platformlarının bir araya getirilmesi, modern DevOps süreçlerinde büyük bir avantaj sağlar. Ancak bu bileşenleri manuel olarak yönetmek hem zaman alıcı hem de hata riski taşır. Bu makalede, Ansible otomasyon aracını kullanarak Docker(container) görüntülerinin Proxmox sanal makinelerine otomatik olarak nasıl dağıtılacağını adım adım anlatacağız.

Amaç: Neden Bu Konu Önemlidir?

Modern sistem yönetimi, mikroservis mimarileri ve konteyner tabanlı dağıtımların artmasıyla birlikte otomasyonun önemi artmıştır. Ansible ile Docker ve Proxmox entegrasyonu sayesinde; servis dağıtım süresi azalır, insan hataları minimize edilir ve sistemlerin yeniden yapılandırılmasına ihtiyaç kalmaz. Bu yöntem özellikle CI/CD (Sürekli Entegrasyon ve Teslim) süreçlerinde ve cloud-native projelerde büyük fark yaratabilir.

Ön Koşullar

1. Gerekli Araçlar ve Bilgiler

  • Docker (Container görüntüsü)
  • Proxmox VE 8.0+ (Sanal makineler için)
  • Python 3.8+ (Ansible için)
  • Ansible 2.15+ (Otomasyon aracı)
  • SSH erişimi (Proxmox sunucusuna)
  • Temel YAML bilgisi (Playbook yazımı)

2. Ortam Hazırlığı

Önce Proxmox sunucusunuzda bir sanal makine (VM) oluşturun ve içinde Docker kurulumunu tamamlayın. Ardından Ansible kontrol sunucusunda Docker ve Proxmox ile çalışan bir playbook oluşturmak için gerekli Python modüllerini kurun:

pip install ansible docker

Adım Adım Anlatım

Adım 1: Ansible Inventory Dosyası Oluşturma

Ansible, hedef sistemleri inventory dosyasından okur. Aşağıda örnek bir inventory dosyası verilmiştir:

[proxmox]  
192.168.1.100 ansible_user=root  

[containers]  
proxmox_container1 ansible_connection=proxmox ansible_proxmox_node=node1 ansible_proxmox_password=

Adım 2: Docker Görüntüsünü Proxmox'a Dağıtma

Aşağıdaki playbook, Docker Hub'dan bir resmi çekip Proxmox konteyneri olarak başlatır:

---  
- name: Docker Container Deployment on Proxmox  
  hosts: containers  
  tasks:  
    - name: Pull Docker image  
      docker_image:  
        name: nginx:latest  
        state: present  

    - name: Run Docker container  
      docker_container:  
        name: my_nginx  
        image: nginx:latest  
        ports:  
          - "80:80"  
        state: started

Adım 3: Playbook'u Çalıştırma

Playbook'u çalıştırırken Proxmox'un SSH erişim güvenliğini kontrol edin. Aşağıdaki komutla işlemi başlatın:

ansible-playbook deploy.yml -i inventory

Adım 4: Otomatik Test ve Raporlama

Dağıtım tamamlandıktan sonra Ansible'ın check mode (test modu) ile hata kontrolü yapın:

ansible-playbook deploy.yml --check

Sonuç

Bu makalede, Ansible aracılığıyla Docker ve Proxmox sistemlerini entegre ederek otomatik container dağıtımı gerçekleştirdik. Bu yöntem sayesinde; DevOps süreçlerinin verimliliği, sistem yönetiminin güvenilirliği ve projelerin tekrarlanabilirliği artar. Uygulama geliştiricileri ve sistem yöneticileri için bu teknik, hem zaman kazandıran hem de hata riskini azaltan bir çözüm sunar.

Dilerseniz bu süreci CI/CD pipeline entegrasyonu ile daha da geliştirerek her kod değişikliği sonrası otomatik dağıtım yapılabilir. Merakınız varsa yorumlarda sorularınızı sorabilirsiniz.

6 Şubat 2026 Cuma

Siber Güvenlikte Otomasyon: Docker ve Proxmox ile Sanal Ortamların Güvenli Yapılandırılması

Siber güvenlik, günümüzde teknolojinin her alanına nüfuz ettiği için kritik bir öneme sahip. Siber güvenlik measuresının etkili bir şekilde uygulanması, veri güvenliği ve sanal ortamların korunması için çok önemlidir. Bu makalede, Docker ve Proxmox gibi araçların kullanımı ile sanal ortamların güvenli bir şekilde yapılandırılmasının nasıl möglich olduğunu inceleyeceğiz.

Amaç

Sanal ortamların güvenli yapılandırılması, siber tehditlere karşı korunmak için çok önemlidir. Bu amaçla, sanal makinelerin ve konteynırların güvenli bir şekilde oluşturulması ve yönetilmesi için otomasyon araçları kullanılmaktadır. Bu makalede, Docker ve Proxmox gibi araçların kullanımı ile sanal ortamların güvenli yapılandırılmasının nasıl mümkün olduğunu inceleyeceğiz.

TEKNİK MANTIGI

Docker ve Proxmox, sanal ortamların oluşturulması ve yönetilmesi için kullanılan popüler araçlardır. Docker, konteynır tabanlı bir sistemdir ve uygulamaların bağımsız olarak çalışmasını sağlar. Proxmox, sanal makinelerin oluşturulması ve yönetilmesi için kullanılan bir diğer araçtır.

Ön Koşullar

Bu makalede anlatılan adımları takip edebilmek için, aşağıdaki ön koşullara sahip olmak gerekir: - Linux işletim sistemi hakkında temel bilgi sahibi olmak - Docker ve Proxmox hakkında temel bilgi sahibi olmak - Sanal makineler ve konteynırlar hakkında temel bilgi sahibi olmak

Adım Adım Anlatım

Aşağıdaki adımları takip ederek, Docker ve Proxmox kullanarak sanal ortamların güvenli bir şekilde yapılandırılmasını sağlayabilirsiniz:

Adım 1: Docker ve Proxmox kurulumu

İlk adım, Docker ve Proxmox araçlarını kurmaktır. Docker ve Proxmox resmi sitelerinden indirerek kurulumu gerçekleştirebilirsiniz.

Adım 2: Sanal makinelerin oluşturulması

Proxmox kullanarak sanal makineler oluşturabilirsiniz. Sanal makineler, uygulamaların bağımsız olarak çalışmasını sağlar.

Adım 3: Konteynırların oluşturulması

Docker kullanarak konteynırlar oluşturabilirsiniz. Konteynırlar, uygulamaların bağımsız olarak çalışmasını sağlar.

Adım 4: Güvenlik ayarlarının yapılandırılması

Güvenlik ayarları, siber tehditlere karşı korunmak için çok önemlidir. Docker ve Proxmox kullanarak güvenlik ayarlarını yapılandırabilirsiniz.

SONUÇ

Bu makalede, Docker ve Proxmox kullanarak sanal ortamların güvenli bir şekilde yapılandırılmasının nasıl mümkün olduğunu inceledik. Siber güvenlik measuresının etkili bir şekilde uygulanması için, sanal ortamların güvenli bir şekilde yapılandırılması çok önemlidir. Docker ve Proxmox gibi araçlar, sanal ortamların güvenli bir şekilde oluşturulması ve yönetilmesi için kullanılır.

Siber Güvenlikte Yapay Zeka Uygulamaları

Siber güvenlik, günümüzde teknolojinin hızla gelişmesiyle birlikte önemli bir问题 haline gelmiştir. Siber saldırılara karşı korunmak için kullanılan geleneksel yöntemler, artık yeterli olmamaktadır. Bu nedenle, yapay zeka gibi ileri seviye teknik konulara başvurmak gerekmektedir. Yapay zeka, siber güvenlik alanında tehdit tespiti, güvenlik analizi ve korunma stratejileri gibi konularda önemli bir rol oynamaktadır.

Yapay zeka teknolojileri, büyük miktarda veri işleyebilir ve desen tanıma gibi teknikleri kullanarak siber tehditleri daha hızlı ve etkili bir şekilde tespit edebilir. Ayrıca, makine öğrenimi algoritmaları, siber güvenlik sistemlerini geliştirerek ve güncelleyerek daha etkili bir korunma sağlar. Bu reason, siber güvenlik uzmanlarının yapay zeka teknolojilerini kullanarak daha etkili bir savunma stratejisi geliştirmelerine yardımcı olur.

Ancak, yapay zeka teknolojilerinin siber güvenlik alanında kullanımı aynı zamanda güvenlik riskleri de oluşturabilir. Örneğin, sahte veri oluşturmak veya güvenlik sistemlerini manipüle etmek gibi amaçlarla kullanılan deepfake teknolojileri, siber güvenlik uzmanlarını zor durumda bırakabilir. Bu nedenle, siber güvenlik uzmanlarının yapay zeka teknolojilerini kullanırken aynı zamanda güvenlik risklerini de dikkate almaları gerekmektedir.

Sonuç olarak, siber güvenlik ve yapay zeka teknolojileri arasındaki ilişki, siber güvenlik alanında gelişmiş ve etkili çözümler sunmak için önemlidir. Siber güvenlik uzmanlarının yapay zeka teknolojilerini kullanarak güvenlik risklerini azaltmaları ve korunma stratejilerini geliştirmeleri必要dir. Bu reason, siber güvenlik alanındaki gelecekteki gelişmelerin yapay zeka teknolojilerine bağlı olacağı beklenmektedir.

Bu nedenle, siber güvenlik ve yapay zeka teknolojileri arasındaki ilişkiyi daha iyi anlamak ve gelişmiş çözümler sunmak için, siber güvenlik uzmanlarının yapay zeka teknolojilerini kullanırken aynı zamanda güvenlik risklerini de dikkate almaları gerekmektedir. Ayrıca, siber güvenlik alanında yapay zeka teknolojilerinin kullanımını geliştirmek ve güncellemek için sürekli araştırma ve geliştirme çalışmaları yapılması gerekmektedir.

Siber Güvenlikte Otomasyonun Rolü: Teknik Bir Rehber

Siber güvenlik, günümüzde teknolojinin her geçen gün daha da fazla entegre olduğu worldümüzde kritik bir öneme sahip olmuştur. Bu alanda otomasyonun rolü, güvenlik operasyonlarını daha verimli ve etkin bir şekilde yürütülmesini sağlar. Bu rehberde, siber güvenlikte otomasyonun temel prensiplerini, faydalarını ve uygulanma yöntemlerini inceleyeceğiz.

Otomasyon, güvenlik ekiplerinin daha çok stratejik ve yüksek düzeyli görevlere odaklanmasını sağlar. Otomasyonun birincil avantajı, güvenlik operasyonlarının hızını artırarak daha hızlı müdahale olanakları sunmasıdır. Bir siber saldırı meydana geldiğinde, hızlı ve etkili bir yanıt verme kabiliyeti, zararın minimize edilmesinde kritik bir faktördür.

Siber güvenlik otomasyonu, tehditlerin tanımlanması, analiz edilmesi ve bertaraf edilmesi süreçlerini içerir. Bu, genellikle güvenlik bilgi ve olay yönetimi (SIEM) sistemleri, güvenlik orchestration, otomasyon ve response (SOAR) platformları ve security automation gibi araçlar aracılığıyla gerçekleştirilir. Bu araçlar, güvenlik ekiplerinin daha verimli çalışmasını sağlar ve insan hatası riskini azaltır.

Ancak, siber güvenlik otomasyonu sadece teknoloji değildir. Etkili bir otomasyon stratejisi, iş süreçlerinin, politika ve prosedürlerin ve eğitimli personelin bir bileşimidir. Güvenlik ekipleri, otomasyonun faydalarını tam olarak yararlanabilmek için bunları dikkatlice planlamalı ve uygulamalıdır.

Modern yazılım dilleri de siber güvenlik otomasyonunda önemli bir rol oynar. Örneğin, Python gibi diller, güvenlik araçları ve otomasyon betikleri geliştirmek için sıklıkla kullanılır. Bu diller, güvenlik uzmanlarına komplex görevleri otomatikleştirmek için mạnh ve esnek bir platform sağlar.

Sonuç olarak, siber güvenlikte otomasyon, güvenlik operasyonlarını daha verimli, hızlı ve etkili hale getirmek için kritik bir bileşendir. Güvenlik ekipleri, otomasyonun faydalarını tam olarak yararlanabilmek için doğru araçları, iş süreçlerini ve eğitimli personeli bir araya getirmelidir. Bu şekilde, kurumlar themselves daha güçlü bir siber güvenlik duruşu oluşturabilir ve günümüzün complex tehditlerine karşı daha iyi korunabilir.

Sunucusuz Mimaride JWT Doğrulama: AWS Lambda Authorizer ile API Gateway’i Güvenli Hale Getirme

Amaç: API’yi anahtar paylaşmadan güvenli çağırmak

Sunucusuz (serverless) mimarilerde API yayınlamak hızlıdır; ancak güvenlik çoğu projede “sonra bakarız” diye ertelenir. Özellikle AWS API Gateway + Lambda ile bir REST/HTTP API açtığınızda, istekleri kimlerin çağırabildiğini belirlemenin en temiz yollarından biri JWT (JSON Web Token) doğrulamasıdır. Bu yazıda, API Gateway’in önüne Lambda Authorizer koyarak Bearer token doğrulaması yapan pratik ve ileri seviye bir kurulum anlatıyorum. Hedefimiz: Her istekte token’ı kontrol etmek, geçerliyse isteği arka uç Lambda’ya iletmek, değilse daha kapıdayken kesmek.

JWT ve Lambda Authorizer mantığı

JWT, genellikle bir kimlik sağlayıcı (Auth0, Cognito, Keycloak veya kendi servisiniz) tarafından imzalanan ve istemcinin “ben buyum” iddiasını taşıyan bir tokendir. Token’ın güvenliği, içeriğinin şifreli olmasından değil, imzasının doğrulanabilir olmasından gelir. API Gateway tarafında bunu iki şekilde çözebilirsiniz: HTTP API kullanıyorsanız çoğu durumda yerleşik JWT Authorizer yeterlidir; REST API veya özel doğrulama ihtiyaçlarında ise Lambda Authorizer daha esnektir. Lambda Authorizer, gelen isteğin Authorization header’ını okur, token’ı doğrular, ardından “Allow/Deny” kararı döner.

Ön koşullar

Bu öğreticinin akıcı ilerlemesi için şu bileşenlere ihtiyacınız var: AWS hesabı, bir API Gateway (REST API veya HTTP API), en az bir backend Lambda (asıl iş mantığınız), bir de doğrulama için Authorizer Lambda. Ayrıca token’ı imzalayan tarafın kullandığı anahtara erişebilmelisiniz: HS256 kullanıyorsanız “shared secret”, RS256/ECDSA kullanıyorsanız public key veya JWKS endpoint.

Adım 1: Authorizer Lambda’nın temel yapısı

Önerim, üretimde RS256 + JWKS yaklaşımını kullanmanızdır; böylece gizli anahtar API tarafında tutulmaz. Authorizer Lambda’da yapılacak iş mantığı kısaca şöyledir: (1) Authorization header’dan “Bearer ” kısmını ayıklayın, (2) token’ın header bölümünden “kid” değerini okuyun, (3) JWKS’ten doğru public key’i çekip cache’leyin, (4) imzayı ve kritik claim’leri doğrulayın: iss (issuer), aud (audience), exp (süre), gerekiyorsa scope veya rol bilgisi. Doğrulama geçerse Allow policy; geçmezse Deny.

Node.js örnek akışında popüler kütüphaneler: jose (JWT doğrulama), JWKS için jwks-rsa benzeri çözümler. Python tarafında PyJWT veya python-jose iş görür. Buradaki kritik detay, Lambda’nın her çağrılışında JWKS’e gitmemek için global değişkende cache tutmaktır. API trafiğiniz yükseldiğinde en çok farkı bu optimizasyon yaratır.

Adım 2: Policy üretimi ve “context” taşıma

REST API “Lambda Authorizer” kullanıyorsanız dönüşte IAM policy belgesi üretirsiniz. Bu policy, hangi method ARN’lerine izin verildiğini söyler. Ayrıca kullanıcının kimliğini backend Lambda’ya taşımak için “context” alanını kullanabilirsiniz. Örneğin doğrulanan token’dan sub (kullanıcı id) ve email gibi bilgileri seçip context’e koyarsınız. Backend Lambda’da bu değerler event’in authorizer bölümünde gelir ve tekrar token parse etmeye gerek kalmaz. Bu hem performans hem de kod sadeliği sağlar.

HTTP API kullanıyorsanız format farklıdır; ancak mantık aynı kalır: Doğrulama sonucu “isAuthorized” ve “context” ile döndürülür. Hangisini seçerseniz seçin, mümkün olduğunca az veri taşıyın: id, rol ve gerekliyse tenant bilgisi çoğu senaryo için yeterlidir.

Adım 3: API Gateway’e Authorizer bağlama

AWS konsolunda API Gateway’in ilgili endpoint/method ayarlarına girip “Authorization” kısmında Lambda Authorizer seçersiniz. REST API’de method bazlıdır; HTTP API’de route bazlıdır. Burada dikkat edilmesi gereken iki nokta var: Identity source olarak “Authorization” header’ını seçmek ve gerekiyorsa authorizer caching ayarlarını doğru yapmak. Token başına cache kullanacaksanız TTL’i çok yüksek tutmayın; rol değişikliği gibi durumlarda eski izinler bir süre daha geçerli kalabilir.

Güvenlikte ince ayar: iss, aud, clock skew ve scope

Sadece imza doğrulamak yeterli değildir. En sık yapılan hata, token’ın kimin tarafından üretildiğini doğrulamadan kabul etmektir. Mutlaka iss değerini sabit bir beklenen değerle karşılaştırın. Benzer şekilde aud, token’ın hangi uygulama için üretildiğini gösterir; yanlış audience kabul edilirse başka bir uygulamanın token’ı sizin API’nize sızabilir. Saat kayması (clock skew) için 30–60 saniyelik tolerans pratikte işleri kolaylaştırır. Ayrıca “scope” veya “permissions” claim’lerinden endpoint bazlı yetkilendirme yapabilirsiniz: Örneğin /admin route’u için “admin:read” yoksa Deny döndürmek gibi.

Test ve hata ayıklama ipuçları

İlk testte Postman veya curl ile iki senaryoyu deneyin: geçerli token ile 200, geçersiz/expired token ile 401/403. CloudWatch Logs’ta Authorizer Lambda loglarını izleyin. Üretimde loglara token’ın tamamını basmayın; güvenlik açısından sadece token’ın “sub” gibi kimlik alanlarını veya hash’lenmiş bir parçasını yazdırmak daha sağlıklıdır. Ayrıca JWKS erişimi için VPC içinde çalışıyorsanız NAT gereksinimi doğabilir; bu tür ağ detayları doğrulamanın “durduk yere çalışmıyor” gibi görünmesine neden olur.

Sonuç

Lambda Authorizer ile JWT doğrulaması, serverless API’lerde güvenliği kapıdan başlatmanın en esnek yollarından biri. Doğru yapılandırıldığında hem maliyeti düşük tutar hem de kimlik doğrulama/yetkilendirme kararlarını merkezi hâle getirir. JWKS cache, iss-aud kontrolü ve minimal context taşıma gibi detaylara dikkat ettiğinizde, performans ve güvenlik tarafında “profesyonel seviye” bir kurulum elde edersiniz.

5 Şubat 2026 Perşembe

Docker + Podman ile Rootless Container Kurulumu: Güvenli ve Güncel Bir Geliştirici Rehberi

Rootless container nedir, neden gündemde?

Container dünyası uzun süre “Docker kur, daemon root çalışsın, bitti” kolaylığıyla yürüdü. Ancak güvenlik tarafında bu yaklaşımın maliyeti var: root yetkisiyle çalışan bir servis, yanlış yapılandırma veya zafiyet durumunda sistemin tamamını riske atabilir. Rootless container yaklaşımı ise container’ları ve ilgili süreçleri root olmayan kullanıcıyla çalıştırarak saldırı yüzeyini ciddi biçimde küçültür. Son yıllarda Podman’ın popülerleşmesi ve Docker’ın rootless modunun olgunlaşmasıyla bu yaklaşım masaüstünde ve sunucuda daha ulaşılabilir hale geldi.

Bu yazıda, Linux üzerinde hem Docker Rootless hem de Podman ile rootless çalışmayı kurup günlük kullanım için pratik hale getireceğiz. Hedefimiz “kurulum bitti” demek değil; ağ, port, volume ve servis yönetimi gibi gerçek hayatta takılınan noktaları da ele almak.

Ön koşullar ve temel kavramlar

Rootless çalışmanın temelinde Linux’un user namespace kabiliyeti yatar. Kısaca, container içindeki “root” kullanıcı kimliği, host üzerinde normal bir kullanıcıya eşlenir. Bu sayede container içi root yetkileri host’a taşınmaz. Rootless kurulumlarda ayrıca genellikle slirp4netns (kullanıcı modunda ağ), fuse-overlayfs (overlay dosya sistemi) ve uid/gid map yapılandırması gibi parçalar devreye girer.

Kontrol etmeniz gereken ilk şey, sistemde yeterli kullanıcı ID aralığının tanımlı olmasıdır. Aşağıdaki dosyalarda kullanıcı adınıza ait satırların olması idealdir: /etc/subuid ve /etc/subgid. Örnek bir satır şu şekildedir: kullanici:100000:65536. Bu, rootless container’ların içerideki kullanıcılarını host üzerinde izole bir ID aralığına eşlemeyi sağlar.

Seçenek 1: Docker Rootless kurulumu ve kullanımı

Docker’ı rootless kullanmak istiyorsanız, dağıtımınızın paketleriyle Docker Engine kurulu olmalı ve ardından rootless “setup tool” çalıştırılmalıdır. Kurulum mantığı şudur: root yetkisiyle çalışan sistem servisi yerine, kullanıcı oturumunuz altında çalışan bir Docker daemon devreye girer. Bu sayede docker komutları da root olmadan çalışır.

Kurulumdan sonra iki kritik nokta vardır: Birincisi, Docker istemcisinin hangi sockete bağlanacağını bilmesi. Rootless modda genellikle socket yolu kullanıcı dizini altındadır. Bu yüzden DOCKER_HOST değişkenini ayarlamak gerekebilir. İkincisi, rootless ağ sürücüsü nedeniyle bazı port yönlendirmelerinde farklı davranışlar görülebilir.

Günlük kullanımda en çok karşılaşılan konu 80/443 gibi düşük portlardır. Root olmayan bir süreç bu portları doğrudan açamaz. Çözüm olarak 8080/8443 gibi portlar kullanılabilir veya sistemde düşük portlara izin veren bir ayar yapılabilir. Alternatif olarak ters proxy (Nginx/Caddy) root yetkisiyle değil, yetkili bir servis olarak konumlandırılıp backend’e yüksek porttan bağlanabilir.

Volume tarafında ise rootless modda dosya izinleri daha görünür hale gelir. Host’taki dosya sahipliği, container içi kullanıcı eşleşmesine göre yorumlanır. Eğer “container yazamıyor” gibi bir durum yaşıyorsanız, çoğu zaman mesele uygulamanın container içindeki kullanıcı UID’si ile host’taki dizin izinlerinin uyuşmamasıdır. Çözüm, uygulamayı uygun kullanıcıyla çalıştırmak veya host dizin sahipliğini/izinlerini düzenlemektir.

Seçenek 2: Podman ile daemon’suz rootless deneyim

Podman’ın en güçlü tarafı, daemon gerektirmeden çalışmasıdır. Rootless senaryoda bu avantaj daha da anlam kazanır: kullanıcı oturumunuz altında, her şey “normal bir süreç” gibi çalışır. Podman ayrıca Docker’a benzer bir CLI sunduğu için geçiş bariyeri düşüktür. Birçok komut birebir aynıdır; hatta isterseniz “docker” alışkanlıklarınızı sürdürmek için uyumluluk katmanları kullanabilirsiniz.

Podman ile rootless kullanımda ağ genellikle slirp4netns ile sağlanır. Bu, performans olarak kernel seviyesindeki bridge çözümlerinden bir miktar geride olabilir; ama masaüstü geliştirme, CI işleri ve çok sayıda servis çalıştırmayan senaryolarda gayet yeterlidir. Eğer daha ileri seviye ağ ihtiyaçlarınız varsa, Podman ekosisteminde farklı ağ sürücüleri ve sistem entegrasyon seçenekleri bulunur.

Podman’ın pratik bir artısı da podman generate systemd yaklaşımıdır. Rootless container’larınızı bir systemd user servisi gibi yönetebilir, oturum açınca otomatik başlatabilirsiniz. Bu sayede “terminali kapatınca container duruyor” derdi azalır. Bunun için kullanıcı systemd biriminin etkin olduğundan emin olmak ve “linger” benzeri ayarlarla oturum kapalıyken de çalıştırmak isteyebilirsiniz (sunucu senaryosunda faydalı).

Hangisini seçmeli? Karar matrisi

Docker Rootless, Docker ekosistemiyle sıkı bağlı ekipler için mantıklıdır. Compose dosyaları, üçüncü parti araçlar ve CI şablonları Docker merkezliyse, rootless moda geçiş görece kolay olur. Öte yandan rootless kısıtlarıyla uyumlu hale getirmek için port, volume ve ağ tarafında biraz disiplin gerekir.

Podman ise “daemon istemiyorum, kullanıcı oturumumda yalın çalışsın” diyenler için güçlü bir alternatiftir. Ayrıca systemd entegrasyonu ve rootless felsefesi daha doğal bir çizgide ilerler. Eğer yeni bir proje başlatıyor, yerel geliştirmede güvenliği varsayılan yapmak istiyorsanız Podman ciddi bir adaydır.

İleri seviye ipuçları: Güvenlik ve bakım

Rootless kullanıyorsanız yine de bazı iyi pratikleri uygulamak gerekir. Öncelikle container’larda minimum yetki yaklaşımını sürdürün: gereksiz capability’leri kapatın, “privileged” moddan kaçının. İkinci olarak imaj kaynağına dikkat edin; resmi veya güvenilir registry’lerden çekin ve imajları düzenli güncelleyin. Üçüncü olarak log ve veri dizinlerini kontrol altında tutun; kullanıcı dizini altında büyüyen loglar zamanla disk sorunlarına yol açabilir.

Son olarak, rootless container’lar her derde deva değildir. Örneğin çok düşük port gereksinimi, kernel modülleriyle etkileşim, özel ağ topolojileri veya yüksek performanslı network senaryolarında rootful kurulum daha uygun olabilir. Ancak modern geliştirme akışlarının büyük çoğunluğu için rootless yaklaşım, güvenlik-kullanışlılık dengesinde çok iyi bir noktaya oturur.

Özet: Rootless container, “güvenliği sonradan eklemek” yerine varsayılan yapmak isteyenler için güncel ve güçlü bir yaklaşım. Docker Rootless daha tanıdık bir ekosistem sunarken, Podman daha yalın ve daemon’suz bir deneyim vadediyor. İkisini de denedikten sonra kendi iş akışınıza en iyi uyanı seçmeniz, uzun vadede daha az sürpriz ve daha güvenli bir çalışma ortamı anlamına gelir.

4 Şubat 2026 Çarşamba

Rancher Üzerinde Uygulama Yönetimi: Nginx Test ve Operasyon Günlüğü

K3s üzerine kurulu Rancher panelimizde bir uygulamanın nasıl ayağa kaldırıldığını, dış dünyaya nasıl açıldığını ve kaynak yönetimi için nasıl durdurulduğunu adım adım inceliyoruz.

1. Helm Reposu Ekleme (Bitnami)

Rancher'ın standart marketinde bulunmayan uygulamalara erişmek için popüler Bitnami kütüphanesini sistemimize ekledik. İsimlendirme yaparken küçük harf kuralına (RFC 1123) dikkat ettik.

  • İşlem: Apps > Repositories > Create
  • İsim: bitnami (Büyük harf hata verir!)
  • URL: https://charts.bitnami.com/bitnami

2. Uygulama Kurulumu (Nginx)

Sistemi test etmek için Bitnami üzerinden hafif bir Nginx web sunucusu seçtik.

  • İşlem: Apps > Charts > Nginx
  • Detay: Default ayarlarla kurulumu başlattık ve uygulamanın Deployed olmasını bekledik.

3. Servis ve Port Yapılandırması

Uygulamanın cluster içinde bir IP alması için Cluster IP servisi oluşturduk. Bitnami Nginx'in iç portu olan 8080'i kullandık.

  • Service Type: Cluster IP
  • Ports: Listening & Target Port = 8080
  • Selector: app.kubernetes.io/name = nginx (Servisin hangi pod'a gideceğini belirler)

4. Ingress ve Dış Dünyaya Erişim (DNS Çözümü)

Uygulamayı nginx.rancher.local ismiyle dışarı açtık. En büyük engel olan DNS sorununu hosts dosyasını düzenleyerek aştık.

⚠️ Kritik Çözüm: Bilgisayarımızın DNS kayıtlarında bulunmayan bu isimler için C:\Windows\System32\drivers\etc\hosts dosyasına şu satırı ekledik:
10.10.10.13 nginx.rancher.local

5. Uygulamayı Durdurma (Scaling to Zero)

Kullanılmayan uygulamaların RAM ve CPU tüketmesini engellemek için uygulamayı silmek yerine "uyutma" yöntemini kullandık.

  • İşlem: Workloads > Deployments > Edit Config
  • Scaling: Replicas sayısını 1'den 0'a indirdik.
  • Sonuç: Pod'lar kapandı, kaynak tüketimi durdu ama tüm ayarlar (Service, Ingress) korundu. Tekrar açmak için değeri 1 yapmak yeterli.