{"id":30945,"date":"2025-10-03T21:31:35","date_gmt":"2025-10-03T18:31:35","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/"},"modified":"2025-10-03T21:31:35","modified_gmt":"2025-10-03T18:31:35","slug":"home-lab-kubernetes-dns-ve-ssl-yonetimi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/","title":{"rendered":"Home Lab: Kubernetes DNS ve SSL Y\u00f6netimi"},"content":{"rendered":"<p>Ev laboratuvar\u0131n\u0131zda Kubernetes projelerinizi g\u00fcvenli ve eri\u015filebilir k\u0131lmak ister misiniz? Bu rehber, Kubernetes DNS ve SSL sertifika y\u00f6netiminin inceliklerini s\u0131f\u0131rdan \u00f6\u011frenmenizi, uygulamal\u0131 \u00f6rneklerle kendi ortam\u0131n\u0131zda g\u00fcvenli ve istikrarl\u0131 bir altyap\u0131 olu\u015fturman\u0131z\u0131 sa\u011flayacak. \u0130\u00e7 a\u011f\u0131n\u0131zda sorunsuz hizmet ke\u015ffi ve d\u0131\u015f d\u00fcnyaya a\u00e7\u0131lan uygulamalar\u0131n\u0131z i\u00e7in otomatik SSL yap\u0131land\u0131rmas\u0131 ile projelerinizi bir \u00fcst seviyeye ta\u015f\u0131y\u0131n.<\/p>\n<p>Modern uygulama geli\u015ftirmenin ve da\u011f\u0131t\u0131m\u0131n\u0131n temel ta\u015flar\u0131ndan biri olan Kubernetes, esnekli\u011fi ve \u00f6l\u00e7eklenebilirli\u011fiyle ev laboratuvarlar\u0131 i\u00e7in de vazge\u00e7ilmez bir ara\u00e7 haline gelmi\u015ftir. Ancak, bu g\u00fc\u00e7l\u00fc platformun t\u00fcm potansiyelini kullanabilmek i\u00e7in a\u011f ve g\u00fcvenlik temellerini do\u011fru bir \u015fekilde anlamak ve yap\u0131land\u0131rmak hayati \u00f6neme sahiptir. \u00d6zellikle DNS (Domain Name System) ve SSL\/TLS (Secure Sockets Layer\/Transport Layer Security) sertifikalar\u0131, uygulamalar\u0131n\u0131z\u0131n hem kendi i\u00e7lerinde sorunsuz ileti\u015fim kurabilmesi hem de d\u0131\u015f d\u00fcnyaya g\u00fcvenli bir \u015fekilde sunulabilmesi i\u00e7in olmazsa olmazd\u0131r. Ev laboratuvar\u0131 ortam\u0131nda bile olsa, bu konularda yap\u0131lan do\u011fru yap\u0131land\u0131rmalar, geli\u015ftirme s\u00fcre\u00e7lerinizi h\u0131zland\u0131r\u0131r, hata ay\u0131klama s\u00fcresini azalt\u0131r ve en \u00f6nemlisi, uygulamalar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini art\u0131r\u0131r.<\/p>\n<p>Peki, ev laboratuvar\u0131nda bu konular neden bu kadar kritik? D\u00fc\u015f\u00fcn\u00fcn ki bir mikro hizmet mimarisi kurdunuz. Her bir hizmetin birbiriyle konu\u015fmas\u0131 gerekiyor. Bu durumda, bir hizmetin di\u011ferini bulabilmesi i\u00e7in bir t\u00fcr &#8220;rehber&#8221;e ihtiyac\u0131n\u0131z var. \u0130\u015fte Kubernetes&#8217;in dahili DNS servisi (CoreDNS) bu rehber rol\u00fcn\u00fc \u00fcstlenerek hizmet ke\u015ffini otomatize eder. Uygulamalar\u0131n\u0131z\u0131n isimleriyle birbirlerini bulabilmesi, IP adreslerini ezberleme veya manuel konfig\u00fcrasyon yapma zorunlulu\u011funu ortadan kald\u0131r\u0131r. Bu, geli\u015ftiriciler i\u00e7in b\u00fcy\u00fck bir kolayl\u0131k sa\u011flarken, ayn\u0131 zamanda uygulaman\u0131n daha dinamik ve esnek olmas\u0131n\u0131 sa\u011flar. Bir hizmetin IP adresi de\u011fi\u015fse bile, di\u011fer hizmetler onu ismiyle bulmaya devam edebilir.<\/p>\n<p>\u00d6te yandan, d\u0131\u015f d\u00fcnyaya a\u00e7t\u0131\u011f\u0131n\u0131z web uygulamalar\u0131n\u0131z i\u00e7in g\u00fcvenlik, asla g\u00f6z ard\u0131 edilmemesi gereken bir konudur. Bir web uygulamas\u0131n\u0131n kullan\u0131c\u0131 verilerini g\u00fcvenli bir \u015fekilde iletmesi, taray\u0131c\u0131 ile sunucu aras\u0131ndaki ileti\u015fimin \u015fifrelenmesiyle m\u00fcmk\u00fcnd\u00fcr. \u0130\u015fte burada SSL\/TLS sertifikalar\u0131 devreye girer. Bir ev laboratuvar\u0131nda bile olsa, ki\u015fisel projelerinizi veya denemelerinizi yay\u0131nlarken, kullan\u0131c\u0131lar\u0131n taray\u0131c\u0131lar\u0131nda &#8220;g\u00fcvenli ba\u011flant\u0131&#8221; simgesini g\u00f6rmeleri, hem sizin projenize olan g\u00fcveni art\u0131r\u0131r hem de veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flar. Manuel sertifika olu\u015fturma ve y\u00f6netme s\u00fcre\u00e7leri zaman al\u0131c\u0131 ve hataya a\u00e7\u0131k olabilirken, Kubernetes&#8217;teki ara\u00e7lar (\u00f6rne\u011fin Cert-Manager) bu s\u00fcreci tamamen otomatikle\u015ftirebilir. Bu, \u00f6zellikle s\u00fcrekli de\u011fi\u015fen veya k\u0131sa \u00f6m\u00fcrl\u00fc test ortamlar\u0131nda b\u00fcy\u00fck bir avantajd\u0131r. K\u0131sacas\u0131, Kubernetes ev laboratuvar\u0131n\u0131zda a\u011f ve g\u00fcvenli\u011fin temellerini sa\u011flam atmak, hem verimlili\u011finizi art\u0131racak hem de projelerinizin gelecekteki \u00f6l\u00e7eklenebilirli\u011fi ve g\u00fcvenli\u011fi i\u00e7in sa\u011flam bir zemin haz\u0131rlayacakt\u0131r.<\/p>\n<h3>Kubernetes&#8217;te DNS (Hizmet Ke\u015ffi) Nas\u0131l \u00c7al\u0131\u015f\u0131r ve Neden CoreDNS Kullan\u0131yoruz?<\/h3>\n<p>Kubernetes ortam\u0131nda uygulamalar\u0131n birbirini bulabilmesi, yani &#8220;hizmet ke\u015ffi&#8221;, modern da\u011f\u0131t\u0131k sistemlerin en temel gereksinimlerinden biridir. Bu ke\u015fif mekanizmas\u0131, genellikle DNS (Domain Name System) \u00fczerinden sa\u011flan\u0131r. Kubernetes, ClusterIP, NodePort, LoadBalancer gibi \u00e7e\u015fitli servis tipleriyle uygulamalar\u0131n\u0131z\u0131 d\u0131\u015f d\u00fcnyaya a\u00e7arken, bu servislerin ve dolay\u0131s\u0131yla arkas\u0131ndaki Pod&#8217;lar\u0131n birbirleriyle ve di\u011fer servislerle isim \u00fczerinden ileti\u015fim kurabilmesini sa\u011flar. Geleneksel olarak, her Pod veya servis, dinamik olarak atanan bir IP adresine sahiptir ve bu IP adresleri de\u011fi\u015febilir. IP adreslerine do\u011frudan ba\u011f\u0131ml\u0131 olmak, uygulamalar\u0131n esnekli\u011fini ve dayan\u0131kl\u0131l\u0131\u011f\u0131n\u0131 ciddi \u015fekilde k\u0131s\u0131tlar. \u0130\u015fte bu noktada Kubernetes&#8217;in DNS servisi devreye girerek bu ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 ortadan kald\u0131r\u0131r.<\/p>\n<p>Kubernetes&#8217;in ge\u00e7mi\u015f s\u00fcr\u00fcmlerinde <code>kube-dns<\/code> kullan\u0131l\u0131rken, g\u00fcn\u00fcm\u00fczde standart olarak <a href=\"https:\/\/coredns.io\/\">CoreDNS<\/a> tercih edilmektedir. CoreDNS, esnekli\u011fi, performans\u0131 ve eklenti tabanl\u0131 mimarisi sayesinde Kubernetes ortamlar\u0131nda hizmet ke\u015ffi i\u00e7in ideal bir \u00e7\u00f6z\u00fcmd\u00fcr. CoreDNS, bir Kubernetes k\u00fcmesi i\u00e7inde <code>kube-system<\/code> namespace&#8217;inde bir Pod olarak \u00e7al\u0131\u015f\u0131r ve t\u00fcm Pod&#8217;lara varsay\u0131lan DNS sunucusu olarak tan\u0131t\u0131l\u0131r. Bir Pod, ba\u015fka bir servise eri\u015fmek istedi\u011finde, DNS sorgusu yapar ve CoreDNS bu sorguya ilgili servisin ClusterIP&#8217;si ile yan\u0131t verir. Bu sayede, uygulamalar IP adresi yerine anlaml\u0131 isimlerle birbirleriyle ileti\u015fim kurabilirler.<\/p>\n<p>CoreDNS&#8217;in sa\u011flad\u0131\u011f\u0131 hizmet ke\u015ffi mekanizmas\u0131, basit\u00e7e servis isimlerini IP adreslerine d\u00f6n\u00fc\u015ft\u00fcrmekle kalmaz, ayn\u0131 zamanda farkl\u0131 namespace&#8217;lerdeki servisler i\u00e7in de tam nitelikli alan adlar\u0131 (FQDN &#8211; Fully Qualified Domain Name) sa\u011flar. \u00d6rne\u011fin, <code>my-service.my-namespace.svc.cluster.local<\/code> gibi bir isimle ba\u015fka bir namespace&#8217;deki bir servise eri\u015febilirsiniz. <code>svc.cluster.local<\/code> k\u0131sm\u0131, k\u00fcmenin varsay\u0131lan DNS sonekidir. Kendi ev laboratuvar\u0131n\u0131zda birden fazla uygulama veya mikro hizmet \u00e7al\u0131\u015ft\u0131rmak istedi\u011finizde, CoreDNS&#8217;in sa\u011flad\u0131\u011f\u0131 bu kolayl\u0131k, a\u011f yap\u0131land\u0131rmas\u0131yla u\u011fra\u015fmak yerine uygulama geli\u015ftirme ve da\u011f\u0131t\u0131m\u0131na odaklanman\u0131z\u0131 sa\u011flar.<\/p>\n<div class=\"interactive-tip\">\n  Uzman \u0130pucu: CoreDNS&#8217;in yap\u0131land\u0131rma dosyas\u0131n\u0131 (ConfigMap olarak tutulur) d\u00fczenleyerek, k\u00fcmenizin d\u0131\u015f\u0131ndaki DNS sunucular\u0131na iletme (forwarding) kurallar\u0131 ekleyebilir, \u00f6zel alan adlar\u0131 i\u00e7in DNS kay\u0131tlar\u0131 tan\u0131mlayabilir veya DNS sorgular\u0131n\u0131 optimize edebilirsiniz. Bu, \u00f6zellikle hibrit bulut senaryolar\u0131 veya belirli a\u011f k\u0131s\u0131tlamalar\u0131 olan ev laboratuvarlar\u0131 i\u00e7in olduk\u00e7a faydal\u0131d\u0131r.\n<\/div>\n<p>\u015eimdi bir \u00f6rnekle bu durumu peki\u015ftirelim. Diyelim ki bir web uygulaman\u0131z (<code>frontend-app<\/code>) ve bu uygulaman\u0131n kulland\u0131\u011f\u0131 bir veritaban\u0131 (<code>backend-db<\/code>) servisiniz var. Her iki servis de farkl\u0131 Pod&#8217;larda \u00e7al\u0131\u015f\u0131yor olabilir. <code>frontend-app<\/code>&#8216;in <code>backend-db<\/code>&#8216;ye eri\u015fmesi i\u00e7in IP adresini bilmesine gerek yoktur; sadece ismini bilmesi yeterlidir:<\/p>\n<pre><code>\napiVersion: v1\nkind: Service\nmetadata:\n  name: backend-db\n  labels:\n    app: backend-db\nspec:\n  selector:\n    app: backend-db\n  ports:\n    - protocol: TCP\n      port: 5432\n      targetPort: 5432\n  type: ClusterIP\n<\/pre>\n<p><\/code><\/p>\n<p>Bu Service tan\u0131m\u0131n\u0131 uygulad\u0131\u011f\u0131n\u0131zda, Kubernetes k\u00fcmeniz i\u00e7inde <code>backend-db.default.svc.cluster.local<\/code> (varsay\u0131lan namespace'deyseniz <code>backend-db<\/code> de yeterlidir) ad\u0131nda bir DNS kayd\u0131 olu\u015fur. <code>frontend-app<\/code> Pod'unuz, <code>backend-db<\/code> DNS ad\u0131n\u0131 \u00e7\u00f6z\u00fcmleyerek veritaban\u0131 servisine kolayca ula\u015fabilir. Bu, Kubernetes'in i\u00e7indeki hizmet ke\u015ffinin ne kadar basit ve etkili oldu\u011funu g\u00f6sterir. Ev laboratuvar\u0131n\u0131zda karma\u015f\u0131k a\u011f yap\u0131land\u0131rmalar\u0131 yerine, uygulama geli\u015ftirmenize ve test etmenize odaklanman\u0131z\u0131 sa\u011flar. CoreDNS'in esnek yap\u0131s\u0131 sayesinde, DNS \u00e7\u00f6z\u00fcm\u00fc i\u00e7in \u00f6zel gereksinimleriniz oldu\u011funda bile kolayca yap\u0131land\u0131rma yapabilirsiniz.<\/p>\n<h2>Ev Laboratuvar\u0131nda Kubernetes Uygulamalar\u0131 \u0130\u00e7in SSL\/TLS Sertifikalar\u0131n\u0131 Nas\u0131l Y\u00f6netebiliriz?<\/h2>\n<p>\u0130nternet \u00fczerindeki her t\u00fcrl\u00fc ileti\u015fimde g\u00fcvenlik, art\u0131k bir l\u00fcks de\u011fil, bir zorunluluktur. Ev laboratuvar\u0131n\u0131zda bile olsa, d\u0131\u015f d\u00fcnyaya a\u00e7t\u0131\u011f\u0131n\u0131z web uygulamalar\u0131n\u0131z\u0131n HTTPS protokol\u00fc \u00fczerinden g\u00fcvenli bir ba\u011flant\u0131 sunmas\u0131 hem veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc korur hem de kullan\u0131c\u0131lar\u0131n\u0131za g\u00fcven verir. Kubernetes ortam\u0131nda SSL\/TLS sertifikalar\u0131n\u0131 y\u00f6netmek, ba\u015flang\u0131\u00e7ta karma\u015f\u0131k g\u00f6r\u00fcnebilir ancak do\u011fru ara\u00e7larla bu s\u00fcre\u00e7 tamamen otomatize edilebilir. Bu b\u00f6l\u00fcmde, Kubernetes uygulamalar\u0131n\u0131z i\u00e7in SSL\/TLS sertifikalar\u0131n\u0131 nas\u0131l sa\u011flayaca\u011f\u0131m\u0131z\u0131 ve y\u00f6netece\u011fimizi ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<p>Kubernetes'te SSL\/TLS sertifikalar\u0131n\u0131 genellikle iki ana bile\u015fen kullanarak y\u00f6netiriz: Bir <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress\/\">Ingress Controller<\/a> ve bir sertifika y\u00f6netim arac\u0131 olan <a href=\"https:\/\/cert-manager.io\/docs\/\">Cert-Manager<\/a>. Ingress Controller (\u00f6rne\u011fin Nginx Ingress Controller), d\u0131\u015far\u0131dan gelen HTTP\/HTTPS trafi\u011fini Kubernetes i\u00e7indeki servislere y\u00f6nlendiren bir katmand\u0131r. SSL\/TLS sonland\u0131rmas\u0131n\u0131 (termination) genellikle Ingress Controller yapar, yani \u015fifreli trafi\u011fi \u00e7\u00f6zer ve \u015fifresiz olarak arka u\u00e7 servislerine iletir. Cert-Manager ise bu Ingress Controller'\u0131n kullanaca\u011f\u0131 SSL\/TLS sertifikalar\u0131n\u0131 otomatik olarak sa\u011flay\u0131p yenileyen g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Genellikle Let's Encrypt gibi \u00fccretsiz bir Sertifika Yetkilisi (CA) ile entegre \u00e7al\u0131\u015farak sertifika alma ve yenileme s\u00fcre\u00e7lerini basitle\u015ftirir.<\/p>\n<p>Ev laboratuvar\u0131n\u0131zda bir web uygulamas\u0131n\u0131 yay\u0131nlarken SSL\/TLS sertifikas\u0131 sa\u011flaman\u0131n ad\u0131mlar\u0131 genellikle \u015fu \u015fekildedir:<\/p>\n<ol>\n<li><strong>Bir Alan Ad\u0131 (Domain Name) Edinin<\/strong>: Let's Encrypt gibi CA'lar genellikle ger\u00e7ek bir alan ad\u0131na sertifika verir. Dinamik DNS (DDNS) hizmetleri (\u00f6rn. DuckDNS, No-IP) veya kendi \u00f6zel alan ad\u0131n\u0131z\u0131 kullanabilirsiniz.<\/li>\n<li><strong>Ingress Controller Kurulumu<\/strong>: Nginx Ingress Controller gibi pop\u00fcler bir \u00e7\u00f6z\u00fcm\u00fc k\u00fcmenize kurun. Bu, d\u0131\u015far\u0131dan gelen trafi\u011fi y\u00f6netmek i\u00e7in bir giri\u015f noktas\u0131 sa\u011flayacakt\u0131r.<\/li>\n<li><strong>Cert-Manager Kurulumu<\/strong>: Cert-Manager'\u0131 k\u00fcmenize Helm veya YAML dosyalar\u0131 arac\u0131l\u0131\u011f\u0131yla kurun.<\/li>\n<li><strong>Issuer veya ClusterIssuer Tan\u0131mlamas\u0131<\/strong>: Cert-Manager'a hangi Sertifika Yetkilisi'nden (\u00f6rne\u011fin Let's Encrypt) sertifika alaca\u011f\u0131n\u0131 ve hangi kimlik do\u011frulama y\u00f6ntemini (HTTP01 veya DNS01 challenge) kullanaca\u011f\u0131n\u0131 bildirin. Ev laboratuvarlar\u0131 i\u00e7in genellikle HTTP01 challenge (Ingress \u00fczerinden) veya DNS01 challenge (DDNS sa\u011flay\u0131c\u0131n\u0131z\u0131n API'si arac\u0131l\u0131\u011f\u0131yla) tercih edilir.<\/li>\n<li><strong>Uygulaman\u0131z \u0130\u00e7in Ingress Kayd\u0131 Olu\u015fturma<\/strong>: Uygulaman\u0131z\u0131n servis ve alan ad\u0131 bilgilerini i\u00e7eren bir Ingress kayna\u011f\u0131 tan\u0131mlay\u0131n. Bu Ingress kayna\u011f\u0131na Cert-Manager'\u0131n kullanaca\u011f\u0131 Issuer\/ClusterIssuer'\u0131 belirten anotasyonlar\u0131 ekleyerek sertifikan\u0131n otomatik olarak sa\u011flanmas\u0131n\u0131 tetikleyin.<\/li>\n<\/ol>\n<p>Bu ad\u0131mlar\u0131n tamamlanmas\u0131yla birlikte, Cert-Manager otomatik olarak Let's Encrypt ile ileti\u015fime ge\u00e7ecek, alan ad\u0131n\u0131z i\u00e7in bir sertifika talebinde bulunacak, alan ad\u0131 sahipli\u011fini do\u011frulayacak ve sertifikay\u0131 al\u0131p Kubernetes Secret olarak saklayacakt\u0131r. Ingress Controller da bu Secret'\u0131 kullanarak HTTPS trafi\u011fini sonland\u0131racakt\u0131r. Bu s\u00fcre\u00e7 tamamen otomatiktir ve sertifikalar\u0131n\u0131z\u0131n s\u00fcresi dolmadan \u00f6nce otomatik olarak yenilenir.<\/p>\n<div class=\"interactive-tip\">\n  Uzman \u0130pucu: Ev laboratuvar\u0131n\u0131zda sadece i\u00e7 a\u011fda kullan\u0131lan uygulamalar\u0131n\u0131z varsa ve d\u0131\u015far\u0131dan eri\u015fime a\u00e7\u0131k de\u011fillerse, kendi Kendinden \u0130mzal\u0131 (Self-Signed) Sertifika Yetkilisi (CA) olu\u015fturabilir ve bununla sertifikalar\u0131n\u0131z\u0131 imzalayabilirsiniz. Bu, internet tabanl\u0131 bir CA'ya ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 ortadan kald\u0131r\u0131r ancak taray\u0131c\u0131n\u0131zda \"g\u00fcvenli de\u011fil\" uyar\u0131s\u0131 alman\u0131za neden olabilir, bu durumda CA sertifikan\u0131z\u0131 i\u015fletim sisteminize veya taray\u0131c\u0131n\u0131za g\u00fcvenilir olarak eklemeniz gerekir.\n<\/div>\n<p>\u015eimdi bir \u00f6rnek Ingress kayna\u011f\u0131na bakal\u0131m. Bu \u00f6rnekte, <code>my-app.example.com<\/code> alan ad\u0131 i\u00e7in Cert-Manager taraf\u0131ndan otomatik olarak bir SSL\/TLS sertifikas\u0131 sa\u011flanacak ve bu sertifika kullan\u0131larak <code>my-app-service<\/code> adl\u0131 servise trafik y\u00f6nlendirilecektir:<\/p>\n<pre><code>\napiVersion: networking.k8s.io\/v1\nkind: Ingress\nmetadata:\n  name: my-app-ingress\n  annotations:\n    kubernetes.io\/ingress.class: \"nginx\"\n    cert-manager.io\/cluster-issuer: \"letsencrypt-prod\" # ClusterIssuer ad\u0131n\u0131z\nspec:\n  tls:\n  - hosts:\n    - my-app.example.com\n    secretName: my-app-tls # Sertifikan\u0131n saklanaca\u011f\u0131 Secret ad\u0131\n  rules:\n  - host: my-app.example.com\n    http:\n      paths:\n      - path: \/\n        pathType: Prefix\n        backend:\n          service:\n            name: my-app-service\n            port:\n              number: 80\n<\/pre>\n<p><\/code><\/p>\n<p>Bu YAML dosyas\u0131, Cert-Manager'\u0131n <code>letsencrypt-prod<\/code> adl\u0131 <code>ClusterIssuer<\/code>'\u0131 kullanarak <code>my-app.example.com<\/code> i\u00e7in bir sertifika almas\u0131n\u0131 ve bunu <code>my-app-tls<\/code> adl\u0131 bir Secret'a kaydetmesini sa\u011flar. Ingress Controller, bu Secret'\u0131 kullanarak gelen HTTPS trafi\u011fini sonland\u0131r\u0131r. Bu yap\u0131land\u0131rma ile, ev laboratuvar\u0131n\u0131zdaki uygulamalar\u0131n\u0131za g\u00fcvenli ve \u015fifreli eri\u015fim sa\u011flamak i\u00e7in \u00f6nemli bir ad\u0131m\u0131 atm\u0131\u015f olursunuz. Unutmay\u0131n, bu kurulumu yaparken kulland\u0131\u011f\u0131n\u0131z alan ad\u0131n\u0131n do\u011fru bir \u015fekilde DNS \u00e7\u00f6z\u00fcm\u00fc yapmas\u0131 ve Kubernetes Ingress Controller'\u0131n\u0131z\u0131n d\u0131\u015far\u0131dan eri\u015filebilir olmas\u0131 gerekmektedir.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryosu: Ev Laboratuvar\u0131nda U\u00e7tan Uca DNS ve SSL Kurulumu<\/h2>\n<p>\u015eimdiye kadar Kubernetes'te DNS ve SSL'in temel kavramlar\u0131n\u0131 ve bile\u015fenlerini ayr\u0131 ayr\u0131 ele ald\u0131k. Ancak, bu teknolojileri ev laboratuvar\u0131n\u0131zda bir araya getirerek ger\u00e7ek bir uygulama i\u00e7in nas\u0131l u\u00e7tan uca bir \u00e7\u00f6z\u00fcm olu\u015fturabiliriz? Bu b\u00f6l\u00fcmde, pop\u00fcler bir i\u00e7erik y\u00f6netim sistemi olan WordPress'i ev laboratuvar\u0131 Kubernetes k\u00fcmemize da\u011f\u0131tarak, \u00f6zel bir alan ad\u0131 \u00fczerinden eri\u015filebilir hale getirece\u011fiz ve tam otomatik SSL\/TLS sertifikas\u0131 sa\u011flayaca\u011f\u0131z. Bu vaka analizi, teorik bilgileri pratik bir senaryoya d\u00f6n\u00fc\u015ft\u00fcrmenize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>Senaryo: WordPress Uygulamas\u0131n\u0131 \u00d6zel Alan Ad\u0131 ve HTTPS ile Yay\u0131nlama<\/h3>\n<p>Hedefimiz: Bir WordPress uygulamas\u0131n\u0131 <code>wordpress.homelab.com<\/code> gibi kendi se\u00e7ti\u011fimiz bir alan ad\u0131 \u00fczerinden yay\u0131nlamak ve bu alan ad\u0131na Let's Encrypt taraf\u0131ndan sa\u011flanan otomatik SSL sertifikas\u0131 ile g\u00fcvenli HTTPS eri\u015fimi sa\u011flamak. Bu, ev a\u011f\u0131m\u0131z d\u0131\u015f\u0131ndan bile eri\u015filebilir olacak.<\/p>\n<h4>1. Ad\u0131m: \u00d6n Ko\u015fullar ve Temel Kurulumlar<\/h4>\n<ul>\n<li><strong>Kubernetes K\u00fcmesi<\/strong>: \u00c7al\u0131\u015fan bir Kubernetes k\u00fcmeniz olmal\u0131 (\u00f6rn. K3s, Minikube).<\/li>\n<li><strong>Ingress Controller<\/strong>: Nginx Ingress Controller kurulmu\u015f olmal\u0131. (Kurulum i\u00e7in Nginx Ingress dok\u00fcmanlar\u0131na bakabilirsiniz.)<\/li>\n<li><strong>Cert-Manager<\/strong>: Cert-Manager kurulmu\u015f ve bir <code>ClusterIssuer<\/code> (\u00f6rne\u011fin <code>letsencrypt-prod<\/code> veya <code>letsencrypt-stag<\/code>) tan\u0131mlanm\u0131\u015f olmal\u0131.<\/li>\n<li><strong>Alan Ad\u0131 ve DNS Ayarlar\u0131<\/strong>: <code>wordpress.homelab.com<\/code> gibi bir alan ad\u0131n\u0131z olmal\u0131 ve bu alan ad\u0131n\u0131n DNS kayd\u0131 (A kayd\u0131), ev a\u011f\u0131n\u0131z\u0131n d\u0131\u015f IP adresini i\u015faret etmeli. Ev a\u011f\u0131n\u0131zda port y\u00f6nlendirme (port forwarding) yaparak 80 ve 443 numaral\u0131 portlar\u0131 Kubernetes Ingress Controller'\u0131n\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 sunucuya y\u00f6nlendirmelisiniz. E\u011fer statik bir IP'niz yoksa, Dinamik DNS (DDNS) servislerini kullanabilirsiniz.<\/li>\n<\/ul>\n<h4>2. Ad\u0131m: WordPress ve MySQL Da\u011f\u0131t\u0131m\u0131<\/h4>\n<p>WordPress i\u00e7in bir MySQL veritaban\u0131na ihtiyac\u0131m\u0131z var. Kal\u0131c\u0131 depolama i\u00e7in <code>PersistentVolume<\/code> ve <code>PersistentVolumeClaim<\/code> kullanaca\u011f\u0131z.<\/p>\n<pre><code>\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: mysql-pv-claim\n  labels:\n    app: wordpress\nspec:\n  accessModes:\n    - ReadWriteOnce\n  resources:\n    requests:\n      storage: 5Gi\n---\napiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: wordpress-mysql\n  labels:\n    app: wordpress\nspec:\n  selector:\n    matchLabels:\n      app: wordpress\n      tier: mysql\n  strategy:\n    type: Recreate\n  template:\n    metadata:\n      labels:\n        app: wordpress\n        tier: mysql\n    spec:\n      containers:\n      - image: mysql:5.7\n        name: mysql\n        env:\n        - name: MYSQL_ROOT_PASSWORD\n          value: YOUR_ROOT_PASSWORD # G\u00fc\u00e7l\u00fc bir \u015fifre belirleyin\n        - name: MYSQL_DATABASE\n          value: wordpress\n        - name: MYSQL_USER\n          value: wordpress\n        - name: MYSQL_PASSWORD\n          value: YOUR_WORDPRESS_PASSWORD # G\u00fc\u00e7l\u00fc bir \u015fifre belirleyin\n        ports:\n        - containerPort: 3306\n          name: mysql\n        volumeMounts:\n        - name: mysql-persistent-storage\n          mountPath: \/var\/lib\/mysql\n      volumes:\n      - name: mysql-persistent-storage\n        persistentVolumeClaim:\n          claimName: mysql-pv-claim\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: wordpress-mysql\n  labels:\n    app: wordpress\nspec:\n  ports:\n    - port: 3306\n  selector:\n    app: wordpress\n    tier: mysql\n  clusterIP: None # Headless servis olarak ayarla\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki YAML dosyas\u0131n\u0131 uygulayarak MySQL veritaban\u0131n\u0131 ve ona ba\u011fl\u0131 servisi da\u011f\u0131t\u0131n. <code>YOUR_ROOT_PASSWORD<\/code> ve <code>YOUR_WORDPRESS_PASSWORD<\/code> alanlar\u0131n\u0131 kendi g\u00fc\u00e7l\u00fc \u015fifrelerinizle de\u011fi\u015ftirin.<\/p>\n<h4>3. Ad\u0131m: WordPress Uygulamas\u0131n\u0131n Da\u011f\u0131t\u0131m\u0131<\/h4>\n<pre><code>\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: wp-pv-claim\n  labels:\n    app: wordpress\nspec:\n  accessModes:\n    - ReadWriteOnce\n  resources:\n    requests:\n      storage: 5Gi\n---\napiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: wordpress\n  labels:\n    app: wordpress\nspec:\n  selector:\n    matchLabels:\n      app: wordpress\n      tier: frontend\n  strategy:\n    type: Recreate\n  template:\n    metadata:\n      labels:\n        app: wordpress\n        tier: frontend\n    spec:\n      containers:\n      - image: wordpress:latest\n        name: wordpress\n        env:\n        - name: WORDPRESS_DB_HOST\n          value: wordpress-mysql\n        - name: WORDPRESS_DB_USER\n          value: wordpress\n        - name: WORDPRESS_DB_PASSWORD\n          value: YOUR_WORDPRESS_PASSWORD # MySQL \u015fifresiyle ayn\u0131 olmal\u0131\n        - name: WORDPRESS_DB_NAME\n          value: wordpress\n        ports:\n        - containerPort: 80\n          name: wordpress\n        volumeMounts:\n        - name: wordpress-persistent-storage\n          mountPath: \/var\/www\/html\n      volumes:\n      - name: wordpress-persistent-storage\n        persistentVolumeClaim:\n          claimName: wp-pv-claim\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: wordpress\n  labels:\n    app: wordpress\nspec:\n  ports:\n    - port: 80\n  selector:\n    app: wordpress\n    tier: frontend\n  type: ClusterIP\n<\/pre>\n<p><\/code><\/p>\n<p>Bu YAML dosyas\u0131n\u0131 uygulayarak WordPress uygulamas\u0131n\u0131 ve ClusterIP servisini da\u011f\u0131t\u0131n. <code>WORDPRESS_DB_PASSWORD<\/code> de\u011ferinin MySQL \u015fifrenizle e\u015fle\u015fti\u011finden emin olun.<\/p>\n<h4>4. Ad\u0131m: Ingress ve Cert-Manager ile SSL Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>\u015eimdi s\u0131ra, <code>wordpress.homelab.com<\/code> alan ad\u0131m\u0131z\u0131 WordPress servisine y\u00f6nlendirmeye ve otomatik SSL sa\u011flamaya geldi.<\/p>\n<pre><code>\napiVersion: networking.k8s.io\/v1\nkind: Ingress\nmetadata:\n  name: wordpress-ingress\n  annotations:\n    kubernetes.io\/ingress.class: \"nginx\"\n    cert-manager.io\/cluster-issuer: \"letsencrypt-prod\" # Daha \u00f6nce tan\u0131mlad\u0131\u011f\u0131n\u0131z ClusterIssuer ad\u0131\n    nginx.ingress.kubernetes.io\/force-ssl-redirect: \"true\" # T\u00fcm HTTP trafi\u011fini HTTPS'e y\u00f6nlendir\nspec:\n  tls:\n  - hosts:\n    - wordpress.homelab.com\n    secretName: wordpress-tls-secret # Sertifikan\u0131n saklanaca\u011f\u0131 Secret\n  rules:\n  - host: wordpress.homelab.com\n    http:\n      paths:\n      - path: \/\n        pathType: Prefix\n        backend:\n          service:\n            name: wordpress\n            port:\n              number: 80\n<\/pre>\n<p><\/code><\/p>\n<p>Bu Ingress kayna\u011f\u0131n\u0131 uygulad\u0131\u011f\u0131n\u0131zda, Cert-Manager otomatik olarak <code>wordpress.homelab.com<\/code> i\u00e7in Let's Encrypt'ten bir sertifika talep edecek. Talep ba\u015far\u0131l\u0131 olursa, sertifika <code>wordpress-tls-secret<\/code> adl\u0131 bir Kubernetes Secret olarak saklanacak ve Nginx Ingress Controller bu sertifikay\u0131 kullanarak HTTPS trafi\u011fini sonland\u0131racakt\u0131r. Ayr\u0131ca, <code>nginx.ingress.kubernetes.io\/force-ssl-redirect: \"true\"<\/code> anotasyonu sayesinde t\u00fcm HTTP istekleri otomatik olarak HTTPS'e y\u00f6nlendirilecektir.<\/p>\n<h4>Sonu\u00e7<\/h4>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, taray\u0131c\u0131n\u0131zdan <code>https:\/\/wordpress.homelab.com<\/code> adresine gitti\u011finizde, WordPress kurulum sihirbaz\u0131n\u0131 HTTPS \u00fczerinden g\u00fcvenli bir \u015fekilde g\u00f6rmelisiniz. Bu senaryo, ev laboratuvar\u0131n\u0131zda bir uygulaman\u0131n hem dahili hizmet ke\u015ffi (WordPress'in MySQL'i bulmas\u0131) hem de d\u0131\u015f d\u00fcnyaya g\u00fcvenli bir \u015fekilde a\u00e7\u0131lmas\u0131 (HTTPS ile) i\u00e7in DNS ve SSL\/TLS'in nas\u0131l entegre edildi\u011fini g\u00f6stermektedir. Bu vaka analizi, kendi projelerinizde benzer yap\u0131land\u0131rmalar\u0131 uygulaman\u0131z i\u00e7in size sa\u011flam bir temel sunar.<\/p>\n<h2>\u0130leri D\u00fczey \u0130pu\u00e7lar\u0131 ve Optimizasyonlar: Ev Laboratuvar\u0131n\u0131z\u0131 G\u00fc\u00e7lendirin<\/h2>\n<p>Kubernetes'te DNS ve SSL\/TLS'in temel kurulumlar\u0131n\u0131 anlad\u0131ktan sonra, ev laboratuvar\u0131n\u0131z\u0131 daha da optimize etmek ve karma\u015f\u0131k senaryolara haz\u0131rlamak i\u00e7in baz\u0131 ileri d\u00fczey ipu\u00e7lar\u0131 ve p\u00fcf noktalar\u0131 bulunmaktad\u0131r. Bu b\u00f6l\u00fcmde, performans, g\u00fcvenlik ve y\u00f6netim kolayl\u0131\u011f\u0131 a\u00e7\u0131s\u0131ndan k\u00fcmenizi nas\u0131l geli\u015ftirebilece\u011finizi inceleyece\u011fiz.<\/p>\n<h3>\u00d6zel CoreDNS Yap\u0131land\u0131rmalar\u0131 ve DNS Politikalar\u0131<\/h3>\n<p>CoreDNS, esnek bir eklenti mimarisine sahiptir ve <code>Corefile<\/code> ad\u0131 verilen bir ConfigMap \u00fczerinden yap\u0131land\u0131r\u0131l\u0131r. Ev laboratuvar\u0131n\u0131zda, varsay\u0131lan CoreDNS yap\u0131land\u0131rmas\u0131n\u0131n \u00f6tesine ge\u00e7meniz gerekebilir:<\/p>\n<ul>\n<li><strong>Harici DNS Sunucular\u0131 \u0130\u00e7in Forwarding<\/strong>: Kendi i\u00e7 a\u011f\u0131n\u0131zda <code>ad.homelab.local<\/code> gibi \u00f6zel bir alan ad\u0131n\u0131z varsa, CoreDNS'i bu alan ad\u0131n\u0131n sorgular\u0131n\u0131 belirli bir i\u00e7 DNS sunucusuna (\u00f6rne\u011fin bir <code>dnsmasq<\/code> sunucusu veya pfSense \u00fczerindeki DNS Resolver) iletecek \u015fekilde yap\u0131land\u0131rabilirsiniz. Bu sayede, Kubernetes i\u00e7indeki Pod'lar, d\u0131\u015f DNS sunucusunu do\u011frudan bilmeden bu kaynaklara eri\u015febilir.<\/li>\n<li><strong>\u00d6zel DNS Kay\u0131tlar\u0131 (Host Eklentisi)<\/strong>: Belirli servisler veya harici IP adresleri i\u00e7in manuel DNS kay\u0131tlar\u0131 eklemeniz gerekebilir. CoreDNS'in <code>hosts<\/code> eklentisi ile bu t\u00fcr statik e\u015flemeleri kolayca yapabilirsiniz.<\/li>\n<li><strong>Pod DNS Politikalar\u0131<\/strong>: Her Pod'un DNS \u00e7\u00f6z\u00fcm\u00fc, Pod tan\u0131m\u0131nda <code>dnsPolicy<\/code> alan\u0131 ile kontrol edilebilir. <code>ClusterFirst<\/code> (varsay\u0131lan) CoreDNS'i kullan\u0131rken, <code>Default<\/code> Pod'un \u00e7al\u0131\u015ft\u0131\u011f\u0131 d\u00fc\u011f\u00fcm\u00fcn DNS yap\u0131land\u0131rmas\u0131n\u0131 kullan\u0131r. <code>None<\/code> ise tamamen \u00f6zel bir DNS yap\u0131land\u0131rmas\u0131na izin verir (<code>dnsConfig<\/code> alan\u0131 ile birlikte). \u00d6rne\u011fin, belirli bir Pod'un sadece d\u0131\u015f bir DNS sunucusunu kullanmas\u0131n\u0131 istiyorsan\u0131z <code>dnsPolicy: None<\/code> ve <code>dnsConfig<\/code> kullanarak bu Pod'un DNS sunucular\u0131n\u0131 ve arama alanlar\u0131n\u0131 \u00f6zelle\u015ftirebilirsiniz.<\/li>\n<\/ul>\n<pre><code>\napiVersion: v1\nkind: Pod\nmetadata:\n  name: my-custom-dns-pod\nspec:\n  containers:\n    - name: busybox\n      image: busybox\n      command: [\"sh\", \"-c\", \"echo 'Hello from custom DNS pod!' && sleep 3600\"]\n  dnsPolicy: None # Varsay\u0131lan DNS politikas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rak\n  dnsConfig:\n    nameservers: # \u00d6zel DNS sunucular\u0131\n      - 8.8.8.8\n      - 8.8.4.4\n    searches: # \u00d6zel arama alanlar\u0131\n      - mydomain.com\n      - example.com\n    options:\n      - name: ndots\n        value: \"2\"\n<\/pre>\n<p><\/code><\/p>\n<h3>Wildcard Sertifikalar ve \u00d6zel CA'lar<\/h3>\n<ul>\n<li><strong>Wildcard Sertifikalar<\/strong>: Ev laboratuvar\u0131n\u0131zda bir\u00e7ok alt alan ad\u0131 (\u00f6rn. <code>app1.homelab.com<\/code>, <code>app2.homelab.com<\/code>) kullan\u0131yorsan\u0131z, her biri i\u00e7in ayr\u0131 ayr\u0131 sertifika almak yerine <code>*.homelab.com<\/code> i\u00e7in tek bir wildcard sertifika alabilirsiniz. Bu, y\u00f6netim y\u00fck\u00fcn\u00fc \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r. Let's Encrypt wildcard sertifikalar\u0131 i\u00e7in DNS01 challenge y\u00f6ntemini gerektirir, yani Cert-Manager'\u0131n DNS sa\u011flay\u0131c\u0131n\u0131z\u0131n API'si ile etkile\u015fime ge\u00e7ebilmesi gerekir.<\/li>\n<li><strong>\u00d6zel Sertifika Yetkilileri (CA'lar)<\/strong>: Sadece i\u00e7 a\u011f\u0131n\u0131zdaki uygulamalar i\u00e7in sertifika sa\u011fl\u0131yorsan\u0131z ve bu uygulamalara d\u0131\u015far\u0131dan eri\u015fim olmayacaksa, kendi \u00f6zel CA'n\u0131z\u0131 kurabilirsiniz. Bu CA ile imzalad\u0131\u011f\u0131n\u0131z sertifikalar, internetteki genel CA'lardan ba\u011f\u0131ms\u0131z olarak \u00e7al\u0131\u015f\u0131r. G\u00fcvenilirli\u011fi sa\u011flamak i\u00e7in, bu \u00f6zel CA'n\u0131n k\u00f6k sertifikas\u0131n\u0131 t\u00fcm istemci cihazlar\u0131n\u0131za (bilgisayarlar, telefonlar) manuel olarak g\u00fcvenilir olarak eklemeniz gerekir. Bu, ev laboratuvar\u0131n\u0131zda hassas servisler i\u00e7in ek bir g\u00fcvenlik ve kontrol katman\u0131 sa\u011flar.<\/li>\n<\/ul>\n<h3>Mobil Uyumlu HTML ve Responsive Tasar\u0131m<\/h3>\n<p>Modern web uygulamalar\u0131n\u0131n vazge\u00e7ilmez bir par\u00e7as\u0131 olan mobil uyumluluk, ev laboratuvar\u0131n\u0131zda geli\u015ftirdi\u011finiz projeler i\u00e7in de ge\u00e7erlidir. Kubernetes'in kendisi HTML \u00fcretmez ancak da\u011f\u0131tt\u0131\u011f\u0131n\u0131z uygulamalar mobil uyumlu olmal\u0131d\u0131r. \u0130\u015fte k\u00fc\u00e7\u00fck bir CSS media query \u00f6rne\u011fi, web uygulaman\u0131z\u0131n farkl\u0131 ekran boyutlar\u0131na nas\u0131l adapte olabilece\u011fini g\u00f6sterir:<\/p>\n<pre><code>\n<style>\n  \/* Genel stiller *\/\n  body {\n    font-family: Arial, sans-serif;\n    margin: 0;\n    padding: 20px;\n  }\n\n  \/* Mobil cihazlar i\u00e7in stil tan\u0131mlar\u0131 *\/\n  @media only screen and (max-width: 600px) {\n    body {\n      padding: 10px;\n      font-size: 14px;\n    }\n    h2 {\n      font-size: 1.5em;\n    }\n    \/* Di\u011fer mobil \u00f6zg\u00fc ayarlamalar *\/\n  }\n<\/style>\n<\/pre>\n<p><\/code><\/p>\n<p>Bu CSS kodunu, uygulaman\u0131z\u0131n HTML <code><head><\/code> etiketine veya harici bir <code>.css<\/code> dosyas\u0131na dahil ederek mobil uyumlulu\u011fu art\u0131rabilirsiniz. <code>max-width<\/code> de\u011feri, stilin uygulanaca\u011f\u0131 maksimum ekran geni\u015fli\u011fini belirtir. Bu sayede, k\u00fc\u00e7\u00fck ekranlarda daha okunakl\u0131 ve kullan\u0131labilir bir deneyim sunabilirsiniz.<\/p>\n<h3>Sorun Giderme ve \u0130zleme<\/h3>\n<ul>\n<li><strong>DNS Sorunlar\u0131<\/strong>: Pod'lar aras\u0131 ileti\u015fimde veya d\u0131\u015f kaynaklara eri\u015fimde sorun ya\u015f\u0131yorsan\u0131z, Pod'unuzun i\u00e7inden <code>nslookup<\/code> veya <code>dig<\/code> komutlar\u0131n\u0131 kullanarak DNS \u00e7\u00f6z\u00fcmlemesini test edin. <code>kubectl exec -it <pod-ad\u0131> -- nslookup <hedef-servis><\/code> komutu ile CoreDNS'in nas\u0131l yan\u0131t verdi\u011fini g\u00f6rebilirsiniz. CoreDNS Pod'lar\u0131n\u0131n loglar\u0131n\u0131 kontrol etmek (<code>kubectl logs -f -n kube-system <coredns-pod-ad\u0131><\/code>), sorunun kayna\u011f\u0131n\u0131 anlamak i\u00e7in \u00e7ok \u00f6nemlidir.<\/li>\n<li><strong>SSL Sorunlar\u0131<\/strong>: Sertifika alam\u0131yorsan\u0131z veya HTTPS eri\u015fimi \u00e7al\u0131\u015fm\u0131yorsa:\n<ul>\n<li>Cert-Manager <code>Certificate<\/code> ve <code>CertificateRequest<\/code> kaynaklar\u0131n\u0131n durumunu kontrol edin (<code>kubectl describe certificate <sertifika-ad\u0131><\/code>).<\/li>\n<li>Cert-Manager Pod'lar\u0131n\u0131n loglar\u0131n\u0131 inceleyin.<\/li>\n<li>Ingress Controller Pod'lar\u0131n\u0131n loglar\u0131n\u0131 kontrol edin.<\/li>\n<li>Alan ad\u0131n\u0131z\u0131n DNS kay\u0131tlar\u0131n\u0131n do\u011fru oldu\u011fundan ve d\u0131\u015far\u0131dan eri\u015filebilir oldu\u011fundan emin olun (\u00f6rne\u011fin <code>dig +short A wordpress.homelab.com<\/code>).<\/li>\n<li>G\u00fcvenlik duvar\u0131 ve port y\u00f6nlendirme ayarlar\u0131n\u0131z\u0131 tekrar kontrol edin.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Bu ileri d\u00fczey ipu\u00e7lar\u0131 ve optimizasyonlar, ev laboratuvar\u0131 Kubernetes ortam\u0131n\u0131z\u0131 daha sa\u011flam, g\u00fcvenli ve y\u00f6netilebilir hale getirecektir. Her bir konuyu derinlemesine ara\u015ft\u0131rmak, kendi \u00f6zel ihtiya\u00e7lar\u0131n\u0131za g\u00f6re en iyi \u00e7\u00f6z\u00fcm\u00fc bulman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h2>Sonu\u00e7: Ev Laboratuvar\u0131n\u0131zda G\u00fcvenli ve Eri\u015filebilir Uygulamalar<\/h2>\n<p>Bu kapsaml\u0131 makale boyunca, ev laboratuvar\u0131 ortam\u0131nda Kubernetes DNS ve SSL\/TLS y\u00f6netiminin temelinden ileri d\u00fczeyine kadar bir\u00e7ok konuyu ele ald\u0131k. Kubernetes'in dahili DNS servisi olan CoreDNS'in hizmet ke\u015ffi i\u00e7in ne kadar kritik oldu\u011funu, uygulamalar\u0131n isimlerle birbirini nas\u0131l buldu\u011funu ve bu sayede a\u011f karma\u015f\u0131kl\u0131\u011f\u0131n\u0131n nas\u0131l azald\u0131\u011f\u0131n\u0131 detayl\u0131ca inceledik. Ard\u0131ndan, Ingress Controller ve Cert-Manager gibi ara\u00e7larla SSL\/TLS sertifikalar\u0131n\u0131 otomatik olarak sa\u011flayarak uygulamalar\u0131m\u0131z\u0131 nas\u0131l g\u00fcvenli hale getirebilece\u011fimizi \u00f6\u011frendik. WordPress \u00f6rne\u011fi \u00fczerinden ger\u00e7ek d\u00fcnya senaryosunda bu iki teknolojiyi bir araya getirerek u\u00e7tan uca bir da\u011f\u0131t\u0131m\u0131n ad\u0131mlar\u0131n\u0131 g\u00f6rd\u00fck.<\/p>\n<p>\u00d6zetle, ev laboratuvar\u0131n\u0131zda Kubernetes kullanmak, sadece uygulamalar\u0131 \u00e7al\u0131\u015ft\u0131rmakla kalmaz, ayn\u0131 zamanda bu uygulamalar\u0131n sa\u011fl\u0131kl\u0131 bir \u015fekilde ileti\u015fim kurmas\u0131n\u0131 ve d\u0131\u015f d\u00fcnyaya g\u00fcvenli bir \u015fekilde sunulmas\u0131n\u0131 gerektirir. DNS, bu ileti\u015fimin omurgas\u0131n\u0131 olu\u015ftururken, SSL\/TLS ise veri al\u0131\u015fveri\u015finin gizlili\u011fini ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flar. Bu iki temel bile\u015feni do\u011fru bir \u015fekilde yap\u0131land\u0131rmak, hem geli\u015ftirme s\u00fcre\u00e7lerinizi h\u0131zland\u0131racak hem de projelerinizin profesyonel bir g\u00f6r\u00fcn\u00fcme kavu\u015fmas\u0131n\u0131 sa\u011flayacakt\u0131r. Otomatik sertifika y\u00f6netimi sayesinde, g\u00fcvenlik endi\u015feleriyle u\u011fra\u015fmak yerine daha \u00e7ok uygulama geli\u015ftirmeye odaklanabilirsiniz.<\/p>\n<p>Unutmay\u0131n, bir ev laboratuvar\u0131 sadece test ve \u00f6\u011frenme ortam\u0131 de\u011fildir; ayn\u0131 zamanda ger\u00e7ek d\u00fcnya sorunlar\u0131na \u00e7\u00f6z\u00fcmler \u00fcretebilece\u011finiz bir sandbox't\u0131r. Bu makaledeki bilgileri kullanarak, kendi ev laboratuvar\u0131n\u0131zda sadece i\u015flevsel de\u011fil, ayn\u0131 zamanda g\u00fcvenli ve \u00f6l\u00e7eklenebilir uygulamalar olu\u015fturmak i\u00e7in sa\u011flam bir temel atm\u0131\u015f olacaks\u0131n\u0131z. S\u00fcrekli \u00f6\u011frenmeye ve denemeye devam edin; Kubernetes d\u00fcnyas\u0131 her zaman yeni ke\u015fiflere a\u00e7\u0131kt\u0131r!<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<p><strong>1. Ev laboratuvar\u0131nda neden ger\u00e7ek bir alan ad\u0131 ve Let's Encrypt kullanmal\u0131y\u0131m? Self-signed sertifikalar yeterli olmaz m\u0131?<\/strong><\/p>\n<p>Ger\u00e7ek bir alan ad\u0131 ve Let's Encrypt gibi bir CA'dan al\u0131nan sertifikalar, uygulaman\u0131z\u0131n taray\u0131c\u0131larda g\u00fcvenli olarak alg\u0131lanmas\u0131n\u0131 sa\u011flar. Self-signed sertifikalar ise taray\u0131c\u0131lar taraf\u0131ndan g\u00fcvenli kabul edilmez ve kullan\u0131c\u0131lar\u0131n\u0131za \"g\u00fcvenli de\u011fil\" uyar\u0131lar\u0131 g\u00f6sterir. Ev laboratuvar\u0131n\u0131zdaki uygulamalara d\u0131\u015far\u0131dan eri\u015fim planl\u0131yorsan\u0131z veya mobil cihazlardan sorunsuz eri\u015fim istiyorsan\u0131z, ger\u00e7ek bir sertifika kullanmak kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r ve profesyonel bir g\u00f6r\u00fcn\u00fcm sunar. Sadece i\u00e7 a\u011fda ve test ama\u00e7l\u0131 kullan\u0131lacaksa self-signed sertifikalar yeterli olabilir, ancak yine de taray\u0131c\u0131 uyar\u0131s\u0131yla kar\u015f\u0131la\u015facaks\u0131n\u0131z.<\/p>\n<p><strong>2. CoreDNS yerine farkl\u0131 bir DNS \u00e7\u00f6z\u00fcm\u00fc kullanabilir miyim?<\/strong><\/p>\n<p>Evet, teorik olarak farkl\u0131 bir DNS \u00e7\u00f6z\u00fcm\u00fc kullanmak m\u00fcmk\u00fcnd\u00fcr ancak CoreDNS, Kubernetes ile varsay\u0131lan olarak entegre \u00e7al\u0131\u015ft\u0131\u011f\u0131 ve hizmet ke\u015ffi i\u00e7in optimize edildi\u011fi i\u00e7in \u00f6nerilen \u00e7\u00f6z\u00fcmd\u00fcr. Kendi DNS sunucunuzu entegre etmeye \u00e7al\u0131\u015fmak, ek yap\u0131land\u0131rma ve uyumluluk sorunlar\u0131na yol a\u00e7abilir. CoreDNS'in esnek eklenti mimarisi sayesinde \u00e7o\u011fu \u00f6zel DNS ihtiyac\u0131n\u0131z\u0131 Corefile \u00fczerinden yap\u0131land\u0131rabilirsiniz.<\/p>\n<p><strong>3. Cert-Manager ile sertifikalar\u0131m\u0131n s\u00fcresi doldu\u011funda otomatik olarak yenilenecek mi?<\/strong><\/p>\n<p>Evet, Cert-Manager'\u0131n en \u00f6nemli \u00f6zelliklerinden biri budur. Ba\u015far\u0131l\u0131 bir \u015fekilde yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda, Cert-Manager Let's Encrypt sertifikalar\u0131n\u0131z\u0131n s\u00fcresi dolmadan belirli bir s\u00fcre \u00f6nce (genellikle 30 g\u00fcn kala) otomatik olarak yenileme i\u015flemini ba\u015flat\u0131r ve sertifikay\u0131 g\u00fcnceller. Bu sayede manuel yenileme s\u00fcre\u00e7leriyle u\u011fra\u015fmak zorunda kalmazs\u0131n\u0131z ve uygulamalar\u0131n\u0131z\u0131n kesintisiz olarak HTTPS \u00fczerinden eri\u015filebilirli\u011fini sa\u011flam\u0131\u015f olursunuz.<\/p>\n<p><strong>4. Kubernetes Ingress Controller'\u0131 kurmak zorunlu mu? LoadBalancer veya NodePort ile SSL\/TLS yapamaz m\u0131y\u0131m?<\/strong><\/p>\n<p>Ingress Controller kullanmak, birden fazla uygulamay\u0131 tek bir d\u0131\u015f IP adresi veya alan ad\u0131 \u00fczerinden yay\u0131nlamak ve SSL\/TLS sonland\u0131rmas\u0131n\u0131 merkezi olarak y\u00f6netmek i\u00e7in en etkili yoldur. LoadBalancer veya NodePort ile de SSL\/TLS yapabilirsiniz, ancak bu genellikle daha fazla manuel yap\u0131land\u0131rma gerektirir ve her servis i\u00e7in ayr\u0131 ayr\u0131 SSL y\u00f6netimi yapman\u0131z gerekebilir. Ingress, \u00f6zellikle Cert-Manager ile entegre oldu\u011funda, SSL\/TLS sertifika y\u00f6netimini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde basitle\u015ftirir ve bir uygulama a\u011f ge\u00e7idi g\u00f6revi g\u00f6r\u00fcr.<\/p>\n","protected":false},"excerpt":{"rendered":"Ev laboratuvar\u0131n\u0131zda Kubernetes projelerinizi g\u00fcvenli ve eri\u015filebilir k\u0131lmak ister misiniz? Bu rehber, Kubernetes DNS ve SSL sertifika y\u00f6netiminin&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1491],"tags":[],"class_list":{"0":"post-30945","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-kubernetes","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Home Lab: Kubernetes DNS ve SSL Y\u00f6netimi<\/title>\n<meta name=\"description\" content=\"Ev laboratuvar\u0131n\u0131zda Kubernetes projelerinizi g\u00fcvenli ve eri\u015filebilir k\u0131lmak ister misiniz? Bu rehber, Kubernetes DNS ve SSL sertifika y\u00f6netiminin inceliklerini s\u0131f\u0131rdan \u00f6\u011frenmenizi, uygulamal\u0131 \u00f6rneklerle kendi ortam\u0131n\u0131zda g\u00fcvenli ve istikrarl\u0131 bir altyap\u0131 olu\u015fturman\u0131z\u0131 sa\u011flayacak. \u0130\u00e7 a\u011f\u0131n\u0131zda sorunsuz hizmet ke\u015ffi ve d\u0131\u015f d\u00fcnyaya a\u00e7\u0131lan uygulamalar\u0131n\u0131z i\u00e7in otomatik SSL yap\u0131land\u0131rmas\u0131 ile projelerinizi bir \u00fcst seviyeye ta\u015f\u0131y\u0131n.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Home Lab: Kubernetes DNS ve SSL Y\u00f6netimi\" \/>\n<meta property=\"og:description\" content=\"Ev laboratuvar\u0131n\u0131zda Kubernetes projelerinizi g\u00fcvenli ve eri\u015filebilir k\u0131lmak ister misiniz? Bu rehber, Kubernetes DNS ve SSL sertifika y\u00f6netiminin inceliklerini s\u0131f\u0131rdan \u00f6\u011frenmenizi, uygulamal\u0131 \u00f6rneklerle kendi ortam\u0131n\u0131zda g\u00fcvenli ve istikrarl\u0131 bir altyap\u0131 olu\u015fturman\u0131z\u0131 sa\u011flayacak. \u0130\u00e7 a\u011f\u0131n\u0131zda sorunsuz hizmet ke\u015ffi ve d\u0131\u015f d\u00fcnyaya a\u00e7\u0131lan uygulamalar\u0131n\u0131z i\u00e7in otomatik SSL yap\u0131land\u0131rmas\u0131 ile projelerinizi bir \u00fcst seviyeye ta\u015f\u0131y\u0131n.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-03T18:31:35+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Home Lab: Kubernetes DNS ve SSL Y\u00f6netimi\",\"datePublished\":\"2025-10-03T18:31:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/\"},\"wordCount\":3967,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Kubernetes\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/\",\"name\":\"Home Lab: Kubernetes DNS ve SSL Y\u00f6netimi\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-03T18:31:35+00:00\",\"description\":\"Ev laboratuvar\u0131n\u0131zda Kubernetes projelerinizi g\u00fcvenli ve eri\u015filebilir k\u0131lmak ister misiniz? Bu rehber, Kubernetes DNS ve SSL sertifika y\u00f6netiminin inceliklerini s\u0131f\u0131rdan \u00f6\u011frenmenizi, uygulamal\u0131 \u00f6rneklerle kendi ortam\u0131n\u0131zda g\u00fcvenli ve istikrarl\u0131 bir altyap\u0131 olu\u015fturman\u0131z\u0131 sa\u011flayacak. \u0130\u00e7 a\u011f\u0131n\u0131zda sorunsuz hizmet ke\u015ffi ve d\u0131\u015f d\u00fcnyaya a\u00e7\u0131lan uygulamalar\u0131n\u0131z i\u00e7in otomatik SSL yap\u0131land\u0131rmas\u0131 ile projelerinizi bir \u00fcst seviyeye ta\u015f\u0131y\u0131n.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Home Lab: Kubernetes DNS ve SSL Y\u00f6netimi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Home Lab: Kubernetes DNS ve SSL Y\u00f6netimi","description":"Ev laboratuvar\u0131n\u0131zda Kubernetes projelerinizi g\u00fcvenli ve eri\u015filebilir k\u0131lmak ister misiniz? Bu rehber, Kubernetes DNS ve SSL sertifika y\u00f6netiminin inceliklerini s\u0131f\u0131rdan \u00f6\u011frenmenizi, uygulamal\u0131 \u00f6rneklerle kendi ortam\u0131n\u0131zda g\u00fcvenli ve istikrarl\u0131 bir altyap\u0131 olu\u015fturman\u0131z\u0131 sa\u011flayacak. \u0130\u00e7 a\u011f\u0131n\u0131zda sorunsuz hizmet ke\u015ffi ve d\u0131\u015f d\u00fcnyaya a\u00e7\u0131lan uygulamalar\u0131n\u0131z i\u00e7in otomatik SSL yap\u0131land\u0131rmas\u0131 ile projelerinizi bir \u00fcst seviyeye ta\u015f\u0131y\u0131n.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/","og_locale":"tr_TR","og_type":"article","og_title":"Home Lab: Kubernetes DNS ve SSL Y\u00f6netimi","og_description":"Ev laboratuvar\u0131n\u0131zda Kubernetes projelerinizi g\u00fcvenli ve eri\u015filebilir k\u0131lmak ister misiniz? Bu rehber, Kubernetes DNS ve SSL sertifika y\u00f6netiminin inceliklerini s\u0131f\u0131rdan \u00f6\u011frenmenizi, uygulamal\u0131 \u00f6rneklerle kendi ortam\u0131n\u0131zda g\u00fcvenli ve istikrarl\u0131 bir altyap\u0131 olu\u015fturman\u0131z\u0131 sa\u011flayacak. \u0130\u00e7 a\u011f\u0131n\u0131zda sorunsuz hizmet ke\u015ffi ve d\u0131\u015f d\u00fcnyaya a\u00e7\u0131lan uygulamalar\u0131n\u0131z i\u00e7in otomatik SSL yap\u0131land\u0131rmas\u0131 ile projelerinizi bir \u00fcst seviyeye ta\u015f\u0131y\u0131n.","og_url":"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-03T18:31:35+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"22 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Home Lab: Kubernetes DNS ve SSL Y\u00f6netimi","datePublished":"2025-10-03T18:31:35+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/"},"wordCount":3967,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Kubernetes"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/","url":"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/","name":"Home Lab: Kubernetes DNS ve SSL Y\u00f6netimi","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-03T18:31:35+00:00","description":"Ev laboratuvar\u0131n\u0131zda Kubernetes projelerinizi g\u00fcvenli ve eri\u015filebilir k\u0131lmak ister misiniz? Bu rehber, Kubernetes DNS ve SSL sertifika y\u00f6netiminin inceliklerini s\u0131f\u0131rdan \u00f6\u011frenmenizi, uygulamal\u0131 \u00f6rneklerle kendi ortam\u0131n\u0131zda g\u00fcvenli ve istikrarl\u0131 bir altyap\u0131 olu\u015fturman\u0131z\u0131 sa\u011flayacak. \u0130\u00e7 a\u011f\u0131n\u0131zda sorunsuz hizmet ke\u015ffi ve d\u0131\u015f d\u00fcnyaya a\u00e7\u0131lan uygulamalar\u0131n\u0131z i\u00e7in otomatik SSL yap\u0131land\u0131rmas\u0131 ile projelerinizi bir \u00fcst seviyeye ta\u015f\u0131y\u0131n.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/home-lab-kubernetes-dns-ve-ssl-yonetimi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Home Lab: Kubernetes DNS ve SSL Y\u00f6netimi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30945","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=30945"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30945\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30945"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30945"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}