{"id":32194,"date":"2025-10-18T21:41:09","date_gmt":"2025-10-18T18:41:09","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=32194"},"modified":"2025-10-18T21:41:09","modified_gmt":"2025-10-18T18:41:09","slug":"kubernetes-ile-linkerd-kurulumu-ve-kullanimi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/","title":{"rendered":"Kubernetes ile Linkerd Kurulumu ve Kullan\u0131m\u0131"},"content":{"rendered":"<p><body><\/p>\n<h2>Kubernetes ile Linkerd Kurulumu ve Kullan\u0131m\u0131<\/h2>\n<p>Kubernetes, modern bulut tabanl\u0131 uygulamalar\u0131n da\u011f\u0131t\u0131m\u0131n\u0131, \u00f6l\u00e7eklendirilmesini ve y\u00f6netimini basitle\u015ftiren g\u00fc\u00e7l\u00fc bir konteyner orkestrasyon platformudur. Mikroservis mimarileri yayg\u0131nla\u015ft\u0131k\u00e7a, bu servislerin birbirleriyle g\u00fcvenli, g\u00f6zlemlenebilir ve verimli bir \u015fekilde ileti\u015fim kurmas\u0131n\u0131 sa\u011flamak kritik bir ihtiya\u00e7 haline gelmi\u015ftir. \u0130\u015fte bu noktada &#8220;Service Mesh&#8221; kavram\u0131 devreye girer. Linkerd, Kubernetes i\u00e7in \u00f6zel olarak tasarlanm\u0131\u015f, hafif, y\u00fcksek performansl\u0131 ve kullan\u0131m\u0131 kolay bir a\u00e7\u0131k kaynak Service Mesh \u00e7\u00f6z\u00fcm\u00fcd\u00fcr. Bu makale, Linkerd&#8217;in ne oldu\u011funu, neden \u00f6nemli oldu\u011funu, Kubernetes k\u00fcmenize nas\u0131l kurulaca\u011f\u0131n\u0131 ve temel \u00f6zelliklerini kullanarak uygulamalar\u0131n\u0131z\u0131 nas\u0131l y\u00f6netece\u011finizi detayl\u0131 bir \u015fekilde a\u00e7\u0131klayacakt\u0131r.<\/p>\n<h3>Service Mesh Kavram\u0131na Giri\u015f<\/h3>\n<p>Mikroservis mimarileri, b\u00fcy\u00fck ve karma\u015f\u0131k uygulamalar\u0131 daha k\u00fc\u00e7\u00fck, ba\u011f\u0131ms\u0131z ve y\u00f6netilebilir servisler halinde b\u00f6lerek geli\u015ftirme h\u0131z\u0131n\u0131 ve esnekli\u011fi art\u0131r\u0131r. Ancak bu da\u011f\u0131t\u0131k yap\u0131, beraberinde baz\u0131 zorluklar\u0131 da getirir:<\/p>\n<p>*   <strong>G\u00f6zlemlenebilirlik:<\/strong> Hangi servisin hangi servisle konu\u015ftu\u011funu, gecikmeleri, hatalar\u0131 ve genel sistem sa\u011fl\u0131\u011f\u0131n\u0131 izlemek zorla\u015f\u0131r.<br \/>\n*   <strong>G\u00fcvenlik:<\/strong> Servisler aras\u0131 ileti\u015fimi \u015fifrelemek (TLS), kimlik do\u011frulamak ve yetkilendirmek karma\u015f\u0131k hale gelir.<br \/>\n*   <strong>Trafik Y\u00f6netimi:<\/strong> \u0130steklerin nas\u0131l y\u00f6nlendirilece\u011fi, y\u00fck dengeleme, yeniden denemeler, zaman a\u015f\u0131mlar\u0131 ve hata enjeksiyonu gibi \u00f6zellikler her serviste ayr\u0131 ayr\u0131 uygulanmal\u0131d\u0131r.<br \/>\n*   <strong>G\u00fcvenilirlik:<\/strong> Bir servisteki hatan\u0131n t\u00fcm sistemi etkilemesini \u00f6nlemek i\u00e7in devre kesici (circuit breaker) gibi desenler gereklidir.<\/p>\n<p>Service Mesh, bu operasyonel zorluklar\u0131 uygulama kodundan ay\u0131rarak \u00e7\u00f6zmek i\u00e7in tasarlanm\u0131\u015f bir altyap\u0131 katman\u0131d\u0131r. Temel olarak, her servis pod&#8217;una bir &#8220;sidecar&#8221; proxy enjekte ederek servisler aras\u0131 t\u00fcm trafi\u011fi bu proxy&#8217;ler \u00fczerinden y\u00f6nlendirir. Bu proxy&#8217;ler, uygulaman\u0131n kendisini de\u011fi\u015ftirmeye gerek kalmadan g\u00fcvenlik, g\u00f6zlemlenebilirlik ve trafik y\u00f6netimi \u00f6zelliklerini sa\u011flar.<\/p>\n<p>Bir Service Mesh genellikle iki ana bile\u015fenden olu\u015fur:<\/p>\n<p>*   <strong>Data Plane (Veri D\u00fczlemi):<\/strong> Servisler aras\u0131 trafi\u011fi y\u00f6neten ve uygulayan proxy&#8217;lerdir. Linkerd&#8217;de bu proxy&#8217;ler Rust ile yaz\u0131lm\u0131\u015f ve y\u00fcksek performans sunar.<br \/>\n*   <strong>Control Plane (Kontrol D\u00fczlemi):<\/strong> Data Plane&#8217;deki proxy&#8217;leri yap\u0131land\u0131ran, y\u00f6neten ve g\u00f6zlemleyen merkezi bile\u015fenlerdir. Linkerd&#8217;in kontrol d\u00fczlemi Kubernetes \u00fczerinde \u00e7al\u0131\u015f\u0131r ve metrikleri toplar, politikalar\u0131 uygular ve genel sistem durumunu izler.<\/p>\n<p>Linkerd d\u0131\u015f\u0131nda Istio, Consul Connect gibi ba\u015fka Service Mesh \u00e7\u00f6z\u00fcmleri de bulunmaktad\u0131r. Linkerd, basitli\u011fi, performans\u0131 ve d\u00fc\u015f\u00fck kaynak t\u00fcketimi ile \u00f6ne \u00e7\u0131kar.<\/p>\n<h3>Linkerd Neden Tercih Edilmeli?<\/h3>\n<p>Linkerd, Kubernetes ekosisteminde Service Mesh \u00e7\u00f6z\u00fcmleri aras\u0131nda kendine \u00f6zg\u00fc bir yer edinmi\u015ftir. Tercih edilmesinin ba\u015fl\u0131ca nedenleri \u015funlard\u0131r:<\/p>\n<p>*   <strong>Performans ve Kaynak Verimlili\u011fi:<\/strong> Linkerd&#8217;in data plane&#8217;i i\u00e7in kullan\u0131lan proxy&#8217;ler, Rust programlama dili ile yaz\u0131lm\u0131\u015ft\u0131r. Bu, proxy&#8217;lerin \u00e7ok d\u00fc\u015f\u00fck gecikme s\u00fcresiyle \u00e7al\u0131\u015fmas\u0131n\u0131 ve minimum CPU ve bellek t\u00fcketmesini sa\u011flar. Mikroservisleriniz i\u00e7in ekstra y\u00fck getirmeden maksimum performans sunar.<br \/>\n*   <strong>Sadelik ve Kolay Kullan\u0131m:<\/strong> Linkerd, &#8220;basitlik&#8221; felsefesiyle tasarlanm\u0131\u015ft\u0131r. Kurulumu h\u0131zl\u0131 ve kolayd\u0131r. Y\u00f6netimi ve sorun gidermesi di\u011fer Service Mesh \u00e7\u00f6z\u00fcmlerine g\u00f6re daha az karma\u015f\u0131kt\u0131r. <code>linkerd<\/code> CLI arac\u0131, t\u00fcm operasyonlar\u0131 basitle\u015ftirir.<br \/>\n*   <strong>Otomatik mTLS (Mutual TLS):<\/strong> Linkerd, t\u00fcm servisler aras\u0131 ileti\u015fimi otomatik olarak \u015fifreler ve kimlik do\u011frulamas\u0131 yapar. Bu, geli\u015ftiricilerin g\u00fcvenlik endi\u015feleriyle u\u011fra\u015fmadan g\u00fcvenli bir ileti\u015fim katman\u0131na sahip olmas\u0131n\u0131 sa\u011flar. K\u00fcmenizdeki t\u00fcm trafik varsay\u0131lan olarak g\u00fcvenlidir.<br \/>\n*   <strong>Derin G\u00f6zlemlenebilirlik:<\/strong> Linkerd, servislerinizin sa\u011fl\u0131\u011f\u0131 ve performans\u0131 hakk\u0131nda zengin metrikler, loglar ve izleme verileri toplar. Kendi web tabanl\u0131 g\u00f6sterge paneli (Dashboard), <code>linkerd stat<\/code> ve <code>linkerd tap<\/code> gibi CLI ara\u00e7lar\u0131 sayesinde ger\u00e7ek zamanl\u0131 trafik ak\u0131\u015f\u0131n\u0131, gecikmeleri, ba\u015far\u0131 oranlar\u0131n\u0131 ve hata oranlar\u0131n\u0131 kolayca izleyebilirsiniz. Prometheus ve Grafana ile entegrasyonu da sorunsuzdur.<br \/>\n*   <strong>Geli\u015ftirme Toplulu\u011fu ve Olgunluk:<\/strong> Linkerd, Cloud Native Computing Foundation (CNCF) b\u00fcnyesinde bulunan ve aktif bir toplulu\u011fa sahip olgun bir projedir. S\u00fcrekli geli\u015ftirilir ve g\u00fcncel Kubernetes standartlar\u0131na uyum sa\u011flar.<br \/>\n*   <strong>Politika ve Trafik Y\u00f6netimi:<\/strong> Linkerd, servisler aras\u0131 ileti\u015fimi kontrol etmek i\u00e7in kapsaml\u0131 yetkilendirme politikalar\u0131 ve geli\u015fmi\u015f trafik y\u00f6netimi \u00f6zellikleri sunar. \u00d6rne\u011fin, belirli servislerin yaln\u0131zca belirli di\u011fer servislerle ileti\u015fim kurmas\u0131na izin verebilir, canary da\u011f\u0131t\u0131mlar\u0131n\u0131 kolayca uygulayabilir veya A\/B testleri yapabilirsiniz.<\/p>\n<p>Bu \u00f6zellikler, Linkerd&#8217;i \u00f6zellikle performans\u0131n ve kullan\u0131m kolayl\u0131\u011f\u0131n\u0131n \u00f6n planda oldu\u011fu Kubernetes ortamlar\u0131 i\u00e7in cazip bir se\u00e7enek haline getirir.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>Linkerd&#8217;i Kubernetes k\u00fcmenize kurmadan ve kullanmaya ba\u015flamadan \u00f6nce baz\u0131 temel gereksinimleri kar\u015f\u0131laman\u0131z gerekmektedir:<\/p>\n<p>*   <strong>Kubernetes K\u00fcmesi:<\/strong> \u00c7al\u0131\u015f\u0131r durumda bir Kubernetes k\u00fcmesine sahip olman\u0131z gerekir. Bu bir geli\u015ftirme ortam\u0131 i\u00e7in Minikube, K3s veya Docker Desktop&#8217;\u0131n Kubernetes \u00f6zelli\u011fi olabilir. \u00dcretim ortamlar\u0131 i\u00e7in ise AKS (Azure Kubernetes Service), EKS (Amazon Elastic Kubernetes Service) veya GKE (Google Kubernetes Engine) gibi bulut sa\u011flay\u0131c\u0131lar\u0131n\u0131n y\u00f6netilen Kubernetes servisleri kullan\u0131labilir. K\u00fcmenizin en az 1.25 veya daha yeni bir Kubernetes s\u00fcr\u00fcm\u00fcne sahip olmas\u0131 \u00f6nerilir.<br \/>\n*   <strong><code>kubectl<\/code> CLI Arac\u0131:<\/strong> Kubernetes k\u00fcmenizle etkile\u015fim kurmak i\u00e7in <code>kubectl<\/code> komut sat\u0131r\u0131 arac\u0131n\u0131n yerel makinenizde y\u00fckl\u00fc ve yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131 gerekir. <code>kubectl get nodes<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak k\u00fcmenize eri\u015febildi\u011finizden emin olun.<br \/>\n*   <strong><code>helm<\/code> CLI Arac\u0131 (\u0130ste\u011fe Ba\u011fl\u0131 ama \u00d6nerilir):<\/strong> Linkerd&#8217;i Helm ile kurmak veya y\u00f6netmek isterseniz, Helm&#8217;in y\u00fckl\u00fc olmas\u0131 gerekir. Helm, Kubernetes uygulamalar\u0131n\u0131 paketlemek ve da\u011f\u0131tmak i\u00e7in bir paket y\u00f6neticisidir.<br \/>\n*   <strong>Linkerd CLI Arac\u0131:<\/strong> Linkerd&#8217;in kontrol d\u00fczlemini kurmak, y\u00f6netmek ve uygulamalar\u0131n\u0131za enjekte etmek i\u00e7in Linkerd&#8217;in kendi komut sat\u0131r\u0131 arac\u0131 olan <code>linkerd<\/code>&#8216;e ihtiyac\u0131n\u0131z olacak. Bu makalede kurulum ad\u0131mlar\u0131 verilecektir.<\/p>\n<p>Bu \u00f6n ko\u015fullar tamamland\u0131\u011f\u0131nda, Linkerd&#8217;in kurulumuna ve kullan\u0131m\u0131na ge\u00e7meye haz\u0131r olacaks\u0131n\u0131z.<\/p>\n<h3>Linkerd Kurulumu<\/h3>\n<p>Linkerd kurulumu olduk\u00e7a basittir ve genellikle iki ana ad\u0131mdan olu\u015fur: Linkerd CLI arac\u0131n\u0131n kurulumu ve ard\u0131ndan Linkerd kontrol d\u00fczleminin Kubernetes k\u00fcmesine da\u011f\u0131t\u0131lmas\u0131.<\/p>\n<h4>Linkerd CLI Kurulumu<\/h4>\n<p>Linkerd CLI, Linkerd kontrol d\u00fczlemini y\u00f6netmek, uygulamalara proxy&#8217;leri enjekte etmek ve k\u00fcmedeki Linkerd ile ilgili metrikleri g\u00f6r\u00fcnt\u00fclemek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p><strong>Linux ve macOS i\u00e7in:<\/strong><br \/>\nA\u015fa\u011f\u0131daki komut ile Linkerd CLI&#8217;yi indirebilir ve PATH&#8217;inize ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">curl --proto '=https' --tlsv1.2 -sSf https:\/\/run.linkerd.io\/install | sh\nexport PATH=$PATH:$HOME\/.linkerd2\/bin<\/code><\/pre>\n<p>Bu komut, Linkerd CLI&#8217;nin en son kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc indirir ve <code>\/home\/<kullan\u0131c\u0131_ad\u0131n\u0131z>\/.linkerd2\/bin<\/code> dizinine yerle\u015ftirir. \u0130kinci komut ise bu dizini PATH ortam de\u011fi\u015fkeninize ekler, b\u00f6ylece <code>linkerd<\/code> komutunu do\u011frudan \u00e7al\u0131\u015ft\u0131rabilirsiniz. Terminalinizi yeniden ba\u015flatt\u0131ktan sonra veya <code>source ~\/.bashrc<\/code> (veya kulland\u0131\u011f\u0131n\u0131z shell&#8217;e g\u00f6re <code>.zshrc<\/code>, <code>.profile<\/code> vb.) komutunu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra komutun aktif olmas\u0131 gerekir.<\/p>\n<p><strong>Windows i\u00e7in:<\/strong><br \/>\nWindows kullan\u0131c\u0131lar\u0131 genellikle WSL (Windows Subsystem for Linux) kullanarak Linux ortam\u0131nda yukar\u0131daki ad\u0131mlar\u0131 takip edebilir veya Chocolatey gibi bir paket y\u00f6neticisi kullanabilirler:<\/p>\n<pre><code class=\"language-bash\">choco install linkerd<\/code><\/pre>\n<p>Kurulumu do\u011frulama:<br \/>\n<code>linkerd<\/code> CLI&#8217;nin do\u011fru \u015fekilde y\u00fcklendi\u011finden emin olmak i\u00e7in s\u00fcr\u00fcm\u00fcn\u00fc kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">linkerd version<\/code><\/pre>\n<p>Bu komut, hem CLI&#8217;nin s\u00fcr\u00fcm\u00fcn\u00fc hem de e\u011fer y\u00fckl\u00fcyse kontrol d\u00fczleminin s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6sterecektir.<\/p>\n<p>\u00d6n kontrol:<br \/>\nLinkerd kontrol d\u00fczlemini kurmadan \u00f6nce, k\u00fcmenizin Linkerd i\u00e7in uygun olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-bash\">linkerd check --pre<\/code><\/pre>\n<p>Bu komut, gerekli Kubernetes API&#8217;lerinin mevcut olup olmad\u0131\u011f\u0131n\u0131, yeterli kaynak olup olmad\u0131\u011f\u0131n\u0131 ve di\u011fer temel \u00f6n ko\u015fullar\u0131n kar\u015f\u0131lan\u0131p kar\u015f\u0131lanmad\u0131\u011f\u0131n\u0131 denetler.<\/p>\n<h4>Kubernetes&#8217;e Linkerd Kontrol D\u00fczlemi Kurulumu<\/h4>\n<p>Linkerd kontrol d\u00fczlemi, Linkerd&#8217;in t\u00fcm y\u00f6netim bile\u015fenlerini i\u00e7erir ve Kubernetes k\u00fcmenize da\u011f\u0131t\u0131l\u0131r.<\/p>\n<p><strong>Do\u011frudan <code>kubectl<\/code> ile Kurulum:<\/strong><br \/>\nBu, Linkerd kontrol d\u00fczlemini kurman\u0131n en yayg\u0131n ve basit yoludur:<\/p>\n<pre><code class=\"language-bash\">linkerd install | kubectl apply -f -<\/code><\/pre>\n<p>Bu komut:<br \/>\n1.  <code>linkerd install<\/code> komutu, Linkerd kontrol d\u00fczlemi i\u00e7in gerekli t\u00fcm Kubernetes manifestlerini (Deployment&#8217;lar, Service&#8217;ler, CRD&#8217;ler vb.) YAML format\u0131nda olu\u015fturur.<br \/>\n2.  <code>|<\/code> (pipe) operat\u00f6r\u00fc, bu YAML \u00e7\u0131kt\u0131s\u0131n\u0131 <code>kubectl apply -f -<\/code> komutuna y\u00f6nlendirir.<br \/>\n3.  <code>kubectl apply -f -<\/code> komutu, standart girdiden okudu\u011fu YAML manifestlerini Kubernetes k\u00fcmenize uygular.<\/p>\n<p>Kurulumun ard\u0131ndan, kontrol d\u00fczleminin sa\u011fl\u0131kl\u0131 bir \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in tekrar <code>check<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">linkerd check<\/code><\/pre>\n<p>T\u00fcm kontrollerin ye\u015fil (ba\u015far\u0131l\u0131) oldu\u011funu g\u00f6rmelisiniz. Herhangi bir hata varsa, \u00e7\u0131kt\u0131y\u0131 dikkatlice inceleyerek sorunu gidermeye \u00e7al\u0131\u015f\u0131n.<\/p>\n<p><strong>Linkerd Dashboard Kurulumu:<\/strong><br \/>\nLinkerd, k\u00fcmenizdeki servisler ve trafik hakk\u0131nda zengin g\u00f6rselle\u015ftirmeler sa\u011flayan bir web tabanl\u0131 g\u00f6sterge paneli (Dashboard) ile birlikte gelir. Bu paneli kurmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">linkerd viz install | kubectl apply -f -<\/code><\/pre>\n<p>Yine, kurulumu do\u011frulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">linkerd viz check<\/code><\/pre>\n<p>Dashboard&#8217;a eri\u015fmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">linkerd viz dashboard<\/code><\/pre>\n<p>Bu komut, yerel taray\u0131c\u0131n\u0131zda Linkerd Dashboard&#8217;u a\u00e7acakt\u0131r. Genellikle bir port y\u00f6nlendirme (port-forward) i\u015flemi ba\u015flat\u0131r ve <code>localhost<\/code> \u00fczerinden eri\u015fim sa\u011flar.<\/p>\n<p><strong>Helm ile Kurulum (Alternatif):<\/strong><br \/>\nHelm kullanmay\u0131 tercih ediyorsan\u0131z, Linkerd&#8217;i Helm ile de kurabilirsiniz.<\/p>\n<p>1.  Linkerd Helm deposunu ekleyin:<\/p>\n<pre><code class=\"language-bash\">helm repo add linkerd https:\/\/helm.linkerd.io\/stable\n    helm repo update<\/code><\/pre>\n<p>2.  Linkerd kontrol d\u00fczlemini kurun:<\/p>\n<pre><code class=\"language-bash\">helm install linkerd2 linkerd\/linkerd2 -n linkerd --create-namespace<\/code><\/pre>\n<p>3.  Linkerd Viz uzant\u0131s\u0131n\u0131 kurun:<\/p>\n<pre><code class=\"language-bash\">helm install linkerd-viz linkerd\/linkerd-viz -n linkerd --create-namespace<\/code><\/pre>\n<p>Helm ile kurulumun ard\u0131ndan da <code>linkerd check<\/code> ve <code>linkerd viz check<\/code> komutlar\u0131n\u0131 kullanarak kurulumu do\u011frulaman\u0131z \u00f6nemlidir.<\/p>\n<h3>Uygulaman\u0131z\u0131 Linkerd&#8217;e Entegre Etme<\/h3>\n<p>Linkerd kontrol d\u00fczlemi kurulduktan sonra, uygulamalar\u0131n\u0131z\u0131n faydalar\u0131ndan yararlanabilmesi i\u00e7in Linkerd&#8217;in veri d\u00fczlemi (data plane) proxy&#8217;lerini uygulamalar\u0131n\u0131za enjekte etmeniz gerekir. Bu i\u015fleme &#8220;enjeksiyon&#8221; (injection) denir.<\/p>\n<h4>Enjeksiyon (Injection) Kavram\u0131<\/h4>\n<p>Linkerd, her uygulama pod&#8217;una bir sidecar konteyneri olarak k\u00fc\u00e7\u00fck, y\u00fcksek performansl\u0131 bir proxy ekleyerek \u00e7al\u0131\u015f\u0131r. Bu proxy, uygulaman\u0131n t\u00fcm gelen ve giden a\u011f trafi\u011fini ele al\u0131r. Enjeksiyon, mevcut Kubernetes Deployment veya Pod YAML dosyalar\u0131n\u0131za bu sidecar konteyner tan\u0131m\u0131n\u0131 otomatik olarak ekleme i\u015flemidir.<\/p>\n<p>Linkerd, enjeksiyon i\u00e7in iki ana y\u00f6ntem sunar:<\/p>\n<p>1.  <strong>Manuel Enjeksiyon:<\/strong> YAML manifest dosyalar\u0131n\u0131za <code>linkerd inject<\/code> komutu ile proxy&#8217;yi manuel olarak ekleyebilirsiniz. Bu y\u00f6ntem, belirli uygulamalar\u0131 Linkerd&#8217;e dahil etmek istedi\u011finizde veya otomatik enjeksiyonu hen\u00fcz yap\u0131land\u0131rmad\u0131\u011f\u0131n\u0131zda kullan\u0131\u015fl\u0131d\u0131r.<br \/>\n2.  <strong>Otomatik Enjeksiyon:<\/strong> Bir Kubernetes namespace&#8217;ine <code>linkerd.io\/inject: enabled<\/code> annotation&#8217;\u0131n\u0131 ekleyerek, o namespace&#8217;te da\u011f\u0131t\u0131lan t\u00fcm yeni pod&#8217;lara Linkerd proxy&#8217;lerinin otomatik olarak enjekte edilmesini sa\u011flayabilirsiniz. Bu, b\u00fcy\u00fck \u00f6l\u00e7ekli uygulamalar i\u00e7in daha pratik bir yakla\u015f\u0131md\u0131r.<\/p>\n<h4>\u00d6rnek Uygulama ile Entegrasyon<\/h4>\n<p>\u015eimdi basit bir \u00f6rnek uygulama olan <code>emojivoto<\/code> uygulamas\u0131n\u0131 Linkerd&#8217;e enjekte ederek nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6relim. <code>emojivoto<\/code>, Linkerd taraf\u0131ndan sa\u011flanan bir demo uygulamas\u0131d\u0131r ve bir\u00e7ok mikroservisten olu\u015fur.<\/p>\n<p>1.  <strong>Emojivoto uygulamas\u0131n\u0131n YAML manifestini indirin:<\/strong><\/p>\n<pre><code class=\"language-bash\">curl -sL https:\/\/run.linkerd.io\/emojivoto.yml > emojivoto.yml<\/code><\/pre>\n<p>2.  <strong>Uygulamay\u0131 Linkerd&#8217;e enjekte edin ve da\u011f\u0131t\u0131n:<\/strong><br \/>\n    Bu ad\u0131mda, <code>linkerd inject<\/code> komutunu kullanarak <code>emojivoto.yml<\/code> dosyas\u0131n\u0131 i\u015fleyece\u011fiz. <code>linkerd inject<\/code> komutu, YAML dosyas\u0131n\u0131 okur, gerekli sidecar proxy tan\u0131mlar\u0131n\u0131 ekler ve de\u011fi\u015ftirilmi\u015f YAML&#8217;yi standart \u00e7\u0131kt\u0131ya yazar. Bu \u00e7\u0131kt\u0131y\u0131 do\u011frudan <code>kubectl apply<\/code> komutuna y\u00f6nlendirerek uygulamay\u0131 da\u011f\u0131tabiliriz.<\/p>\n<pre><code class=\"language-bash\">linkerd inject emojivoto.yml | kubectl apply -f -<\/code><\/pre>\n<p>    Bu komut \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131ktan sonra, <code>emojivoto<\/code> uygulamas\u0131n\u0131n <code>emojivoto<\/code> namespace&#8217;ine da\u011f\u0131t\u0131ld\u0131\u011f\u0131n\u0131 ve her pod&#8217;da Linkerd proxy&#8217;sinin sidecar olarak \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6receksiniz.<\/p>\n<p>3.  <strong>Uygulaman\u0131n durumunu do\u011frulay\u0131n:<\/strong><br \/>\n    Pod&#8217;lar\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ve Linkerd proxy&#8217;lerinin enjekte edildi\u011finden emin olmak i\u00e7in kontrol edebiliriz:<\/p>\n<pre><code class=\"language-bash\">kubectl get pods -n emojivoto<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131da, her pod i\u00e7in <code>2\/2<\/code> veya <code>3\/3<\/code> gibi bir &#8220;READY&#8221; durumu g\u00f6rmelisiniz. \u00d6rne\u011fin, <code>web<\/code> pod&#8217;u normalde 1 konteyner i\u00e7erirken, Linkerd enjeksiyonu ile 2 konteyner (uygulama konteyneri + Linkerd proxy) olacakt\u0131r.<\/p>\n<pre><code class=\"language-bash\"># \u00d6rnek \u00e7\u0131kt\u0131:\n    # NAME                        READY   STATUS    RESTARTS   AGE\n    # emoji-d886689d-7j9b5        2\/2     Running   0          2m\n    # voting-569477d46-4t7f8      2\/2     Running   0          2m\n    # web-7c7f465c4-v4k2f         2\/2     Running   0          2m<\/code><\/pre>\n<p>    Ayr\u0131ca, <code>linkerd stat<\/code> komutuyla enjekte edilmi\u015f servislerin metriklerini g\u00f6rebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">linkerd -n emojivoto stat deploy<\/code><\/pre>\n<p>    Bu komut, <code>emojivoto<\/code> namespace&#8217;indeki t\u00fcm deployment&#8217;lar i\u00e7in ba\u015far\u0131 oranlar\u0131, gecikmeler ve trafik hacimleri gibi temel metrikleri g\u00f6sterecektir.<\/p>\n<p>4.  <strong>Uygulamaya eri\u015fim:<\/strong><br \/>\n    <code>emojivoto<\/code> uygulamas\u0131n\u0131n <code>web<\/code> servisine eri\u015fmek i\u00e7in bir port y\u00f6nlendirme (port-forward) i\u015flemi ba\u015flatabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">kubectl -n emojivoto port-forward svc\/web 8080:80<\/code><\/pre>\n<p>    \u015eimdi taray\u0131c\u0131n\u0131zda <code>http:\/\/localhost:8080<\/code> adresine giderek uygulamaya eri\u015febilirsiniz. Uygulama i\u00e7inde dola\u015f\u0131n, oylama yap\u0131n; bu, Linkerd&#8217;in trafi\u011fi izlemesi i\u00e7in veri \u00fcretecektir.<\/p>\n<p><strong>Otomatik Enjeksiyonu Etkinle\u015ftirme:<\/strong><br \/>\nE\u011fer bir namespace&#8217;teki t\u00fcm yeni pod&#8217;lara Linkerd&#8217;i otomatik olarak enjekte etmek isterseniz, o namespace&#8217;e bir annotation eklemeniz yeterlidir:<\/p>\n<pre><code class=\"language-bash\">kubectl annotate namespace my-app linkerd.io\/inject=enabled<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, <code>my-app<\/code> namespace&#8217;ine da\u011f\u0131taca\u011f\u0131n\u0131z t\u00fcm yeni deployment&#8217;lar ve pod&#8217;lar otomatik olarak Linkerd proxy&#8217;si ile ba\u015flat\u0131lacakt\u0131r. Mevcut pod&#8217;lar i\u00e7in bu de\u011fi\u015fiklik ge\u00e7erli olmaz; onlar\u0131 yeniden da\u011f\u0131tman\u0131z veya yeniden ba\u015flatman\u0131z gerekir.<\/p>\n<h3>Linkerd Kullan\u0131m\u0131 ve \u00d6zellikleri<\/h3>\n<p>Linkerd, enjekte edilmi\u015f uygulamalar\u0131n\u0131za bir dizi g\u00fc\u00e7l\u00fc \u00f6zellik sunar. Bu \u00f6zellikler, g\u00f6zlemlenebilirlik, g\u00fcvenlik ve trafik y\u00f6netimi ba\u015fl\u0131klar\u0131 alt\u0131nda toplanabilir.<\/p>\n<h4>G\u00f6zlemlenebilirlik (Observability)<\/h4>\n<p>Linkerd&#8217;in en g\u00fc\u00e7l\u00fc y\u00f6nlerinden biri, uygulamalar\u0131n\u0131z hakk\u0131nda sa\u011flad\u0131\u011f\u0131 derinlemesine g\u00f6zlemlenebilirliktir.<\/p>\n<p>*   <strong>Linkerd Dashboard:<\/strong><br \/>\n    <code>linkerd viz dashboard<\/code> komutu ile eri\u015filebilen web aray\u00fcz\u00fc, k\u00fcmenizdeki t\u00fcm enjekte edilmi\u015f servislerinizi, onlar\u0131n ba\u015far\u0131 oranlar\u0131n\u0131, gecikmelerini ve trafik hacimlerini g\u00f6rsel olarak sunar. Servisler aras\u0131 ba\u011f\u0131ml\u0131l\u0131klar\u0131 g\u00f6steren bir topoloji haritas\u0131, ger\u00e7ek zamanl\u0131 trafik ak\u0131\u015f\u0131n\u0131 g\u00f6steren &#8220;Tap&#8221; arac\u0131 ve ayr\u0131nt\u0131l\u0131 metrikler gibi \u00f6zellikler i\u00e7erir. Her bir servisin i\u00e7indeki pod&#8217;lar\u0131, gelen\/giden istekleri ve sa\u011fl\u0131k durumlar\u0131n\u0131 kolayca inceleyebilirsiniz.<\/p>\n<p>*   <strong><code>linkerd stat<\/code> Komutu:<\/strong><br \/>\n    Bu CLI komutu, belirli bir namespace&#8217;teki veya t\u00fcm k\u00fcmedeki servisler, deployment&#8217;lar veya pod&#8217;lar i\u00e7in \u00f6zet metrikler sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">linkerd -n emojivoto stat deploy\n    linkerd -n emojivoto stat pod -o wide<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131, ba\u015far\u0131 oranlar\u0131 (Success Rate), RPS (Request Per Second), gecikmeler (P50, P95, P99 latency) gibi kritik performans g\u00f6stergelerini i\u00e7erir.<\/p>\n<p>*   <strong><code>linkerd tap<\/code> Komutu:<\/strong><br \/>\n    <code>linkerd tap<\/code> komutu, belirli bir servisten veya servise giden ger\u00e7ek zamanl\u0131 istek ak\u0131\u015f\u0131n\u0131 g\u00f6rmenizi sa\u011flar. Bu, sorun giderme ve trafik analizi i\u00e7in inan\u0131lmaz derecede faydal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-bash\">linkerd -n emojivoto tap deploy\/web<\/code><\/pre>\n<p>    Bu komut, <code>emojivoto<\/code> namespace&#8217;indeki <code>web<\/code> deployment&#8217;\u0131na giden veya ondan gelen HTTP isteklerinin ayr\u0131nt\u0131lar\u0131n\u0131 (kaynak IP, hedef IP, HTTP metodu, URL, HTTP durumu vb.) canl\u0131 olarak g\u00f6sterecektir.<\/p>\n<p>*   <strong>Prometheus ve Grafana Entegrasyonu:<\/strong><br \/>\n    Linkerd, varsay\u0131lan olarak Prometheus format\u0131nda metrikler toplar. Linkerd Viz uzant\u0131s\u0131 ile birlikte kurulan Prometheus ve Grafana \u00f6rnekleri, Linkerd&#8217;in toplad\u0131\u011f\u0131 metrikleri g\u00f6rselle\u015ftirmek i\u00e7in \u00f6nceden yap\u0131land\u0131r\u0131lm\u0131\u015f g\u00f6sterge panelleri sunar. Bu sayede, Linkerd&#8217;in sa\u011flad\u0131\u011f\u0131 verileri daha geli\u015fmi\u015f bir \u015fekilde analiz edebilir ve kendi \u00f6zel uyar\u0131lar\u0131n\u0131z\u0131 olu\u015fturabilirsiniz.<\/p>\n<h4>G\u00fcvenlik (Security)<\/h4>\n<p>Linkerd, mikroservisler aras\u0131 ileti\u015fimi g\u00fcvenli hale getirmek i\u00e7in g\u00fc\u00e7l\u00fc \u00f6zellikler sunar.<\/p>\n<p>*   <strong>Otomatik Kar\u015f\u0131l\u0131kl\u0131 TLS (mTLS):<\/strong><br \/>\n    Linkerd&#8217;in en temel g\u00fcvenlik \u00f6zelli\u011fi, t\u00fcm enjekte edilmi\u015f servisler aras\u0131 ileti\u015fimi otomatik olarak kar\u015f\u0131l\u0131kl\u0131 TLS (mTLS) ile \u015fifrelemesidir. Bu, servislerin birbirleriyle ileti\u015fim kurarken kimliklerini do\u011frulamas\u0131n\u0131 ve t\u00fcm trafi\u011fin \u015fifreli olmas\u0131n\u0131 sa\u011flar. Geli\u015ftiricilerin kodlar\u0131nda herhangi bir de\u011fi\u015fiklik yapmas\u0131na gerek kalmaz. Bu, &#8220;s\u0131f\u0131r g\u00fcven&#8221; (zero-trust) a\u011f ortamlar\u0131 i\u00e7in kritik bir \u00f6zelliktir.<\/p>\n<p>*   <strong>Yetkilendirme Politikalar\u0131 (Authorization Policies):<\/strong><br \/>\n    Linkerd, Kubernetes Custom Resources (CRD&#8217;ler) kullanarak servisler aras\u0131 yetkilendirme politikalar\u0131 tan\u0131mlaman\u0131za olanak tan\u0131r. Bu politikalar, hangi servislerin hangi servislerle ileti\u015fim kurabilece\u011fini ve hangi HTTP y\u00f6ntemlerini kullanabilece\u011fini belirlemenizi sa\u011flar.<br \/>\n    Temel CRD&#8217;ler \u015funlard\u0131r:<br \/>\n    *   <strong><code>Server<\/code>:<\/strong> Bir servisin belirli bir port \u00fczerindeki dinleme davran\u0131\u015f\u0131n\u0131 tan\u0131mlar.<br \/>\n    *   <strong><code>ServerAuthorization<\/code>:<\/strong> Belirli bir <code>Server<\/code>&#8216;a kimlerin eri\u015febilece\u011fini tan\u0131mlar. \u00d6rne\u011fin, yaln\u0131zca belirli bir namespace&#8217;teki servislerin veya belirli bir kimli\u011fe sahip servislerin eri\u015fimine izin verebilirsiniz.<br \/>\n    *   <strong><code>HTTPRoute<\/code> (Gateway API ile):<\/strong> Daha gran\u00fcler HTTP bazl\u0131 yetkilendirme ve trafik y\u00f6netimi kurallar\u0131 tan\u0131mlamak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>    \u00d6rnek bir yetkilendirme politikas\u0131:<\/p>\n<pre><code class=\"language-yaml\">apiVersion: policy.linkerd.io\/v1beta1\n    kind: Server\n    metadata:\n      name: my-app-server\n      namespace: my-app\n    spec:\n      port: 8080 # Uygulaman\u0131n dinledi\u011fi port\n      proxyProtocol: HTTP\n    ---\n    apiVersion: policy.linkerd.io\/v1beta1\n    kind: ServerAuthorization\n    metadata:\n      name: allow-frontend-to-my-app\n      namespace: my-app\n    spec:\n      server:\n        name: my-app-server\n      client:\n        meshTLS:\n          unauthenticatedRoutes:\n            - allow:\n                - serviceAccount:\n                    name: frontend-service-account\n                    namespace: frontend-namespace<\/code><\/pre>\n<p>    Bu \u00f6rnek, <code>my-app<\/code> namespace&#8217;indeki <code>my-app-server<\/code>&#8216;a yaln\u0131zca <code>frontend-namespace<\/code>&#8216;teki <code>frontend-service-account<\/code>&#8216;a sahip servislerin eri\u015fmesine izin verir.<\/p>\n<h4>Trafik Y\u00f6netimi (Traffic Management)<\/h4>\n<p>Linkerd, uygulamalar\u0131n\u0131z\u0131n trafi\u011fini esnek bir \u015fekilde y\u00f6netmek i\u00e7in \u00e7e\u015fitli \u00f6zellikler sunar.<\/p>\n<p>*   <strong>Timeouts ve Retries:<\/strong><br \/>\n    Servisler aras\u0131 ileti\u015fimde zaman a\u015f\u0131mlar\u0131n\u0131 ve yeniden deneme mekanizmalar\u0131n\u0131 merkezi olarak yap\u0131land\u0131rabilirsiniz. Bu, ge\u00e7ici a\u011f sorunlar\u0131ndan veya yava\u015f yan\u0131t veren servislerden kaynaklanan hatalar\u0131 azaltmaya yard\u0131mc\u0131 olur. <code>ServiceProfile<\/code> veya <code>HTTPRoute<\/code> CRD&#8217;leri ile yap\u0131land\u0131r\u0131l\u0131r.<\/p>\n<p>*   <strong>Load Balancing (Y\u00fck Dengeleme):<\/strong><br \/>\n    Linkerd proxy&#8217;leri, varsay\u0131lan olarak servisler aras\u0131 trafi\u011fi otomatik olarak y\u00fck dengeleyerek da\u011f\u0131t\u0131r. Linkerd&#8217;in y\u00fck dengelemesi, geleneksel TCP bazl\u0131 y\u00fck dengeleyicilere g\u00f6re daha ak\u0131ll\u0131 HTTP bazl\u0131 stratejiler kullanabilir.<\/p>\n<p>*   <strong>Trafik B\u00f6lme (Traffic Splitting) ve Canary Deployments:<\/strong><br \/>\n    Linkerd, <code>ServiceProfile<\/code> ve <code>HTTPRoute<\/code> CRD&#8217;lerini kullanarak trafi\u011fi farkl\u0131 servis s\u00fcr\u00fcmleri aras\u0131nda b\u00f6lmenize olanak tan\u0131r. Bu, yeni bir s\u00fcr\u00fcm\u00fc kademeli olarak kullan\u0131c\u0131lara sunmak (canary deployment) veya A\/B testleri yapmak i\u00e7in idealdir.<br \/>\n    \u00d6rne\u011fin, uygulaman\u0131z\u0131n <code>v1<\/code> ve <code>v2<\/code> s\u00fcr\u00fcmleri varsa, trafi\u011fin %90&#8217;\u0131n\u0131 <code>v1<\/code>&#8216;e ve %10&#8217;unu <code>v2<\/code>&#8216;ye y\u00f6nlendirebilirsiniz.<\/p>\n<pre><code class=\"language-yaml\">apiVersion: gateway.networking.k8s.io\/v1beta1\n    kind: HTTPRoute\n    metadata:\n      name: my-app-route\n      namespace: my-app\n    spec:\n      parentRefs:\n        - name: my-app-gateway # veya Service\n      hostnames:\n        - \"my-app.example.com\"\n      rules:\n        - backendRefs:\n            - name: my-app-v1\n              port: 8080\n              weight: 90\n            - name: my-app-v2\n              port: 8080\n              weight: 10<\/code><\/pre>\n<p>*   <strong>Hata Enjeksiyonu (Fault Injection):<\/strong><br \/>\n    Uygulaman\u0131z\u0131n dayan\u0131kl\u0131l\u0131\u011f\u0131n\u0131 test etmek i\u00e7in belirli servislere gecikme veya HTTP hata kodlar\u0131 enjekte edebilirsiniz. Bu, uygulaman\u0131z\u0131n beklenmedik durumlarla nas\u0131l ba\u015fa \u00e7\u0131kt\u0131\u011f\u0131n\u0131 anlaman\u0131za yard\u0131mc\u0131 olur. <code>HTTPRoute<\/code> CRD&#8217;si \u00fczerinden yap\u0131land\u0131r\u0131labilir.<\/p>\n<pre><code class=\"language-yaml\">apiVersion: gateway.networking.k8s.io\/v1beta1\n    kind: HTTPRoute\n    metadata:\n      name: my-app-fault-injection\n      namespace: my-app\n    spec:\n      parentRefs:\n        - name: my-app-gateway\n      hostnames:\n        - \"my-app.example.com\"\n      rules:\n        - matches:\n            - headers:\n                - name: x-fault-inject\n                  value: \"true\"\n          filters:\n            - type: RequestMirror\n              requestMirror:\n                backendRef:\n                  name: my-app-v2\n                  port: 8080\n            - type: RequestHeaderModifier\n              requestHeaderModifier:\n                set:\n                  - name: x-request-delay\n                    value: \"5s\"\n            - type: ResponseHeaderModifier\n              responseHeaderModifier:\n                set:\n                  - name: x-response-status\n                    value: \"500\"\n          backendRefs:\n            - name: my-app-v1\n              port: 8080<\/code><\/pre>\n<p>    Bu \u00f6rnek, <code>x-fault-inject: true<\/code> ba\u015fl\u0131\u011f\u0131na sahip isteklere 5 saniye gecikme ve 500 HTTP hata kodu eklerken, normal istekleri <code>my-app-v1<\/code>&#8216;e y\u00f6nlendirir.<\/p>\n<h3>Linkerd&#8217;i Y\u00f6netme ve Bak\u0131m<\/h3>\n<p>Linkerd&#8217;i kurduktan ve uygulamalar\u0131n\u0131za entegre ettikten sonra, zaman zaman bak\u0131m ve y\u00f6netim g\u00f6revleri ger\u00e7ekle\u015ftirmeniz gerekebilir.<\/p>\n<h4>G\u00fcncelleme<\/h4>\n<p>Linkerd&#8217;i g\u00fcncel tutmak, en son \u00f6zelliklere, g\u00fcvenlik d\u00fczeltmelerine ve performans iyile\u015ftirmelerine sahip olman\u0131z\u0131 sa\u011flar.<\/p>\n<p>*   <strong>CLI G\u00fcncellemesi:<\/strong><br \/>\n    \u00d6ncelikle yerel <code>linkerd<\/code> CLI arac\u0131n\u0131z\u0131 g\u00fcncellemeniz \u00f6nerilir:<\/p>\n<pre><code class=\"language-bash\">curl --proto '=https' --tlsv1.2 -sSf https:\/\/run.linkerd.io\/install | sh<\/code><\/pre>\n<p>    Bu komut, CLI&#8217;nin en son kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc indirip kuracakt\u0131r.<\/p>\n<p>*   <strong>Kontrol D\u00fczlemi G\u00fcncellemesi:<\/strong><br \/>\n    CLI g\u00fcncellendikten sonra, Kubernetes k\u00fcmenizdeki Linkerd kontrol d\u00fczlemini g\u00fcncelleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">linkerd upgrade | kubectl apply -f -<\/code><\/pre>\n<p>    Bu komut, mevcut kontrol d\u00fczlemi yap\u0131land\u0131rman\u0131z\u0131 al\u0131r, yeni s\u00fcr\u00fcmle uyumlu hale getirir ve g\u00fcncellenmi\u015f manifestleri k\u00fcmenize uygular. \u0130\u015flem tamamland\u0131ktan sonra, kontrol d\u00fczleminin sa\u011fl\u0131kl\u0131 \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in tekrar <code>linkerd check<\/code> komutunu \u00e7al\u0131\u015ft\u0131rmal\u0131s\u0131n\u0131z.<\/p>\n<h4>Sorun Giderme (Troubleshooting)<\/h4>\n<p>Linkerd ile ilgili bir sorunla kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131zda ba\u015fvurabilece\u011finiz baz\u0131 ara\u00e7lar ve y\u00f6ntemler vard\u0131r:<\/p>\n<p>*   <strong><code>linkerd check<\/code> Komutu:<\/strong><br \/>\n    Bu, sorun gidermenin ilk ad\u0131m\u0131d\u0131r. <code>linkerd check<\/code> komutu, Linkerd kontrol d\u00fczleminin ve veri d\u00fczleminin (enjekte edilmi\u015f pod&#8217;lar) genel sa\u011fl\u0131\u011f\u0131n\u0131 kontrol eder. Eksik CRD&#8217;ler, hatal\u0131 konfig\u00fcrasyonlar veya ba\u011flant\u0131 sorunlar\u0131 gibi yayg\u0131n sorunlar\u0131 tespit edebilir.<\/p>\n<pre><code class=\"language-bash\">linkerd check --proxy # Sadece proxy'leri kontrol eder\n    linkerd check --controller # Sadece kontrol d\u00fczlemini kontrol eder<\/code><\/pre>\n<p>*   <strong>Pod Loglar\u0131:<\/strong><br \/>\n    Linkerd kontrol d\u00fczlemi bile\u015fenlerinin (e.g., <code>linkerd-controller<\/code>, <code>linkerd-proxy-injector<\/code>, <code>linkerd-identity<\/code>) ve enjekte edilmi\u015f uygulama pod&#8217;lar\u0131ndaki Linkerd proxy&#8217;lerinin loglar\u0131n\u0131 incelemek, sorunlar\u0131n k\u00f6k nedenini anlamak i\u00e7in kritik bilgiler sa\u011flayabilir.<\/p>\n<pre><code class=\"language-bash\">kubectl logs -n linkerd <linkerd-control-plane-pod-ad\u0131>\n    kubectl logs -n <uygulama-namespace> <uygulama-pod-ad\u0131> -c linkerd-proxy<\/code><\/pre>\n<p>*   <strong><code>linkerd diagnostics<\/code> Komutu:<\/strong><br \/>\n    Bu komut, Linkerd ile ilgili t\u00fcm \u00f6nemli bilgileri (konfig\u00fcrasyon, loglar, metrikler vb.) toplayarak bir ZIP dosyas\u0131 halinde kaydeder. Bu dosya, karma\u015f\u0131k sorunlar\u0131 Linkerd toplulu\u011funa veya destek ekibine raporlarken \u00e7ok faydal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-bash\">linkerd diagnostics<\/code><\/pre>\n<h4>Kald\u0131rma<\/h4>\n<p>Linkerd&#8217;i Kubernetes k\u00fcmenizden tamamen kald\u0131rmak istedi\u011finizde a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyebilirsiniz:<\/p>\n<p>1.  <strong>Uygulamalardan Enjeksiyonu Kald\u0131rma:<\/strong><br \/>\n    \u00d6ncelikle, Linkerd proxy&#8217;lerinin enjekte edildi\u011fi t\u00fcm uygulamalar\u0131 Linkerd&#8217;den ay\u0131rman\u0131z gerekir. E\u011fer namespace&#8217;lerinizde otomatik enjeksiyonu etkinle\u015ftirdiyseniz, bu annotation&#8217;\u0131 kald\u0131rmal\u0131s\u0131n\u0131z:<\/p>\n<pre><code class=\"language-bash\">kubectl annotate namespace <namespace-ad\u0131> linkerd.io\/inject-<\/code><\/pre>\n<p>    Ard\u0131ndan, enjekte edilmi\u015f t\u00fcm pod&#8217;lar\u0131 yeniden ba\u015flatman\u0131z veya yeniden da\u011f\u0131tman\u0131z gerekir, b\u00f6ylece yeni pod&#8217;lar proxy olmadan ba\u015flar.<\/p>\n<p>    E\u011fer uygulamalar\u0131n\u0131z\u0131 manuel olarak enjekte ettiyseniz, onlar\u0131n manifest dosyalar\u0131ndan Linkerd proxy tan\u0131m\u0131n\u0131 kald\u0131r\u0131p yeniden uygulaman\u0131z gerekir. Alternatif olarak, <code>linkerd uninject<\/code> komutunu kullanarak bir YAML dosyas\u0131ndan enjeksiyonu kald\u0131rabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">linkerd uninject <enjekte-edilmi\u015f-uygulama.yaml> | kubectl apply -f -<\/code><\/pre>\n<p>    Bu ad\u0131m\u0131 atlaman\u0131z durumunda, kontrol d\u00fczlemi kald\u0131r\u0131ld\u0131\u011f\u0131nda bu proxy&#8217;ler i\u015flevsiz kalacak ve hatalara neden olabilecektir.<\/p>\n<p>2.  <strong>Kontrol D\u00fczlemini Kald\u0131rma:<\/strong><br \/>\n    Uygulamalar\u0131n\u0131z Linkerd&#8217;den ayr\u0131ld\u0131ktan sonra, kontrol d\u00fczlemini kald\u0131rabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">linkerd uninstall | kubectl delete -f -<\/code><\/pre>\n<p>    Bu komut, Linkerd kontrol d\u00fczlemi bile\u015fenlerini ve ilgili Custom Resource Definition&#8217;lar\u0131 (CRD&#8217;ler) k\u00fcmenizden kald\u0131racakt\u0131r.<\/p>\n<p>    E\u011fer Helm ile kurduysan\u0131z:<\/p>\n<pre><code class=\"language-bash\">helm uninstall linkerd-viz -n linkerd\n    helm uninstall linkerd2 -n linkerd\n    kubectl delete namespace linkerd<\/code><\/pre>\n<p>Kald\u0131rma i\u015flemi tamamland\u0131ktan sonra, <code>kubectl get all -n linkerd<\/code> gibi komutlarla Linkerd ile ilgili herhangi bir kayna\u011f\u0131n kal\u0131p kalmad\u0131\u011f\u0131n\u0131 kontrol edebilirsiniz.<\/p>\n<h3>Linkerd ile En \u0130yi Uygulamalar<\/h3>\n<p>Linkerd&#8217;den en iyi \u015fekilde yararlanmak ve sa\u011fl\u0131kl\u0131 bir Service Mesh ortam\u0131 s\u00fcrd\u00fcrmek i\u00e7in baz\u0131 en iyi uygulamalar\u0131 takip etmek \u00f6nemlidir:<\/p>\n<p>*   <strong>T\u00fcm Servisleri Enjekte Edin:<\/strong> M\u00fcmk\u00fcnse, t\u00fcm mikroservislerinizi Linkerd&#8217;e enjekte edin. Bu, k\u00fcmenizdeki t\u00fcm servisler aras\u0131 ileti\u015fimin mTLS ile g\u00fcvenli olmas\u0131n\u0131, g\u00f6zlemlenebilir olmas\u0131n\u0131 ve trafik y\u00f6netimi politikalar\u0131na tabi olmas\u0131n\u0131 sa\u011flar. Yaln\u0131zca belirli servisleri enjekte etmek, a\u011f i\u00e7inde &#8220;k\u00f6r noktalar&#8221; yaratabilir.<br \/>\n*   <strong><code>ServiceProfile<\/code> Kullan\u0131n:<\/strong> <code>ServiceProfile<\/code> Custom Resource&#8217;lar\u0131, Linkerd&#8217;e servisleriniz hakk\u0131nda ek bilgiler sa\u011flamak i\u00e7in kullan\u0131l\u0131r (\u00f6rne\u011fin, HTTP yollar\u0131, yeniden deneme ve zaman a\u015f\u0131m\u0131 politikalar\u0131). Bu, Linkerd&#8217;in daha ak\u0131ll\u0131 trafik y\u00f6netimi yapmas\u0131na ve daha zengin metrikler sa\u011flamas\u0131na olanak tan\u0131r. Her kritik servisiniz i\u00e7in bir <code>ServiceProfile<\/code> tan\u0131mlaman\u0131z \u00f6nerilir.<br \/>\n*   <strong>G\u00fcvenlik Politikalar\u0131n\u0131 Uygulay\u0131n:<\/strong> <code>Server<\/code> ve <code>ServerAuthorization<\/code> gibi Linkerd politikalar\u0131n\u0131 kullanarak servisler aras\u0131 ileti\u015fimi s\u0131k\u0131 bir \u015fekilde kontrol edin. Hangi servislerin kiminle konu\u015fabilece\u011fini a\u00e7\u0131k\u00e7a tan\u0131mlayarak &#8220;en az ayr\u0131cal\u0131k&#8221; (least privilege) ilkesini uygulay\u0131n ve g\u00fcvenlik duru\u015funuzu g\u00fc\u00e7lendirin.<br \/>\n*   <strong>G\u00f6zlemlenebilirlik Ara\u00e7lar\u0131n\u0131 Aktif Kullan\u0131n:<\/strong> Linkerd Dashboard, <code>linkerd stat<\/code> ve <code>linkerd tap<\/code> gibi ara\u00e7lar\u0131 d\u00fczenli olarak kullanarak uygulamalar\u0131n\u0131z\u0131n sa\u011fl\u0131\u011f\u0131n\u0131, performans\u0131n\u0131 ve trafik ak\u0131\u015f\u0131n\u0131 izleyin. Anormallikleri erken tespit etmek ve sorunlar\u0131 h\u0131zl\u0131ca gidermek i\u00e7in bu verileri kullan\u0131n. Prometheus ve Grafana entegrasyonundan faydalan\u0131n.<br \/>\n*   <strong>Kaynak Limitleri Belirleyin:<\/strong> Linkerd proxy&#8217;leri hafif olsa da, her pod&#8217;a ek bir konteyner olarak eklenirler. Bu proxy&#8217;ler i\u00e7in uygun CPU ve bellek kaynak limitleri belirlemek, k\u00fcmenizin istikrar\u0131n\u0131 ve performans\u0131n\u0131 korumak i\u00e7in \u00f6nemlidir. Linkerd dok\u00fcmantasyonunda \u00f6nerilen ba\u015flang\u0131\u00e7 de\u011ferlerini kullan\u0131n ve uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re ayarlay\u0131n.<br \/>\n*   <strong>Otomatik Enjeksiyonu Tercih Edin:<\/strong> Yeni uygulamalar\u0131n\u0131z\u0131 Linkerd&#8217;e dahil ederken manuel enjeksiyon yerine namespace baz\u0131nda otomatik enjeksiyonu kullan\u0131n. Bu, operasyonel y\u00fck\u00fc azalt\u0131r ve t\u00fcm yeni servislerin Linkerd&#8217;in faydalar\u0131ndan otomatik olarak yararlanmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong>G\u00fcncel Kal\u0131n:<\/strong> Linkerd&#8217;in yeni s\u00fcr\u00fcmlerini takip edin ve d\u00fczenli olarak g\u00fcncelleyin. Bu, g\u00fcvenlik yamalar\u0131ndan ve performans iyile\u015ftirmelerinden faydalanman\u0131z\u0131 sa\u011flar.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Linkerd, Kubernetes \u00fczerinde \u00e7al\u0131\u015fan mikroservis tabanl\u0131 uygulamalar i\u00e7in vazge\u00e7ilmez bir Service Mesh \u00e7\u00f6z\u00fcm\u00fcd\u00fcr. Bu makale boyunca, Linkerd&#8217;in ne oldu\u011fu, neden tercih edilmesi gerekti\u011fi ve Kubernetes k\u00fcmenize nas\u0131l kurulaca\u011f\u0131 konular\u0131na derinlemesine de\u011findik. Ayr\u0131ca, Linkerd&#8217;in sundu\u011fu g\u00f6zlemlenebilirlik, g\u00fcvenlik ve trafik y\u00f6netimi gibi temel \u00f6zelliklerini \u00f6rneklerle inceledik ve uygulaman\u0131z\u0131 Linkerd&#8217;e nas\u0131l entegre edece\u011finizi g\u00f6sterdik. Son olarak, Linkerd&#8217;i y\u00f6netme, sorun giderme ve en iyi uygulamalar hakk\u0131nda bilgi verdik.<\/p>\n<p>Linkerd&#8217;in hafif yap\u0131s\u0131, y\u00fcksek performans\u0131 ve kullan\u0131m kolayl\u0131\u011f\u0131, onu hem geli\u015ftirme hem de \u00fcretim ortamlar\u0131 i\u00e7in cazip bir se\u00e7enek haline getirmektedir. Otomatik mTLS ile servisler aras\u0131 g\u00fcvenli\u011fi sa\u011flamas\u0131, zengin metriklerle derinlemesine g\u00f6zlemlenebilirlik sunmas\u0131 ve esnek trafik y\u00f6netimi yetenekleri, modern da\u011f\u0131t\u0131k sistemlerin karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r. Uygulama kodunuzu de\u011fi\u015ftirmeden bu operasyonel faydalar\u0131 elde etmek, geli\u015ftiricilerin i\u015f mant\u0131\u011f\u0131na odaklanmas\u0131na olanak tan\u0131rken, operasyon ekiplerinin de uygulamalar\u0131n sa\u011fl\u0131\u011f\u0131n\u0131 ve performans\u0131n\u0131 daha etkin bir \u015fekilde y\u00f6netmesini sa\u011flar.<\/p>\n<p>Kubernetes ekosisteminde Service Mesh \u00e7\u00f6z\u00fcmleri aras\u0131nda Linkerd, \u00f6zellikle basitli\u011fi ve performans\u0131 \u00f6n planda tutan ekipler i\u00e7in g\u00fc\u00e7l\u00fc bir alternatiftir. Gelecekte, Linkerd&#8217;in Kubernetes Gateway API ile entegrasyonu ve daha geli\u015fmi\u015f trafik y\u00f6netimi senaryolar\u0131 i\u00e7in sa\u011flad\u0131\u011f\u0131 yetenekler, bulut yerel uygulamalar\u0131n y\u00f6netimini daha da kolayla\u015ft\u0131racakt\u0131r. Linkerd&#8217;i benimseyerek, Kubernetes k\u00fcmenizdeki mikroservislerinizin daha g\u00fcvenli, daha dayan\u0131kl\u0131 ve daha g\u00f6zlemlenebilir olmas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Kubernetes ile Linkerd Kurulumu ve Kullan\u0131m\u0131\nKubernetes, modern bulut tabanl\u0131 uygulamalar\u0131n da\u011f\u0131t\u0131m\u0131n\u0131, \u00f6l\u00e7eklendirilmesini ve y\u00f6netimi","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":[1328],"tags":[],"class_list":{"0":"post-32194","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-bash","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>Kubernetes ile Linkerd Kurulumu ve Kullan\u0131m\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\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\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kubernetes ile Linkerd Kurulumu ve Kullan\u0131m\u0131\" \/>\n<meta property=\"og:description\" content=\"Kubernetes ile Linkerd Kurulumu ve Kullan\u0131m\u0131 Kubernetes, modern bulut tabanl\u0131 uygulamalar\u0131n da\u011f\u0131t\u0131m\u0131n\u0131, \u00f6l\u00e7eklendirilmesini ve y\u00f6netimi\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-18T18:41:09+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\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Kubernetes ile Linkerd Kurulumu ve Kullan\u0131m\u0131\",\"datePublished\":\"2025-10-18T18:41:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/\"},\"wordCount\":3911,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Bash\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/\",\"name\":\"Kubernetes ile Linkerd Kurulumu ve Kullan\u0131m\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-18T18:41:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kubernetes ile Linkerd Kurulumu ve Kullan\u0131m\u0131\"}]},{\"@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":"Kubernetes ile Linkerd Kurulumu ve Kullan\u0131m\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","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\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/","og_locale":"tr_TR","og_type":"article","og_title":"Kubernetes ile Linkerd Kurulumu ve Kullan\u0131m\u0131","og_description":"Kubernetes ile Linkerd Kurulumu ve Kullan\u0131m\u0131 Kubernetes, modern bulut tabanl\u0131 uygulamalar\u0131n da\u011f\u0131t\u0131m\u0131n\u0131, \u00f6l\u00e7eklendirilmesini ve y\u00f6netimi","og_url":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-18T18:41:09+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\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Kubernetes ile Linkerd Kurulumu ve Kullan\u0131m\u0131","datePublished":"2025-10-18T18:41:09+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/"},"wordCount":3911,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Bash"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/","url":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/","name":"Kubernetes ile Linkerd Kurulumu ve Kullan\u0131m\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-18T18:41:09+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ile-linkerd-kurulumu-ve-kullanimi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Kubernetes ile Linkerd Kurulumu ve Kullan\u0131m\u0131"}]},{"@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\/32194","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=32194"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32194\/revisions"}],"predecessor-version":[{"id":32195,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32194\/revisions\/32195"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32194"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}