{"id":33511,"date":"2025-11-03T20:32:28","date_gmt":"2025-11-03T17:32:28","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/"},"modified":"2025-11-03T20:32:28","modified_gmt":"2025-11-03T17:32:28","slug":"kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/","title":{"rendered":"Kubernetes Ortamlar\u0131nda Neden \u0130zolasyon ve D\u00fczenleme \u0130htiyac\u0131 Duyar\u0131z?"},"content":{"rendered":"<h1>Kubernetes Namespaces: Kaynak Y\u00f6netimi ve \u0130zolasyonun Temel Ta\u015f\u0131<\/h1>\n<p>Modern uygulama geli\u015ftirme s\u00fcre\u00e7lerinde, \u00f6zellikle mikroservis mimarileri ve bulut tabanl\u0131 \u00e7\u00f6z\u00fcmler yayg\u0131nla\u015ft\u0131k\u00e7a, kaynak y\u00f6netimi ve izolasyon kritik bir hal alm\u0131\u015ft\u0131r. Peki, onlarca farkl\u0131 uygulaman\u0131n, y\u00fczlerce hatta binlerce konteynerin ayn\u0131 Kubernetes k\u00fcmesi \u00fczerinde sorunsuz bir \u015fekilde bir arada \u00e7al\u0131\u015fmas\u0131n\u0131 nas\u0131l sa\u011flar\u0131z? \u0130\u015fte bu noktada <strong>Kubernetes Namespaces<\/strong> devreye giriyor. Bu makalede, Namespaces&#8217;in ne oldu\u011funu, neden bu kadar \u00f6nemli oldu\u011funu ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda bize nas\u0131l avantajlar sa\u011flad\u0131\u011f\u0131n\u0131 ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. E\u011fer Kubernetes ortam\u0131n\u0131z\u0131 daha d\u00fczenli, g\u00fcvenli ve verimli hale getirmek istiyorsan\u0131z, do\u011fru yerdesiniz.<\/p>\n<p>B\u00fcy\u00fck ve karma\u015f\u0131k Kubernetes k\u00fcmelerinde kaynaklar\u0131n verimli bir \u015fekilde y\u00f6netilmesi, geli\u015ftiricilerin \u00fcretkenli\u011fini art\u0131rman\u0131n ve operasyonel maliyetleri d\u00fc\u015f\u00fcrmenin anahtar\u0131d\u0131r. Bir k\u00fcme \u00fczerinde farkl\u0131 ekiplerin, farkl\u0131 projelerin veya farkl\u0131 ortamlar\u0131n (geli\u015ftirme, test, \u00fcretim) ayn\u0131 anda \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 hayal edin. E\u011fer t\u00fcm bu kaynaklar tek bir alanda toplansa, k\u0131sa s\u00fcrede b\u00fcy\u00fck bir kaos ya\u015fanmas\u0131 ka\u00e7\u0131n\u0131lmazd\u0131r. Kaynak adland\u0131rma \u00e7ak\u0131\u015fmalar\u0131, yanl\u0131\u015fl\u0131kla silinen veya de\u011fi\u015ftirilen \u00f6nemli servisler, yetkisiz eri\u015fim denemeleri gibi sorunlar h\u0131zla ortaya \u00e7\u0131kabilir. Bu t\u00fcr durumlar, sadece operasyonel verimsizli\u011fe yol a\u00e7makla kalmaz, ayn\u0131 zamanda g\u00fcvenlik a\u00e7\u0131klar\u0131 olu\u015fturarak veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc ve sistem g\u00fcvenli\u011fini de tehlikeye atar. Bu ba\u011flamda, her bir ekibin veya projenin kendi izole edilmi\u015f alan\u0131nda \u00e7al\u0131\u015fabilmesi, hem d\u00fczeni sa\u011flar hem de olas\u0131 hatalar\u0131n veya k\u00f6t\u00fc niyetli sald\u0131r\u0131lar\u0131n etkisini s\u0131n\u0131rlar. \u0130\u015fte bu temel ihtiya\u00e7, Kubernetes Namespaces kavram\u0131n\u0131n do\u011fmas\u0131na neden olmu\u015ftur.<\/p>\n<p>D\u00fc\u015f\u00fcn\u00fcn ki, bir yaz\u0131l\u0131m \u015firketinde hem &#8220;\u00f6deme sistemleri&#8221; ekibi hem de &#8220;kullan\u0131c\u0131 aray\u00fcz\u00fc&#8221; ekibi ayn\u0131 Kubernetes k\u00fcmesini kullan\u0131yor. Her iki ekip de &#8220;API Gateway&#8221; ad\u0131nda bir servis da\u011f\u0131tmak isteyebilir. E\u011fer Namespaces olmasayd\u0131, bu iki servis adland\u0131rma \u00e7ak\u0131\u015fmas\u0131 ya\u015far ve sadece bir tanesi \u00e7al\u0131\u015fabilirdi, ya da daha k\u00f6t\u00fcs\u00fc, birbirlerinin ayarlar\u0131n\u0131 ge\u00e7ersiz k\u0131labilirdi. Dahas\u0131, \u00f6deme sistemleri ekibinin kritik verilerine kullan\u0131c\u0131 aray\u00fcz\u00fc ekibinin eri\u015fmesi istenmezken, Namespaces bu eri\u015fim kontrol\u00fcn\u00fc de kolayla\u015ft\u0131r\u0131r. K\u0131sacas\u0131, Namespaces, Kubernetes k\u00fcmenizi mant\u0131ksal b\u00f6l\u00fcmlere ay\u0131rarak, her bir b\u00f6l\u00fcm\u00fcn kendi i\u00e7inde ba\u011f\u0131ms\u0131z ve d\u00fczenli bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. Bu sayede, farkl\u0131 ekipler veya projeler aras\u0131nda hem i\u015fbirli\u011fi artar hem de olas\u0131 \u00e7ak\u0131\u015fmalar minimize edilir. Ayr\u0131ca, kaynaklar\u0131n daha kolay takip edilmesine, izlenmesine ve y\u00f6netilmesine olanak tan\u0131r. \u00d6zellikle DevOps pratiklerini uygulayan organizasyonlar i\u00e7in Namespaces, olmazsa olmaz bir ara\u00e7t\u0131r.<\/p>\n<h2>Kubernetes Namespaces Nedir ve Ne \u0130\u015fe Yarar? Temel Kavramlar<\/h2>\n<p>Kubernetes Namespaces, temel olarak bir Kubernetes k\u00fcmesi i\u00e7inde kaynaklar\u0131 (Pod&#8217;lar, Servisler, Deployment&#8217;lar vb.) mant\u0131ksal olarak izole eden ve gruplayan bir mekanizmad\u0131r. Bunu, bir dosya sistemindeki klas\u00f6rlere benzetebiliriz. T\u0131pk\u0131 bir klas\u00f6r\u00fcn i\u00e7inde ayn\u0131 ada sahip dosyalar\u0131n bulunabilmesi gibi (\u00f6rne\u011fin, &#8220;belgeler\/rapor.docx&#8221; ve &#8220;projeler\/rapor.docx&#8221;), farkl\u0131 Namespaces i\u00e7inde ayn\u0131 ada sahip kaynaklar bulunabilir. Bu, adland\u0131rma \u00e7ak\u0131\u015fmalar\u0131n\u0131 \u00f6nler ve k\u00fcme kaynaklar\u0131n\u0131 daha d\u00fczenli hale getirir. Ancak Namespaces&#8217;in i\u015flevi yaln\u0131zca adland\u0131rma \u00e7ak\u0131\u015fmalar\u0131n\u0131 \u00f6nlemekle s\u0131n\u0131rl\u0131 de\u011fildir; \u00e7ok daha geni\u015f kapsaml\u0131 avantajlar sunar.<\/p>\n<p>Namespaces, ayn\u0131 zamanda eri\u015fim kontrol\u00fc (Role-Based Access Control &#8211; RBAC) ve kaynak kotas\u0131 (Resource Quotas) gibi \u00f6nemli \u00f6zelliklerin uygulanmas\u0131 i\u00e7in de bir temel olu\u015fturur. \u00d6rne\u011fin, belirli bir ekibin yaln\u0131zca kendi Namespace&#8217;indeki kaynaklara eri\u015febilmesini veya yaln\u0131zca belirli bir miktarda CPU ve bellek kullanabilmesini sa\u011flayabilirsiniz. Bu, multi-tenant (\u00e7ok kullan\u0131c\u0131l\u0131) Kubernetes ortamlar\u0131nda kritik bir ihtiya\u00e7t\u0131r. Her bir &#8220;tenant&#8221; veya &#8220;tak\u0131m&#8221; kendi Namespaces&#8217;ine sahip olabilir ve b\u00f6ylece di\u011ferlerinin kaynaklar\u0131n\u0131 etkilemeden kendi uygulamalar\u0131n\u0131 da\u011f\u0131tabilir ve y\u00f6netebilir. B\u00f6ylece, tek bir fiziksel Kubernetes k\u00fcmesi, mant\u0131ksal olarak ayr\u0131lm\u0131\u015f bir\u00e7ok &#8220;sanal k\u00fcme&#8221; gibi davranabilir. Bu yap\u0131, hem g\u00fcvenlik a\u00e7\u0131s\u0131ndan hem de kaynaklar\u0131n adil da\u011f\u0131t\u0131m\u0131 a\u00e7\u0131s\u0131ndan b\u00fcy\u00fck faydalar sa\u011flar.<\/p>\n<p>Kubernetes kurulumunda varsay\u0131lan olarak birka\u00e7 Namespace gelir:<\/p>\n<ul>\n<li><code>default<\/code>: Kaynaklar i\u00e7in varsay\u0131lan Namespace&#8217;tir. E\u011fer bir Namespace belirtmezseniz, kaynaklar\u0131n\u0131z buraya da\u011f\u0131t\u0131l\u0131r. K\u00fc\u00e7\u00fck projeler veya ba\u015flang\u0131\u00e7 a\u015famas\u0131nda kullan\u0131\u015fl\u0131 olabilir, ancak \u00fcretim ortamlar\u0131nda farkl\u0131 Namespaces kullanmak genellikle daha iyi bir pratiktir.<\/li>\n<li><code>kube-system<\/code>: Kubernetes k\u00fcmesinin kendisi taraf\u0131ndan kullan\u0131lan sistem kaynaklar\u0131n\u0131 (kontrol d\u00fczlemi bile\u015fenleri, DNS servisleri gibi) i\u00e7erir. Bu Namespace&#8217;teki kaynaklar\u0131 genellikle de\u011fi\u015ftirmemeniz \u00f6nerilir.<\/li>\n<li><code>kube-public<\/code>: Genel olarak eri\u015filebilir ve okunabilir kaynaklar\u0131 i\u00e7erir. \u00d6rne\u011fin, k\u00fcme bilgilerini i\u00e7eren bir ConfigMap bu Namespace&#8217;te yer alabilir.<\/li>\n<li><code>kube-node-lease<\/code>: K\u00fcme bile\u015fenlerinin node&#8217;lar aras\u0131ndaki &#8220;kalp at\u0131\u015f\u0131&#8221; ileti\u015fimini h\u0131zland\u0131rmak i\u00e7in kullan\u0131lan lease objelerini i\u00e7erir.<\/li>\n<\/ul>\n<p>Bu temel Namespaces d\u0131\u015f\u0131nda, kendi ihtiya\u00e7lar\u0131n\u0131za g\u00f6re yeni Namespaces olu\u015fturmak, Kubernetes deneyiminizi \u00f6nemli \u00f6l\u00e7\u00fcde geli\u015ftirecektir. \u0130ster geli\u015ftirme, test, \u00fcretim ortamlar\u0131n\u0131 ay\u0131rmak isteyin, ister farkl\u0131 departmanlar i\u00e7in ayr\u0131 \u00e7al\u0131\u015fma alanlar\u0131 olu\u015fturun, Namespaces size bu esnekli\u011fi sunar. Kaynaklar\u0131n\u0131z\u0131 daha iyi organize etmek, eri\u015fim g\u00fcvenli\u011fini sa\u011flamak ve maliyetleri kontrol alt\u0131nda tutmak i\u00e7in Namespaces kilit bir rol oynar.<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: \u00c7ok kullan\u0131c\u0131l\u0131 (multi-tenant) Kubernetes k\u00fcmelerinde, her bir kirac\u0131 (tenant) veya tak\u0131m i\u00e7in ayr\u0131 bir Namespace olu\u015fturmak, hem izolasyonu hem de kaynak y\u00f6netimini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde kolayla\u015ft\u0131r\u0131r. Bu yakla\u015f\u0131m, g\u00fcvenlik duvarlar\u0131 g\u00f6revi g\u00f6rerek bir kirac\u0131n\u0131n di\u011ferinin kaynaklar\u0131na eri\u015fmesini veya yanl\u0131\u015fl\u0131kla de\u011fi\u015ftirmesini engeller.\n<\/div>\n<h2>Namespace Olu\u015fturma ve Y\u00f6netme: Ad\u0131m Ad\u0131m Uygulamal\u0131 Rehber<\/h2>\n<p>Kubernetes Namespaces olu\u015fturmak ve y\u00f6netmek olduk\u00e7a basittir. <code>kubectl<\/code> komut sat\u0131r\u0131 arac\u0131 bu i\u015flemler i\u00e7in temel aray\u00fcz\u00fcm\u00fczd\u00fcr. \u0130ster h\u0131zl\u0131 bir komutla yeni bir Namespace olu\u015ftural\u0131m, ister YAML dosyalar\u0131yla daha deklaratif bir yakla\u015f\u0131m sergileyelim, her iki y\u00f6ntem de kolayca uygulanabilir.<\/p>\n<h3>1. Yeni Bir Namespace Olu\u015fturma<\/h3>\n<p>Yeni bir Namespace olu\u015fturman\u0131n en h\u0131zl\u0131 yolu <code>kubectl create namespace<\/code> komutunu kullanmakt\u0131r:<\/p>\n<pre><code>\nkubectl create namespace gelistirme\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, \"gelistirme\" ad\u0131nda yeni bir Namespace olu\u015fturacakt\u0131r. \u00c7\u0131kt\u0131da genellikle \"namespace\/gelistirme created\" mesaj\u0131n\u0131 g\u00f6r\u00fcrs\u00fcn\u00fcz.<\/p>\n<p>Alternatif olarak, daha deklaratif bir y\u00f6ntem olan YAML dosyas\u0131n\u0131 kullanabiliriz. Bu yakla\u015f\u0131m, konfig\u00fcrasyonu versiyon kontrol sistemlerinde (Git gibi) saklamak i\u00e7in daha uygundur. Bir dosya olu\u015ftural\u0131m, \u00f6rne\u011fin <code>gelistirme-namespace.yaml<\/code>:<\/p>\n<pre><code>\napiVersion: v1\nkind: Namespace\nmetadata:\n  name: gelistirme\n  labels:\n    environment: dev\n    project: myapp\n<\/pre>\n<p><\/code><\/p>\n<p>Bu dosyay\u0131 kaydedip a\u015fa\u011f\u0131daki komutla uygulayabiliriz:<\/p>\n<pre><code>\nkubectl apply -f gelistirme-namespace.yaml\n<\/pre>\n<p><\/code><\/p>\n<p>Bu y\u00f6ntem, Namespace'e ek etiketler (labels) eklememize olanak tan\u0131r, bu da daha sonra kaynaklar\u0131 filtrelemek veya otomatize etmek i\u00e7in faydal\u0131 olabilir.<\/p>\n<h3>2. Varolan Namespaces'i G\u00f6r\u00fcnt\u00fcleme<\/h3>\n<p>K\u00fcmenizdeki t\u00fcm Namespaces'leri g\u00f6rmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code>\nkubectl get namespaces\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, k\u00fcmenizdeki t\u00fcm Namespaces'leri ve onlar\u0131n durumlar\u0131n\u0131 (\u00f6rne\u011fin, Active veya Terminating) listeler. \u00c7\u0131kt\u0131da genellikle <code>default<\/code>, <code>kube-system<\/code> gibi varsay\u0131lan Namespaces'lerin yan\u0131 s\u0131ra sizin olu\u015fturdu\u011funuz Namespaces'i de g\u00f6r\u00fcrs\u00fcn\u00fcz.<\/p>\n<h3>3. Bir Namespace'i Tan\u0131mlama ve Detaylar\u0131n\u0131 G\u00f6rme<\/h3>\n<p>Belirli bir Namespace hakk\u0131nda daha fazla bilgi edinmek isterseniz, <code>describe<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code>\nkubectl describe namespace gelistirme\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, Namespace'in durumu, etiketleri, olaylar\u0131 ve ona uygulanan ResourceQuota veya LimitRange gibi kaynak k\u0131s\u0131tlamalar\u0131 hakk\u0131nda ayr\u0131nt\u0131l\u0131 bilgiler sa\u011flar. Bu detaylar, \u00f6zellikle sorun giderme veya kaynak y\u00f6netimi yaparken olduk\u00e7a de\u011ferlidir.<\/p>\n<h3>4. Farkl\u0131 Namespaces Aras\u0131nda Ge\u00e7i\u015f Yapma<\/h3>\n<p>Normalde, Kubernetes kaynaklar\u0131n\u0131 (Pod'lar, Deployment'lar vb.) listelerken veya olu\u015ftururken, <code>--namespace<\/code> veya <code>-n<\/code> bayra\u011f\u0131n\u0131 kullanarak hangi Namespace'te i\u015flem yapaca\u011f\u0131m\u0131z\u0131 belirtmemiz gerekir. \u00d6rne\u011fin:<\/p>\n<pre><code>\nkubectl get pods -n gelistirme\nkubectl create deployment myapp --image=nginx -n gelistirme\n<\/pre>\n<p><\/code><\/p>\n<p>Ancak, s\u00fcrekli olarak <code>-n <namespace_ad\u0131><\/code> yazmak zaman al\u0131c\u0131 olabilir. Bu durumlarda, <code>kubectl config set-context<\/code> komutu ile varsay\u0131lan Namespace'i de\u011fi\u015ftirebilirsiniz. Daha da kolayla\u015ft\u0131rmak i\u00e7in, <code>kubectx<\/code> ve <code>kubens<\/code> gibi \u00fc\u00e7\u00fcnc\u00fc taraf ara\u00e7lar (krew eklentileri olarak da mevcuttur) \u015fiddetle tavsiye edilir. \u00d6rne\u011fin, <code>kubens<\/code> ile kolayca Namespace de\u011fi\u015ftirebilirsiniz:<\/p>\n<pre><code>\nkubens gelistirme\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, mevcut terminal oturumunuz i\u00e7in varsay\u0131lan Namespace'i \"gelistirme\" olarak ayarlar, b\u00f6ylece her komutta <code>-n<\/code> bayra\u011f\u0131n\u0131 belirtmenize gerek kalmaz. Bu, g\u00fcnl\u00fck geli\u015ftirme ve operasyonel i\u015f ak\u0131\u015flar\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131r\u0131r.<\/p>\n<h3>5. Bir Namespace'i Silme<\/h3>\n<p>Bir Namespace'i ve i\u00e7indeki t\u00fcm kaynaklar\u0131 silmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code>\nkubectl delete namespace gelistirme\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, dikkatli kullan\u0131lmal\u0131d\u0131r, \u00e7\u00fcnk\u00fc Namespace ile birlikte i\u00e7indeki t\u00fcm Pod'lar, Servisler, Deployment'lar, ConfigMap'ler, Secret'lar ve di\u011fer t\u00fcm kaynaklar geri d\u00f6n\u00fclemez bir \u015fekilde silinir. Genellikle Namespace'in silinmesi biraz zaman alabilir, \u00e7\u00fcnk\u00fc Kubernetes \u00f6nce i\u00e7indeki t\u00fcm kaynaklar\u0131 sonland\u0131r\u0131r. Bu i\u015flemler s\u0131ras\u0131nda Namespace'in durumu \"Terminating\" olarak g\u00f6r\u00fcn\u00fcr.<\/p>\n<p>Namespace y\u00f6netimi, Kubernetes'in temel ve en g\u00fc\u00e7l\u00fc \u00f6zelliklerinden biridir. Bu ad\u0131mlar\u0131 izleyerek, k\u00fcmenizi daha d\u00fczenli, izole edilmi\u015f ve y\u00f6netilebilir hale getirebilirsiniz. \u00d6zellikle b\u00fcy\u00fck \u00f6l\u00e7ekli ve \u00e7ok kullan\u0131c\u0131l\u0131 ortamlarda, Namespaces'in do\u011fru kullan\u0131m\u0131, operasyonel y\u00fck\u00fc azalt\u0131r ve genel sistem stabilitesini art\u0131r\u0131r.<\/p>\n<h2>Kaynaklar\u0131 Namespaces Aras\u0131nda Da\u011f\u0131tma ve \u0130zole Etme Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>Kubernetes Namespaces'in temel amac\u0131, kaynaklar\u0131 izole etmek ve grupland\u0131rmakt\u0131r. Bir Namespace olu\u015fturduktan sonra, uygulamalar\u0131n\u0131z\u0131 ve servislerinizi bu Namespace'e nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 bilmeniz \u00f6nemlidir. Bu s\u00fcre\u00e7, uygulaman\u0131z\u0131n di\u011fer Namespace'lerdeki kaynaklarla \u00e7ak\u0131\u015fmamas\u0131n\u0131 ve yaln\u0131zca yetkilendirilmi\u015f eri\u015fime sahip olmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>1. Kaynaklar\u0131 Belirli Bir Namespace'e Da\u011f\u0131tma<\/h3>\n<p>Kubernetes objelerini bir Namespace'e da\u011f\u0131tman\u0131n en yayg\u0131n yolu, YAML tan\u0131m dosyas\u0131nda <code>metadata.namespace<\/code> alan\u0131n\u0131 belirtmektir. \u00d6rne\u011fin, \"gelistirme\" Namespace'ine bir Nginx Pod'u da\u011f\u0131tmak istedi\u011fimizi varsayal\u0131m. \u0130\u015fte <code>nginx-pod.yaml<\/code> dosyam\u0131z:<\/p>\n<pre><code>\napiVersion: v1\nkind: Pod\nmetadata:\n  name: nginx-pod-dev\n  namespace: gelistirme # Pod'u bu Namespace'e da\u011f\u0131t\n  labels:\n    app: nginx\nspec:\n  containers:\n  - name: nginx\n    image: nginx:latest\n    ports:\n    - containerPort: 80\n<\/pre>\n<p><\/code><\/p>\n<p>Bu dosyay\u0131 uygulad\u0131\u011f\u0131m\u0131zda, Pod do\u011frudan \"gelistirme\" Namespace'ine yerle\u015fecektir:<\/p>\n<pre><code>\nkubectl apply -f nginx-pod.yaml\n<\/pre>\n<p><\/code><\/p>\n<p>Pod'un do\u011fru Namespace'te \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in:<\/p>\n<pre><code>\nkubectl get pods -n gelistirme\n<\/pre>\n<p><\/code><\/p>\n<p>E\u011fer <code>-n gelistirme<\/code> bayra\u011f\u0131n\u0131 kullanmazsan\u0131z ve mevcut ba\u011flam\u0131n\u0131z varsay\u0131lan Namespace'te ise, bu Pod'u g\u00f6remezsiniz. Bu, Namespaces'in izolasyon yetene\u011finin basit bir g\u00f6stergesidir.<\/p>\n<p>Benzer \u015fekilde, bir Deployment, Service, ConfigMap veya Secret gibi di\u011fer t\u00fcm Namespace kapsaml\u0131 kaynaklar\u0131 da ayn\u0131 \u015fekilde belirli bir Namespace'e da\u011f\u0131tabilirsiniz. \u00d6rne\u011fin, bir Service i\u00e7in:<\/p>\n<pre><code>\napiVersion: v1\nkind: Service\nmetadata:\n  name: my-service-dev\n  namespace: gelistirme # Servisi bu Namespace'e da\u011f\u0131t\nspec:\n  selector:\n    app: nginx\n  ports:\n    - protocol: TCP\n      port: 80\n      targetPort: 80\n<\/pre>\n<p><\/code><\/p>\n<p>Uygulama:<\/p>\n<pre><code>\nkubectl apply -f my-service-dev.yaml\n<\/pre>\n<p><\/code><\/p>\n<h3>2. Namespaces Aras\u0131 \u0130zolasyonun Anlam\u0131<\/h3>\n<p>Namespaces, kaynaklar aras\u0131nda g\u00fc\u00e7l\u00fc bir mant\u0131ksal izolasyon sa\u011flar. Bu, \u015fu anlama gelir:<\/p>\n<ul>\n<li><strong>Adland\u0131rma \u00c7ak\u0131\u015fmalar\u0131 Yok:<\/strong> \"gelistirme\" Namespace'indeki \"nginx-pod-dev\" ile \"uretim\" Namespace'indeki \"nginx-pod-dev\" tamamen farkl\u0131 varl\u0131klard\u0131r ve birbirleriyle \u00e7ak\u0131\u015fmazlar.<\/li>\n<li><strong>Varsay\u0131lan G\u00f6r\u00fcnmezlik:<\/strong> Bir Namespace'teki Pod'lar veya di\u011fer kaynaklar, varsay\u0131lan olarak ba\u015fka bir Namespace'teki kaynaklar\u0131 do\u011frudan \"g\u00f6remez\" veya onlara eri\u015femez. Bu, \u00f6zellikle hizmet ke\u015ffi i\u00e7in \u00f6nemlidir. \u00d6rne\u011fin, \"gelistirme\"deki bir Pod, sadece \"my-service-dev\" ad\u0131yla \"uretim\"deki bir servise eri\u015fmeye \u00e7al\u0131\u015f\u0131rsa ba\u015far\u0131s\u0131z olur.<\/li>\n<li><strong>G\u00fcvenlik S\u0131n\u0131rlar\u0131:<\/strong> Bu izolasyon, RBAC (Rol Tabanl\u0131 Eri\u015fim Kontrol\u00fc) ile birle\u015fti\u011finde g\u00fc\u00e7l\u00fc g\u00fcvenlik s\u0131n\u0131rlar\u0131 olu\u015fturur. Bir kullan\u0131c\u0131n\u0131n veya hizmet hesab\u0131n\u0131n yaln\u0131zca belirli bir Namespace'teki kaynaklar\u0131 y\u00f6netmesine izin verebilirsiniz, bu da yetkisiz eri\u015fimi \u00f6nler.<\/li>\n<\/ul>\n<h3>3. Namespaces Aras\u0131 \u0130leti\u015fim (\u0130stisnalar)<\/h3>\n<p>\u0130zolasyon temel prensip olsa da, bazen Namespaces aras\u0131nda ileti\u015fime ihtiya\u00e7 duyulabilir. Kubernetes DNS, bu konuda bize yard\u0131mc\u0131 olur. Bir Namespace'teki Pod, ba\u015fka bir Namespace'teki bir servise tam nitelikli alan ad\u0131 (FQDN) kullanarak eri\u015febilir. FQDN format\u0131 genellikle \u015f\u00f6yledir:<\/p>\n<pre><code>\n<service-name>.<namespace-name>.svc.cluster.local\n<\/pre>\n<p><\/code><\/p>\n<p>\u00d6rne\u011fin, \"gelistirme\" Namespace'indeki bir Pod, \"uretim\" Namespace'indeki \"my-backend-service\" adl\u0131 bir servise eri\u015fmek i\u00e7in <code>my-backend-service.uretim.svc.cluster.local<\/code> adresini kullanabilir. Daha k\u0131sa olarak, e\u011fer Pod'lar ayn\u0131 k\u00fcmede ise <code>my-backend-service.uretim<\/code> \u015feklinde de eri\u015febilirler. Ancak bu ileti\u015fimin g\u00fcvenlik duvarlar\u0131 (Network Policies) ile kontrol alt\u0131nda tutulmas\u0131 gerekti\u011fini unutmamak \u00f6nemlidir.<\/p>\n<p>Network Policies, Namespaces aras\u0131nda kimin kiminle konu\u015fabilece\u011fini tan\u0131mlaman\u0131za olanak tan\u0131r. \u00d6rne\u011fin, \"gelistirme\" Namespace'indeki Pod'lar\u0131n \"uretim\" Namespace'indeki herhangi bir servisle ileti\u015fim kurmas\u0131n\u0131 tamamen engelleyebilir veya yaln\u0131zca belirli portlar \u00fczerinden belirli servislerle ileti\u015fime izin verebilirsiniz. Bu, g\u00fcvenlik katman\u0131n\u0131z\u0131 daha da g\u00fc\u00e7lendirir.<\/p>\n<p>Kaynaklar\u0131 do\u011fru Namespaces'e da\u011f\u0131tmak ve onlar\u0131n izolasyon \u00f6zelliklerinden yararlanmak, Kubernetes k\u00fcmenizi daha y\u00f6netilebilir, g\u00fcvenli ve \u00f6l\u00e7eklenebilir hale getirmenin kritik bir ad\u0131m\u0131d\u0131r. Bu d\u00fczenli yakla\u015f\u0131m, \u00f6zellikle b\u00fcy\u00fck ekiplerde ve karma\u015f\u0131k uygulama y\u0131\u011f\u0131nlar\u0131nda geli\u015ftirme ve operasyonel s\u00fcre\u00e7leri basitle\u015ftirir.<\/p>\n<h2>Namespaces ile Eri\u015fim Kontrol\u00fc ve G\u00fcvenlik: Rol Tabanl\u0131 Eri\u015fim Kontrol\u00fc (RBAC) Entegrasyonu<\/h2>\n<p>Kubernetes Namespaces, yaln\u0131zca kaynaklar\u0131 mant\u0131ksal olarak b\u00f6lmekle kalmaz, ayn\u0131 zamanda eri\u015fim kontrol\u00fc ve g\u00fcvenlik sa\u011flamak i\u00e7in g\u00fc\u00e7l\u00fc bir temel sunar. \u00d6zellikle \u00e7ok kullan\u0131c\u0131l\u0131 ortamlarda, hangi kullan\u0131c\u0131n\u0131n veya hizmet hesab\u0131n\u0131n hangi kaynaklara ve hangi Namespace'te eri\u015febilece\u011fini belirlemek hayati \u00f6nem ta\u015f\u0131r. \u0130\u015fte bu noktada Kubernetes'in Rol Tabanl\u0131 Eri\u015fim Kontrol\u00fc (RBAC) mekanizmas\u0131 devreye girer ve Namespaces ile m\u00fckemmel bir uyum i\u00e7inde \u00e7al\u0131\u015f\u0131r.<\/p>\n<h3>RBAC ve Namespaces: Kim Nereye Eri\u015febilir?<\/h3>\n<p>RBAC, Kubernetes'te kullan\u0131c\u0131lar\u0131n veya hizmet hesaplar\u0131n\u0131n hangi eylemleri ger\u00e7ekle\u015ftirebilece\u011fini tan\u0131mlaman\u0131z\u0131 sa\u011flar. Temelde \u00fc\u00e7 ana RBAC objesi bulunur:<\/p>\n<ol>\n<li><strong>Role:<\/strong> Belirli bir Namespace i\u00e7inde izinleri tan\u0131mlar. \u00d6rne\u011fin, bir Role \"gelistirme\" Namespace'indeki Pod'lar\u0131 okuma (get, list, watch) ve olu\u015fturma (create) yetkisi verebilir.<\/li>\n<li><strong>ClusterRole:<\/strong> K\u00fcme genelinde izinleri tan\u0131mlar. Bu Roller Namespace'e \u00f6zg\u00fc de\u011fildir ve t\u00fcm Namespaces'lerde veya k\u00fcme seviyesindeki kaynaklarda (Node'lar gibi) ge\u00e7erli olur.<\/li>\n<li><strong>RoleBinding:<\/strong> Bir Role'\u00fc bir kullan\u0131c\u0131ya, gruba veya hizmet hesab\u0131na ba\u011flar ve izinleri o Namespace i\u00e7inde uygular.<\/li>\n<li><strong>ClusterRoleBinding:<\/strong> Bir ClusterRole'\u00fc bir kullan\u0131c\u0131ya, gruba veya hizmet hesab\u0131na ba\u011flar ve izinleri t\u00fcm k\u00fcme genelinde uygular.<\/li>\n<\/ol>\n<p>Namespaces, RBAC'\u0131n kapsam\u0131n\u0131 belirlemede kilit bir rol oynar. Bir Role ve RoleBinding tan\u0131mlayarak, bir ekibin veya bireyin yaln\u0131zca kendi atanan Namespace'indeki kaynaklara eri\u015febilmesini ve di\u011fer Namespaces'teki kaynaklara m\u00fcdahale edememesini sa\u011flayabilirsiniz.<\/p>\n<h3>Pratik Senaryo: Geli\u015ftirme Ekibine Sadece Kendi Namespaces'ine Eri\u015fim Verme<\/h3>\n<p>Diyelim ki bir \"gelistirme\" ekibimiz var ve bu ekibin yaln\u0131zca \"gelistirme\" Namespace'indeki Pod'lar\u0131, Deployment'lar\u0131 ve Servisleri y\u00f6netmesini istiyoruz. Di\u011fer Namespaces'lerdeki (\u00f6rne\u011fin, \"uretim\") kaynaklara eri\u015fmelerini veya bunlar\u0131 de\u011fi\u015ftirmelerini engellemek istiyoruz. \u0130\u015fte bunu nas\u0131l yapaca\u011f\u0131m\u0131z:<\/p>\n<h4>Ad\u0131m 1: Bir Role Tan\u0131mlama<\/h4>\n<p>\"gelistirme\" Namespace'indeki Pod'lar, Deployment'lar ve Servisler \u00fczerinde temel y\u00f6netim izinlerini veren bir Role tan\u0131mlayal\u0131m. Bu, yaln\u0131zca \"gelistirme\" Namespace'inde ge\u00e7erli olacakt\u0131r.<\/p>\n<pre><code>\n# gelistirme-role.yaml\napiVersion: rbac.authorization.k8s.io\/v1\nkind: Role\nmetadata:\n  name: gelistirme-yonetici-rolu\n  namespace: gelistirme # Bu Role sadece 'gelistirme' Namespace'inde ge\u00e7erli olacak\nrules:\n- apiGroups: [\"\", \"apps\", \"extensions\"] # \u00c7ekirdek API (Pod, Service) ve Uygulama API'leri (Deployment)\n  resources: [\"pods\", \"deployments\", \"services\", \"configmaps\", \"secrets\"]\n  verbs: [\"get\", \"list\", \"watch\", \"create\", \"update\", \"patch\", \"delete\"] # \u0130zin verilen eylemler\n<\/pre>\n<p><\/code><\/p>\n<p>Bu Role'\u00fc uygulayal\u0131m:<\/p>\n<pre><code>\nkubectl apply -f gelistirme-role.yaml\n<\/pre>\n<p><\/code><\/p>\n<h4>Ad\u0131m 2: Bir RoleBinding Olu\u015fturma<\/h4>\n<p>\u015eimdi bu Role'\u00fc belirli bir kullan\u0131c\u0131ya veya hizmet hesab\u0131na ba\u011flamam\u0131z gerekiyor. Diyelim ki, \"dev-user\" ad\u0131nda bir kullan\u0131c\u0131m\u0131z var (Kubernetes'te kullan\u0131c\u0131lar genellikle d\u0131\u015far\u0131dan kimlik do\u011frulama sistemleri arac\u0131l\u0131\u011f\u0131yla y\u00f6netilir, ancak test ama\u00e7l\u0131 olarak direkt ba\u011flanabiliriz veya bir ServiceAccount kullanabiliriz). Bir ServiceAccount olu\u015ftural\u0131m ve ona bu Role'\u00fc ba\u011flayal\u0131m.<\/p>\n<pre><code>\n# dev-sa.yaml\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: dev-service-account\n  namespace: gelistirme\n---\n# gelistirme-rolebinding.yaml\napiVersion: rbac.authorization.k8s.io\/v1\nkind: RoleBinding\nmetadata:\n  name: gelistirme-yonetici-baglama\n  namespace: gelistirme # RoleBinding de 'gelistirme' Namespace'inde ge\u00e7erli olacak\nsubjects:\n- kind: ServiceAccount\n  name: dev-service-account # Ba\u011flanacak ServiceAccount\n  namespace: gelistirme\nroleRef:\n  kind: Role\n  name: gelistirme-yonetici-rolu # Ba\u011flanacak Role\n  apiGroup: rbac.authorization.k8s.io\n<\/pre>\n<p><\/code><\/p>\n<p>Bu ServiceAccount'\u0131 ve RoleBinding'i uygulayal\u0131m:<\/p>\n<pre><code>\nkubectl apply -f dev-sa.yaml\nkubectl apply -f gelistirme-rolebinding.yaml\n<\/pre>\n<p><\/code><\/p>\n<p>Art\u0131k \"dev-service-account\" adl\u0131 ServiceAccount, yaln\u0131zca \"gelistirme\" Namespace'indeki belirtilen kaynaklar \u00fczerinde y\u00f6netim yetkisine sahip olacak. Bu, \"dev-service-account\" ile \u00e7al\u0131\u015fan bir Pod'un \"uretim\" Namespace'indeki bir kayna\u011f\u0131 silmeye \u00e7al\u0131\u015ft\u0131\u011f\u0131nda bir yetkilendirme hatas\u0131 (<code>Error from server (Forbidden)<\/code>) alaca\u011f\u0131 anlam\u0131na gelir. Bu sayede, yanl\u0131\u015fl\u0131kla yap\u0131lan veya k\u00f6t\u00fc niyetli eylemlerin etkileri belirli bir Namespace ile s\u0131n\u0131rlanm\u0131\u015f olur.<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Kendi Namespaces'inizi yarat\u0131rken, her birine anlaml\u0131 etiketler (labels) ekleyin (\u00f6rne\u011fin, <code>environment: dev<\/code>, <code>team: frontend<\/code>). Bu etiketler, daha sonra RBAC politikalar\u0131, Network Policies veya kaynak kotalar\u0131 tan\u0131mlarken selection (se\u00e7im) i\u00e7in kullan\u0131labilir ve y\u00f6netimi kolayla\u015ft\u0131r\u0131r.\n<\/div>\n<p>Kubernetes Namespaces ile RBAC'\u0131n entegrasyonu, k\u00fcme g\u00fcvenli\u011fini katmanl\u0131 bir yap\u0131da ele almay\u0131 m\u00fcmk\u00fcn k\u0131lar. Her bir Namespace'i adeta ba\u011f\u0131ms\u0131z bir g\u00fcvenlik b\u00f6lgesi olarak d\u00fc\u015f\u00fcnerek, ekiplerin ve uygulamalar\u0131n sadece ihtiya\u00e7 duyduklar\u0131 kaynaklara eri\u015fmesini sa\u011flayabilir, b\u00f6ylece genel g\u00fcvenlik duru\u015funuzu \u00f6nemli \u00f6l\u00e7\u00fcde g\u00fc\u00e7lendirebilirsiniz. Bu yakla\u015f\u0131m, b\u00fcy\u00fck \u00f6l\u00e7ekli ve hassas veri bar\u0131nd\u0131ran Kubernetes ortamlar\u0131nda vazge\u00e7ilmezdir.<\/p>\n<h2>Kaynak Kotalar\u0131 (Resource Quotas) ve Limit Ranges ile Namespace Kaynak Y\u00f6netimi<\/h2>\n<p>Kubernetes Namespaces, kaynaklar\u0131 mant\u0131ksal olarak izole etmek i\u00e7in harika bir yol sunar, ancak bu izolasyonun \u00f6tesinde, her bir Namespace'in ne kadar kaynak (CPU, bellek, depolama vb.) t\u00fcketebilece\u011fini de s\u0131n\u0131rlaman\u0131z gerekebilir. Aksi takdirde, tek bir ekip veya uygulama, k\u00fcmedeki t\u00fcm kaynaklar\u0131 t\u00fcketerek di\u011fer uygulamalar\u0131n performans\u0131n\u0131 olumsuz etkileyebilir veya k\u00fcmenin \u00e7\u00f6kmesine neden olabilir. \u0130\u015fte bu senaryoda <strong>Resource Quotas (Kaynak Kotalar\u0131)<\/strong> ve <strong>Limit Ranges<\/strong> devreye girer.<\/p>\n<p>Bu iki \u00f6zellik, Namespaces ile birlikte kullan\u0131ld\u0131\u011f\u0131nda, k\u00fcme kaynaklar\u0131n\u0131n daha adil ve verimli bir \u015fekilde da\u011f\u0131t\u0131lmas\u0131n\u0131, maliyetlerin kontrol alt\u0131nda tutulmas\u0131n\u0131 ve k\u00fcme stabilitesinin sa\u011flanmas\u0131n\u0131 m\u00fcmk\u00fcn k\u0131lar. Her bir Namespace'e \u00f6zel kaynak s\u0131n\u0131rlar\u0131 tan\u0131mlayarak, bir \"k\u00f6t\u00fc kom\u015fu\"nun (noisy neighbor) di\u011ferlerinin i\u015fini aksatmas\u0131n\u0131 engellersiniz.<\/p>\n<h3>Resource Quotas: Namespace Baz\u0131nda Kaynak S\u0131n\u0131rlar\u0131<\/h3>\n<p>Resource Quotas, belirli bir Namespace'in t\u00fcketebilece\u011fi toplam kaynak miktar\u0131n\u0131 veya o Namespace i\u00e7inde olu\u015fturulabilecek obje say\u0131s\u0131n\u0131 s\u0131n\u0131rlamak i\u00e7in kullan\u0131l\u0131r. Bu, kaynak israf\u0131n\u0131 \u00f6nler ve ekiplerin kendilerine ayr\u0131lan s\u0131n\u0131rlar i\u00e7inde kalmas\u0131n\u0131 sa\u011flar. Resource Quota, olu\u015fturuldu\u011funda hemen devreye girer ve tan\u0131ml\u0131 limitlere uyulmas\u0131n\u0131 zorunlu k\u0131lar.<\/p>\n<p>Bir ResourceQuota ile \u015funlar\u0131 s\u0131n\u0131rlayabilirsiniz:<\/p>\n<ul>\n<li><strong>Hesaplanabilir Kaynaklar (Computable Resources):<\/strong> CPU (<code>requests.cpu<\/code>, <code>limits.cpu<\/code>) ve bellek (<code>requests.memory<\/code>, <code>limits.memory<\/code>).<\/li>\n<li><strong>Depolama Kaynaklar\u0131 (Storage Resources):<\/strong> Persistent Volume Claim (PVC) boyutu (<code>requests.storage<\/code>).<\/li>\n<li><strong>Objelerin Say\u0131s\u0131 (Count of Objects):<\/strong> Pod'lar, Servisler, Deployment'lar, ConfigMap'ler, Secret'lar, Persistent Volume Claim'ler vb. gibi belirli Kubernetes objelerinin toplam say\u0131s\u0131. \u00d6rne\u011fin, bir Namespace'te en fazla 10 Pod ve 5 Deployment olabilir.<\/li>\n<\/ul>\n<h4>\u00d6rnek Bir ResourceQuota Tan\u0131m\u0131:<\/h4>\n<p>Diyelim ki \"gelistirme\" Namespace'i i\u00e7in a\u015fa\u011f\u0131daki k\u0131s\u0131tlamalar\u0131 uygulamak istiyoruz:<\/p>\n<ul>\n<li>Toplamda en fazla 2 CPU \u00e7ekirde\u011fi iste\u011fi (request) ve 4 CPU \u00e7ekirde\u011fi s\u0131n\u0131r\u0131 (limit)<\/li>\n<li>Toplamda en fazla 4Gi bellek iste\u011fi ve 8Gi bellek s\u0131n\u0131r\u0131<\/li>\n<li>En fazla 20 Pod ve 5 Servis olu\u015fturulabilir<\/li>\n<\/ul>\n<pre><code>\n# gelistirme-quota.yaml\napiVersion: v1\nkind: ResourceQuota\nmetadata:\n  name: gelistirme-kaynak-kotasi\n  namespace: gelistirme # Bu kota 'gelistirme' Namespace'ine uygulanacak\nspec:\n  hard:\n    requests.cpu: \"2\"\n    requests.memory: \"4Gi\"\n    limits.cpu: \"4\"\n    limits.memory: \"8Gi\"\n    pods: \"20\"\n    services: \"5\"\n<\/pre>\n<p><\/code><\/p>\n<p>Bu kotay\u0131 uygulamak i\u00e7in:<\/p>\n<pre><code>\nkubectl apply -f gelistirme-quota.yaml\n<\/pre>\n<p><\/code><\/p>\n<p>Art\u0131k \"gelistirme\" Namespace'indeki Pod'lar, belirtilen CPU ve bellek s\u0131n\u0131rlar\u0131n\u0131 a\u015famayacak ve belirtilen objelerin say\u0131s\u0131ndan fazlas\u0131n\u0131 olu\u015fturamayacaklard\u0131r. Bir ekip, bu limitleri a\u015fmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131nda, Kubernetes Pod'u veya di\u011fer objeyi olu\u015fturmay\u0131 reddedecek ve bir hata mesaj\u0131 d\u00f6necektir.<\/p>\n<h3>Limit Ranges: Pod\/Konteyner Baz\u0131nda Varsay\u0131lan ve Maksimum De\u011ferler<\/h3>\n<p>Resource Quotas, Namespace genelinde toplam t\u00fcketimi s\u0131n\u0131rlarken, <strong>Limit Ranges<\/strong> ise bir Namespace i\u00e7indeki tekil Pod'lar veya konteynerler i\u00e7in varsay\u0131lan (default) ve maksimum (max) kaynak de\u011ferlerini tan\u0131mlar. Bu, geli\u015ftiricilerin her zaman CPU ve bellek limitlerini belirtmesini sa\u011flamak i\u00e7in faydal\u0131d\u0131r, aksi takdirde kaynak iste\u011fi belirtilmeyen Pod'lar k\u00fcmede kaynak israf\u0131na yol a\u00e7abilir.<\/p>\n<p>Limit Range ile \u015funlar\u0131 ayarlayabilirsiniz:<\/p>\n<ul>\n<li>Bir konteyner i\u00e7in minimum ve maksimum CPU\/bellek iste\u011fi (request) ve s\u0131n\u0131r\u0131 (limit).<\/li>\n<li>E\u011fer bir Pod veya konteyner kendi kaynak iste\u011fini\/s\u0131n\u0131r\u0131n\u0131 belirtmezse uygulanacak varsay\u0131lan CPU\/bellek de\u011ferleri.<\/li>\n<\/ul>\n<h4>\u00d6rnek Bir LimitRange Tan\u0131m\u0131:<\/h4>\n<p>\u015eimdi de \"gelistirme\" Namespace'indeki her bir Pod'un konteynerleri i\u00e7in varsay\u0131lan ve maksimum de\u011ferleri belirleyelim:<\/p>\n<pre><code>\n# gelistirme-limitrange.yaml\napiVersion: v1\nkind: LimitRange\nmetadata:\n  name: gelistirme-limit-araligi\n  namespace: gelistirme # Bu limit aral\u0131\u011f\u0131 'gelistirme' Namespace'ine uygulanacak\nspec:\n  limits:\n  - default: # E\u011fer belirtilmezse uygulanacak varsay\u0131lanlar\n      cpu: 500m\n      memory: 512Mi\n    defaultRequest: # E\u011fer belirtilmezse uygulanacak varsay\u0131lan istekler\n      cpu: 200m\n      memory: 256Mi\n    max: # Konteyner i\u00e7in maksimum s\u0131n\u0131rlar\n      cpu: 1\n      memory: 1Gi\n    type: Container\n<\/pre>\n<p><\/code><\/p>\n<p>Bu limit aral\u0131\u011f\u0131n\u0131 uygulamak i\u00e7in:<\/p>\n<pre><code>\nkubectl apply -f gelistirme-limitrange.yaml\n<\/pre>\n<p><\/code><\/p>\n<p>Bu LimitRange sayesinde, \"gelistirme\" Namespace'inde olu\u015fturulan her yeni konteyner (kendi kaynak iste\u011fini\/s\u0131n\u0131r\u0131n\u0131 belirtmese bile) otomatik olarak belirli varsay\u0131lan de\u011ferlere sahip olacak ve hi\u00e7bir konteyner belirlenen maksimum de\u011ferleri a\u015famayacakt\u0131r. Bu, Resource Quota ile birlikte \u00e7al\u0131\u015farak Namespace i\u00e7indeki kaynak y\u00f6netimini \u00e7ok daha sa\u011flam hale getirir.<\/p>\n<p>Kubernetes Namespaces, Resource Quotas ve Limit Ranges'in birle\u015fimi, k\u00fcme y\u00f6neticilerine kaynaklar \u00fczerinde e\u015fsiz bir kontrol sa\u011flar. Bu sayede, farkl\u0131 ekipler veya uygulamalar k\u00fcme kaynaklar\u0131n\u0131 adil bir \u015fekilde payla\u015f\u0131rken, performans sorunlar\u0131 ve g\u00fcvenlik a\u00e7\u0131klar\u0131 minimize edilmi\u015f olur. Her bir Namespace'e \u00f6zel bu politikalar\u0131 uygulamak, Kubernetes ortam\u0131n\u0131z\u0131n hem istikrarl\u0131 hem de \u00f6l\u00e7eklenebilir kalmas\u0131n\u0131 g\u00fcvence alt\u0131na al\u0131r.<\/p>\n<h2>Vaka Analizi: B\u00fcy\u00fck Bir Kurulu\u015fta Geli\u015ftirme, Test ve \u00dcretim Ortamlar\u0131n\u0131n Namespaces ile Ayr\u0131lmas\u0131<\/h2>\n<p>Bir\u00e7ok b\u00fcy\u00fck ve orta \u00f6l\u00e7ekli kurulu\u015f, yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde birden fazla ortam (geli\u015ftirme, test, haz\u0131rl\u0131k, \u00fcretim) kullan\u0131r. Bu ortamlar\u0131n her biri, kendi i\u00e7inde izole edilmi\u015f bir yap\u0131ya sahip olmal\u0131d\u0131r. Bir tanesi \u00fczerinde yap\u0131lan bir hata veya performans d\u00fc\u015f\u00fc\u015f\u00fc, di\u011ferlerini etkilememelidir. Geleneksel olarak bu, ayr\u0131 fiziksel veya sanal sunucular kurarak, dolay\u0131s\u0131yla y\u00fcksek maliyet ve operasyonel karma\u015f\u0131kl\u0131kla sa\u011flan\u0131rd\u0131. Ancak Kubernetes Namespaces, bu soruna zarif ve verimli bir \u00e7\u00f6z\u00fcm sunar.<\/p>\n<h3>Senaryo: Finans Sekt\u00f6r\u00fcnde Bir Uygulama Ekibi<\/h3>\n<p>Hayal edelim ki, \"Fintrac\" ad\u0131nda, bankac\u0131l\u0131k ve finans sekt\u00f6r\u00fcne hizmet veren b\u00fcy\u00fck bir kurulu\u015fuz. Kurulu\u015fumuz, \"Kredi De\u011ferlendirme Sistemi\" ad\u0131nda kritik bir mikroservis tabanl\u0131 uygulama geli\u015ftiriyor. Bu uygulama, geli\u015ftirme (dev), test (test) ve \u00fcretim (prod) ortamlar\u0131nda \u00e7al\u0131\u015facak. Her ortam\u0131n kendine \u00f6zg\u00fc gereksinimleri var:<\/p>\n<ul>\n<li><strong>Geli\u015ftirme (Dev):<\/strong> Geli\u015ftiriciler kod yaz\u0131p, h\u0131zl\u0131 iterasyonlar yap\u0131yor. Yeni \u00f6zellikler test ediliyor, hatalar ay\u0131klan\u0131yor. Kaynak kullan\u0131m\u0131 esnek olmal\u0131.<\/li>\n<li><strong>Test (Test):<\/strong> Uygulama, kalibrasyon ve entegrasyon testlerinden ge\u00e7iyor. Performans ve kararl\u0131l\u0131k testleri yap\u0131l\u0131yor. Ger\u00e7ek\u00e7i verilere yak\u0131n test verileri kullan\u0131l\u0131yor.<\/li>\n<li><strong>\u00dcretim (Prod):<\/strong> Canl\u0131 kullan\u0131c\u0131lar taraf\u0131ndan kullan\u0131lan ortam. Y\u00fcksek eri\u015filebilirlik, g\u00fcvenlik ve performans kritik. Herhangi bir kesinti kabul edilemez.<\/li>\n<\/ul>\n<h3>Namespaces \u00d6ncesi Kar\u015f\u0131la\u015f\u0131lan Zorluklar:<\/h3>\n<ul>\n<li><strong>Kaynak \u00c7ak\u0131\u015fmalar\u0131:<\/strong> Her ortam i\u00e7in ayr\u0131 bir sanal k\u00fcme kurulmad\u0131\u011f\u0131nda, ayn\u0131 isimdeki servisler (\u00f6rne\u011fin \"veri-taban\u0131-servisi\") farkl\u0131 ortamlar i\u00e7in \u00e7ak\u0131\u015fma ya\u015fayabilir.<\/li>\n<li><strong>Eri\u015fim Kontrol\u00fc Zorluklar\u0131:<\/strong> Geli\u015ftiricilerin \u00fcretim ortam\u0131na yanl\u0131\u015fl\u0131kla eri\u015fmesini engellemek veya test m\u00fchendislerinin geli\u015ftirme ortam\u0131ndaki de\u011fi\u015fiklikleri etkilemesini \u00f6nlemek karma\u015f\u0131kt\u0131r.<\/li>\n<li><strong>Kaynak \u0130sraf\u0131:<\/strong> Ayr\u0131 sanal makineler veya k\u00fcmeler kurmak, donan\u0131m kaynaklar\u0131n\u0131n gereksiz yere \u00e7o\u011falmas\u0131na ve y\u00fcksek maliyetlere yol a\u00e7ar.<\/li>\n<li><strong>G\u00fcvenlik A\u00e7\u0131klar\u0131:<\/strong> Ortamlar aras\u0131 izolasyon eksikli\u011fi, bir ortamdaki g\u00fcvenlik zafiyetinin di\u011ferlerini etkilemesine neden olabilir.<\/li>\n<\/ul>\n<h3>Namespaces ile \u00c7\u00f6z\u00fcm: Ortam Ba\u015f\u0131na Bir Namespace<\/h3>\n<p>Fintrac, bu sorunlar\u0131 \u00e7\u00f6zmek i\u00e7in Kubernetes k\u00fcmesini Namespaces kullanarak \u00fc\u00e7 ana mant\u0131ksal b\u00f6l\u00fcme ay\u0131rmaya karar verir:<\/p>\n<ol>\n<li><code>kredi-dev<\/code>: Geli\u015ftirme ortam\u0131 i\u00e7in.<\/li>\n<li><code>kredi-test<\/code>: Test ortam\u0131 i\u00e7in.<\/li>\n<li><code>kredi-prod<\/code>: \u00dcretim ortam\u0131 i\u00e7in.<\/li>\n<\/ol>\n<h4>Uygulama Ad\u0131mlar\u0131 ve Faydalar\u0131:<\/h4>\n<ol>\n<li>\n        <strong>Namespace Olu\u015fturma:<\/strong> Her ortam i\u00e7in \u00f6zel bir Namespace olu\u015fturulur.<\/p>\n<pre><code>\nkubectl create namespace kredi-dev\nkubectl create namespace kredi-test\nkubectl create namespace kredi-prod\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li>\n        <strong>Kaynak Da\u011f\u0131t\u0131m\u0131:<\/strong> Kredi De\u011ferlendirme Sistemi'nin t\u00fcm mikroservisleri (API Gateway, Hesaplama Servisi, Veritaban\u0131 vb.), ilgili ortam Namespaces'ine da\u011f\u0131t\u0131l\u0131r. \u00d6rne\u011fin, geli\u015ftirme ekibi kendi kodunu <code>kredi-dev<\/code> Namespace'ine da\u011f\u0131t\u0131rken, test ekibi testlerini <code>kredi-test<\/code> \u00fczerinde yapar.<\/p>\n<pre><code>\n# credit-service-deployment.yaml (kredi-dev i\u00e7in)\napiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: credit-service\n  namespace: kredi-dev # Sadece bu Namespace'te\nspec:\n  # ...\n        <\/pre>\n<p><\/code><\/p>\n<p><strong>Fayda:<\/strong> Ayn\u0131 adl\u0131 servisler (\u00f6rne\u011fin <code>credit-service<\/code>), farkl\u0131 Namespaces'lerde \u00e7ak\u0131\u015fmadan var olabilir. Geli\u015ftiriciler kendi ortamlar\u0131nda rahat\u00e7a denemeler yapabilirken, bu denemeler di\u011fer ortamlar\u0131 etkilemez.<\/p>\n<\/li>\n<li>\n        <strong>Eri\u015fim Kontrol\u00fc (RBAC):<\/strong> Her ekibe, yaln\u0131zca kendi ortam Namespaces'inde i\u015flem yapma yetkisi verilir. \u00d6rne\u011fin:<\/p>\n<ul>\n<li>Geli\u015ftirme ekibi \u00fcyeleri, <code>kredi-dev<\/code> Namespace'i \u00fczerinde tam yetkiye sahiptir.<\/li>\n<li>Test ekibi \u00fcyeleri, <code>kredi-test<\/code> Namespace'inde Pod'lar\u0131 yeniden ba\u015flatma ve loglar\u0131 okuma yetkisine sahiptir, ancak \u00fcretim ortam\u0131na eri\u015femezler.<\/li>\n<li>\u00dcretim operasyon ekibi, <code>kredi-prod<\/code> Namespace'inde y\u00fcksek yetkiye sahipken, di\u011fer Namespaces'lere s\u0131n\u0131rl\u0131 eri\u015fimleri vard\u0131r.<\/li>\n<\/ul>\n<pre><code>\n# kredi-dev-role.yaml\napiVersion: rbac.authorization.k8s.io\/v1\nkind: Role\nmetadata:\n  name: dev-full-access\n  namespace: kredi-dev\nrules:\n  # ... tam eri\u015fim kurallar\u0131 ...\n---\n# kredi-dev-rolebinding.yaml\napiVersion: rbac.authorization.k8s.io\/v1\nkind: RoleBinding\nmetadata:\n  name: bind-dev-full-access\n  namespace: kredi-dev\nsubjects:\n- kind: User # veya ServiceAccount\/Group\n  name: dev-team-lead\n  apiGroup: rbac.authorization.k8s.io\nroleRef:\n  kind: Role\n  name: dev-full-access\n  apiGroup: rbac.authorization.k8s.io\n        <\/pre>\n<p><\/code><\/p>\n<p><strong>Fayda:<\/strong> Yanl\u0131\u015fl\u0131kla veya yetkisiz eri\u015fimden kaynaklanan g\u00fcvenlik riskleri ve operasyonel hatalar b\u00fcy\u00fck \u00f6l\u00e7\u00fcde azal\u0131r. Her ekip kendi sorumluluk alan\u0131nda \u00e7al\u0131\u015f\u0131r.<\/p>\n<\/li>\n<li>\n        <strong>Kaynak Kotalar\u0131 (Resource Quotas) ve Limit Ranges:<\/strong> Her ortama, ihtiyac\u0131na uygun kaynak kotalar\u0131 ve limit aral\u0131klar\u0131 uygulan\u0131r.<\/p>\n<ul>\n<li><code>kredi-dev<\/code>: Daha esnek kotalar, geli\u015ftiricilerin farkl\u0131 konfig\u00fcrasyonlar denemesine izin verir.<\/li>\n<li><code>kredi-test<\/code>: Belirli performans testleri i\u00e7in ayr\u0131lm\u0131\u015f sabit kaynaklar.<\/li>\n<li><code>kredi-prod<\/code>: Kesin ve optimize edilmi\u015f kotalar ile en y\u00fcksek \u00f6ncelik.<\/li>\n<\/ul>\n<pre><code>\n# kredi-prod-quota.yaml\napiVersion: v1\nkind: ResourceQuota\nmetadata:\n  name: prod-quota\n  namespace: kredi-prod\nspec:\n  hard:\n    requests.cpu: \"8\"\n    limits.cpu: \"16\"\n    requests.memory: \"16Gi\"\n    limits.memory: \"32Gi\"\n    pods: \"50\"\n        <\/pre>\n<p><\/code><\/p>\n<p><strong>Fayda:<\/strong> Bir ortamdaki kaynak t\u00fcketimi, di\u011fer ortamlar\u0131 etkilemez. Geli\u015ftirme ortam\u0131ndaki bir hata, \u00fcretim ortam\u0131n\u0131n kaynaklar\u0131n\u0131 t\u00fcketmez. Kaynaklar adil bir \u015fekilde da\u011f\u0131t\u0131l\u0131r ve maliyetler kontrol alt\u0131nda tutulur.<\/p>\n<\/li>\n<li>\n        <strong>A\u011f Politikalar\u0131 (Network Policies):<\/strong> Ortamlar aras\u0131 ileti\u015fimi s\u0131k\u0131 bir \u015fekilde kontrol etmek i\u00e7in Network Policies kullan\u0131l\u0131r. \u00d6rne\u011fin, <code>kredi-dev<\/code> Namespace'indeki Pod'lar\u0131n <code>kredi-prod<\/code> Namespace'indeki veritaban\u0131 ile direkt ileti\u015fim kurmas\u0131 engellenir.<\/p>\n<p><strong>Fayda:<\/strong> Ek bir g\u00fcvenlik katman\u0131 sa\u011flar ve ortamlar aras\u0131 istenmeyen veri ak\u0131\u015f\u0131n\u0131 \u00f6nler.<\/p>\n<\/li>\n<\/ol>\n<h3>Sonu\u00e7: Namespaces ile Esnek, G\u00fcvenli ve Verimli Ortam Y\u00f6netimi<\/h3>\n<p>Fintrac \u00f6rne\u011fi, Kubernetes Namespaces'in b\u00fcy\u00fck bir kurulu\u015fta geli\u015ftirme, test ve \u00fcretim ortamlar\u0131n\u0131 nas\u0131l etkin bir \u015fekilde ay\u0131rabilece\u011fini a\u00e7\u0131k\u00e7a g\u00f6stermektedir. Bu yakla\u015f\u0131m:<\/p>\n<ul>\n<li>Operasyonel karma\u015f\u0131kl\u0131\u011f\u0131 azalt\u0131r.<\/li>\n<li>G\u00fcvenli\u011fi art\u0131r\u0131r.<\/li>\n<li>Kaynaklar\u0131n daha verimli kullan\u0131lmas\u0131n\u0131 sa\u011flar.<\/li>\n<li>Ekiplerin kendi sorumluluk alanlar\u0131nda daha ba\u011f\u0131ms\u0131z ve \u00fcretken olmalar\u0131na olanak tan\u0131r.<\/li>\n<\/ul>\n<p>Tek bir Kubernetes k\u00fcmesi \u00fczerinde birden fazla mant\u0131ksal ortam olu\u015fturarak, hem maliyetleri d\u00fc\u015f\u00fcrmek hem de s\u00fcre\u00e7leri modernize etmek m\u00fcmk\u00fcn hale gelir. Namespaces, Kubernetes'in \u00e7ok kullan\u0131c\u0131l\u0131 ve \u00e7ok ortaml\u0131 senaryolardaki g\u00fcc\u00fcn\u00fc ortaya koyan temel bir yap\u0131d\u0131r.<\/p>\n<h2>Sonu\u00e7: Kubernetes Namespaces ile Daha D\u00fczenli ve G\u00fcvenli Bir Ortam M\u00fcmk\u00fcn m\u00fc?<\/h2>\n<p>Bu makale boyunca, Kubernetes Namespaces'in ne oldu\u011funu, neden bu kadar kritik bir rol oynad\u0131\u011f\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda bize ne gibi avantajlar sa\u011flad\u0131\u011f\u0131n\u0131 detayl\u0131 bir \u015fekilde inceledik. G\u00f6rd\u00fck ki, Namespaces sadece bir adland\u0131rma kolayl\u0131\u011f\u0131 sa\u011flamakla kalm\u0131yor, ayn\u0131 zamanda Kubernetes k\u00fcmelerinde kaynak izolasyonu, eri\u015fim kontrol\u00fc, g\u00fcvenlik ve verimli y\u00f6netim i\u00e7in vazge\u00e7ilmez bir temel olu\u015fturuyor. B\u00fcy\u00fck ve karma\u015f\u0131k ortamlardan, k\u00fc\u00e7\u00fck geli\u015ftirme ekiplerinin ihtiya\u00e7lar\u0131na kadar geni\u015f bir yelpazede, Namespaces'in sa\u011flad\u0131\u011f\u0131 faydalar yads\u0131namaz.<\/p>\n<p>\u0130ster yeni bir uygulama geli\u015ftiriyor olun, ister mevcut altyap\u0131n\u0131z\u0131 Kubernetes'e ta\u015f\u0131yor olun, Namespaces'i do\u011fru bir \u015fekilde kullanmak, operasyonel y\u00fck\u00fc \u00f6nemli \u00f6l\u00e7\u00fcde azaltacak, ekipler aras\u0131ndaki i\u015fbirli\u011fini art\u0131racak ve genel sistem g\u00fcvenli\u011fini g\u00fc\u00e7lendirecektir. Farkl\u0131 ortamlar i\u00e7in ayr\u0131 Namespaces olu\u015fturmak, her ekibe kendi \"kum havuzunu\" sa\u011flamak ve kaynaklar\u0131 adil bir \u015fekilde da\u011f\u0131tmak, Kubernetes ekosisteminin en iyi pratikleri aras\u0131nda yer al\u0131r. Unutmay\u0131n ki, d\u00fczenli ve g\u00fcvenli bir Kubernetes ortam\u0131, ba\u015far\u0131l\u0131 uygulama da\u011f\u0131t\u0131mlar\u0131n\u0131n ve s\u00fcrd\u00fcr\u00fclebilir bir DevOps k\u00fclt\u00fcr\u00fcn\u00fcn temelini olu\u015fturur. Bu nedenle, Namespaces'i sadece bir \u00f6zellik olarak de\u011fil, Kubernetes stratejinizin merkezi bir par\u00e7as\u0131 olarak benimsemeniz, uzun vadede size b\u00fcy\u00fck kazan\u00e7lar sa\u011flayacakt\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<p>Kubernetes Namespaces hakk\u0131nda akl\u0131n\u0131za tak\u0131labilecek baz\u0131 yayg\u0131n sorular ve cevaplar\u0131:<\/p>\n<h4>1. Bir Namespace'teki Pod, ba\u015fka bir Namespace'teki Pod ile ileti\u015fim kurabilir mi?<\/h4>\n<p>Evet, Namespaces aras\u0131 ileti\u015fim m\u00fcmk\u00fcnd\u00fcr ancak varsay\u0131lan olarak izole edilmi\u015flerdir. Bir Pod, farkl\u0131 bir Namespace'teki bir servise FQDN (Tam Nitelikli Alan Ad\u0131) kullanarak eri\u015febilir. \u00d6rne\u011fin: <code><service-ad\u0131>.<namespace-ad\u0131>.svc.cluster.local<\/code>. Ancak, g\u00fcvenlik i\u00e7in bu ileti\u015fimin Network Policies (A\u011f Politikalar\u0131) ile kontrol alt\u0131nda tutulmas\u0131 \u015fiddetle \u00f6nerilir.<\/p>\n<h4>2. Bir Namespace'i silersem ne olur?<\/h4>\n<p>Bir Namespace'i sildi\u011finizde, o Namespace i\u00e7indeki t\u00fcm kaynaklar (Pod'lar, Deployment'lar, Servisler, ConfigMap'ler, Secret'lar, vb.) geri d\u00f6n\u00fclemez bir \u015fekilde silinir. Bu i\u015flem geri al\u0131namaz, bu y\u00fczden dikkatli olunmal\u0131d\u0131r. Silme i\u015flemi, Namespace'in b\u00fcy\u00fckl\u00fc\u011f\u00fcne ve i\u00e7indeki kaynaklar\u0131n say\u0131s\u0131na ba\u011fl\u0131 olarak biraz zaman alabilir.<\/p>\n<h4>3. Her uygulama kendi Namespace'ine mi sahip olmal\u0131?<\/h4>\n<p>Her uygulaman\u0131n kendi \u00f6zel Namespace'ine sahip olmas\u0131 en iyi pratiklerden biridir, \u00f6zellikle birden fazla uygulaman\u0131z veya mikroservis grubunuz varsa. Bu, adland\u0131rma \u00e7ak\u0131\u015fmalar\u0131n\u0131 \u00f6nler, kaynaklar\u0131 daha kolay y\u00f6netmenizi sa\u011flar, eri\u015fim kontrol\u00fcn\u00fc basitle\u015ftirir ve bir uygulaman\u0131n di\u011ferini etkilemesini engeller. Geli\u015ftirme, test ve \u00fcretim ortamlar\u0131n\u0131 ay\u0131rmak i\u00e7in de ayr\u0131 Namespaces kullanmak yayg\u0131n bir yakla\u015f\u0131md\u0131r.<\/p>\n<h4>4. Namespaces bir g\u00fcvenlik s\u0131n\u0131r\u0131 m\u0131d\u0131r?<\/h4>\n<p>Evet, Namespaces g\u00fc\u00e7l\u00fc bir mant\u0131ksal g\u00fcvenlik s\u0131n\u0131r\u0131 sa\u011flar. RBAC (Rol Tabanl\u0131 Eri\u015fim Kontrol\u00fc) ile birle\u015ftirildi\u011finde, kullan\u0131c\u0131lar\u0131n veya hizmet hesaplar\u0131n\u0131n yaln\u0131zca belirli bir Namespace'teki kaynaklara eri\u015fmesini veya bunlar\u0131 y\u00f6netmesini sa\u011flayabilirsiniz. Ancak Namespaces tek ba\u015f\u0131na fiziksel izolasyon sa\u011flamaz; ek g\u00fcvenlik katmanlar\u0131 (\u00f6rne\u011fin Network Policies) ile desteklenmelidirler.<\/p>\n<h4>5. \"default\" Namespace'i ne i\u015fe yarar?<\/h4>\n<p><code>default<\/code> Namespace'i, Kubernetes k\u00fcmesi kuruldu\u011funda otomatik olarak olu\u015fturulan ve bir Namespace belirtilmedi\u011finde t\u00fcm kaynaklar\u0131n varsay\u0131lan olarak da\u011f\u0131t\u0131ld\u0131\u011f\u0131 Namespace'tir. K\u00fc\u00e7\u00fck \u00f6l\u00e7ekli projeler veya h\u0131zl\u0131 denemeler i\u00e7in kullan\u0131\u015fl\u0131 olabilir. Ancak, \u00fcretim ortamlar\u0131nda veya \u00e7ok kullan\u0131c\u0131l\u0131 k\u00fcmelerde, kaynaklar\u0131 daha iyi organize etmek ve izole etmek i\u00e7in kendi \u00f6zel Namespaces'lerinizi olu\u015fturman\u0131z ve kullanman\u0131z \u00f6nerilir.<\/p>\n","protected":false},"excerpt":{"rendered":"Kubernetes Namespaces: Kaynak Y\u00f6netimi ve \u0130zolasyonun Temel Ta\u015f\u0131 Modern uygulama geli\u015ftirme s\u00fcre\u00e7lerinde, \u00f6zellikle mikroservis mimarileri ve bulut tabanl\u0131&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-33511","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>Kubernetes Ortamlar\u0131nda Neden \u0130zolasyon ve D\u00fczenleme \u0130htiyac\u0131 Duyar\u0131z?<\/title>\n<meta name=\"description\" content=\"Modern uygulama geli\u015ftirme s\u00fcre\u00e7lerinde, \u00f6zellikle mikroservis mimarileri ve bulut tabanl\u0131 \u00e7\u00f6z\u00fcmler yayg\u0131nla\u015ft\u0131k\u00e7a, kaynak y\u00f6netimi ve izolasyon kritik bir hal alm\u0131\u015ft\u0131r. Peki, onlarca farkl\u0131 uygulaman\u0131n, y\u00fczlerce hatta binlerce konteynerin ayn\u0131 Kubernetes k\u00fcmesi \u00fczerinde sorunsuz bir \u015fekilde bir arada \u00e7al\u0131\u015fmas\u0131n\u0131 nas\u0131l sa\u011flar\u0131z? \u0130\u015fte bu noktada Kubernetes Namespaces devreye giriyor. Bu makalede, Namespaces&#039;in ne oldu\u011funu, neden bu kadar \u00f6nemli oldu\u011funu ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda bize nas\u0131l avantajlar sa\u011flad\u0131\u011f\u0131n\u0131 ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. E\u011fer Kubernetes ortam\u0131n\u0131z\u0131 daha d\u00fczenli, g\u00fcvenli ve verimli hale getirmek istiyorsan\u0131z, do\u011fru yerdesiniz.\" \/>\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-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kubernetes Ortamlar\u0131nda Neden \u0130zolasyon ve D\u00fczenleme \u0130htiyac\u0131 Duyar\u0131z?\" \/>\n<meta property=\"og:description\" content=\"Modern uygulama geli\u015ftirme s\u00fcre\u00e7lerinde, \u00f6zellikle mikroservis mimarileri ve bulut tabanl\u0131 \u00e7\u00f6z\u00fcmler yayg\u0131nla\u015ft\u0131k\u00e7a, kaynak y\u00f6netimi ve izolasyon kritik bir hal alm\u0131\u015ft\u0131r. Peki, onlarca farkl\u0131 uygulaman\u0131n, y\u00fczlerce hatta binlerce konteynerin ayn\u0131 Kubernetes k\u00fcmesi \u00fczerinde sorunsuz bir \u015fekilde bir arada \u00e7al\u0131\u015fmas\u0131n\u0131 nas\u0131l sa\u011flar\u0131z? \u0130\u015fte bu noktada Kubernetes Namespaces devreye giriyor. Bu makalede, Namespaces&#039;in ne oldu\u011funu, neden bu kadar \u00f6nemli oldu\u011funu ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda bize nas\u0131l avantajlar sa\u011flad\u0131\u011f\u0131n\u0131 ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. E\u011fer Kubernetes ortam\u0131n\u0131z\u0131 daha d\u00fczenli, g\u00fcvenli ve verimli hale getirmek istiyorsan\u0131z, do\u011fru yerdesiniz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-03T17:32:28+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=\"27 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Kubernetes Ortamlar\u0131nda Neden \u0130zolasyon ve D\u00fczenleme \u0130htiyac\u0131 Duyar\u0131z?\",\"datePublished\":\"2025-11-03T17:32:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/\"},\"wordCount\":4924,\"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\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/\",\"name\":\"Kubernetes Ortamlar\u0131nda Neden \u0130zolasyon ve D\u00fczenleme \u0130htiyac\u0131 Duyar\u0131z?\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-03T17:32:28+00:00\",\"description\":\"Modern uygulama geli\u015ftirme s\u00fcre\u00e7lerinde, \u00f6zellikle mikroservis mimarileri ve bulut tabanl\u0131 \u00e7\u00f6z\u00fcmler yayg\u0131nla\u015ft\u0131k\u00e7a, kaynak y\u00f6netimi ve izolasyon kritik bir hal alm\u0131\u015ft\u0131r. Peki, onlarca farkl\u0131 uygulaman\u0131n, y\u00fczlerce hatta binlerce konteynerin ayn\u0131 Kubernetes k\u00fcmesi \u00fczerinde sorunsuz bir \u015fekilde bir arada \u00e7al\u0131\u015fmas\u0131n\u0131 nas\u0131l sa\u011flar\u0131z? \u0130\u015fte bu noktada Kubernetes Namespaces devreye giriyor. Bu makalede, Namespaces'in ne oldu\u011funu, neden bu kadar \u00f6nemli oldu\u011funu ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda bize nas\u0131l avantajlar sa\u011flad\u0131\u011f\u0131n\u0131 ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. E\u011fer Kubernetes ortam\u0131n\u0131z\u0131 daha d\u00fczenli, g\u00fcvenli ve verimli hale getirmek istiyorsan\u0131z, do\u011fru yerdesiniz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kubernetes Ortamlar\u0131nda Neden \u0130zolasyon ve D\u00fczenleme \u0130htiyac\u0131 Duyar\u0131z?\"}]},{\"@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 Ortamlar\u0131nda Neden \u0130zolasyon ve D\u00fczenleme \u0130htiyac\u0131 Duyar\u0131z?","description":"Modern uygulama geli\u015ftirme s\u00fcre\u00e7lerinde, \u00f6zellikle mikroservis mimarileri ve bulut tabanl\u0131 \u00e7\u00f6z\u00fcmler yayg\u0131nla\u015ft\u0131k\u00e7a, kaynak y\u00f6netimi ve izolasyon kritik bir hal alm\u0131\u015ft\u0131r. Peki, onlarca farkl\u0131 uygulaman\u0131n, y\u00fczlerce hatta binlerce konteynerin ayn\u0131 Kubernetes k\u00fcmesi \u00fczerinde sorunsuz bir \u015fekilde bir arada \u00e7al\u0131\u015fmas\u0131n\u0131 nas\u0131l sa\u011flar\u0131z? \u0130\u015fte bu noktada Kubernetes Namespaces devreye giriyor. Bu makalede, Namespaces'in ne oldu\u011funu, neden bu kadar \u00f6nemli oldu\u011funu ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda bize nas\u0131l avantajlar sa\u011flad\u0131\u011f\u0131n\u0131 ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. E\u011fer Kubernetes ortam\u0131n\u0131z\u0131 daha d\u00fczenli, g\u00fcvenli ve verimli hale getirmek istiyorsan\u0131z, do\u011fru yerdesiniz.","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-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/","og_locale":"tr_TR","og_type":"article","og_title":"Kubernetes Ortamlar\u0131nda Neden \u0130zolasyon ve D\u00fczenleme \u0130htiyac\u0131 Duyar\u0131z?","og_description":"Modern uygulama geli\u015ftirme s\u00fcre\u00e7lerinde, \u00f6zellikle mikroservis mimarileri ve bulut tabanl\u0131 \u00e7\u00f6z\u00fcmler yayg\u0131nla\u015ft\u0131k\u00e7a, kaynak y\u00f6netimi ve izolasyon kritik bir hal alm\u0131\u015ft\u0131r. Peki, onlarca farkl\u0131 uygulaman\u0131n, y\u00fczlerce hatta binlerce konteynerin ayn\u0131 Kubernetes k\u00fcmesi \u00fczerinde sorunsuz bir \u015fekilde bir arada \u00e7al\u0131\u015fmas\u0131n\u0131 nas\u0131l sa\u011flar\u0131z? \u0130\u015fte bu noktada Kubernetes Namespaces devreye giriyor. Bu makalede, Namespaces'in ne oldu\u011funu, neden bu kadar \u00f6nemli oldu\u011funu ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda bize nas\u0131l avantajlar sa\u011flad\u0131\u011f\u0131n\u0131 ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. E\u011fer Kubernetes ortam\u0131n\u0131z\u0131 daha d\u00fczenli, g\u00fcvenli ve verimli hale getirmek istiyorsan\u0131z, do\u011fru yerdesiniz.","og_url":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-03T17:32:28+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"27 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Kubernetes Ortamlar\u0131nda Neden \u0130zolasyon ve D\u00fczenleme \u0130htiyac\u0131 Duyar\u0131z?","datePublished":"2025-11-03T17:32:28+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/"},"wordCount":4924,"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\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/","url":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/","name":"Kubernetes Ortamlar\u0131nda Neden \u0130zolasyon ve D\u00fczenleme \u0130htiyac\u0131 Duyar\u0131z?","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-03T17:32:28+00:00","description":"Modern uygulama geli\u015ftirme s\u00fcre\u00e7lerinde, \u00f6zellikle mikroservis mimarileri ve bulut tabanl\u0131 \u00e7\u00f6z\u00fcmler yayg\u0131nla\u015ft\u0131k\u00e7a, kaynak y\u00f6netimi ve izolasyon kritik bir hal alm\u0131\u015ft\u0131r. Peki, onlarca farkl\u0131 uygulaman\u0131n, y\u00fczlerce hatta binlerce konteynerin ayn\u0131 Kubernetes k\u00fcmesi \u00fczerinde sorunsuz bir \u015fekilde bir arada \u00e7al\u0131\u015fmas\u0131n\u0131 nas\u0131l sa\u011flar\u0131z? \u0130\u015fte bu noktada Kubernetes Namespaces devreye giriyor. Bu makalede, Namespaces'in ne oldu\u011funu, neden bu kadar \u00f6nemli oldu\u011funu ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda bize nas\u0131l avantajlar sa\u011flad\u0131\u011f\u0131n\u0131 ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. E\u011fer Kubernetes ortam\u0131n\u0131z\u0131 daha d\u00fczenli, g\u00fcvenli ve verimli hale getirmek istiyorsan\u0131z, do\u011fru yerdesiniz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-ortamlarinda-neden-izolasyon-ve-duzenleme-ihtiyaci-duyariz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Kubernetes Ortamlar\u0131nda Neden \u0130zolasyon ve D\u00fczenleme \u0130htiyac\u0131 Duyar\u0131z?"}]},{"@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\/33511","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=33511"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33511\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33511"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33511"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33511"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}