{"id":31645,"date":"2025-10-12T08:01:30","date_gmt":"2025-10-12T05:01:30","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/"},"modified":"2025-10-12T08:01:30","modified_gmt":"2025-10-12T05:01:30","slug":"gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/","title":{"rendered":"GKE \u00d6zel K\u00fcme Olu\u015fturma ve Uygulama Da\u011f\u0131t\u0131m\u0131: Ad\u0131m Ad\u0131m Rehber"},"content":{"rendered":"<p><body><\/p>\n<p>GKE \u00f6zel k\u00fcme nedir ve neden bu kadar \u00f6nemli? Cloud NAT ile g\u00fcvenli ve izole bir GKE \u00f6zel k\u00fcme nas\u0131l olu\u015fturulur, uygulamalar nas\u0131l da\u011f\u0131t\u0131l\u0131r ve a\u011f \u00e7\u0131k\u0131\u015f\u0131 nas\u0131l y\u00f6netilir? Bu kapsaml\u0131 rehberde ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, bulut tabanl\u0131 uygulamalar i\u015f s\u00fcre\u00e7lerinin kalbinde yer al\u0131yor. Bu uygulamalar\u0131 y\u00f6netmek i\u00e7in Kubernetes gibi orkestrasyon ara\u00e7lar\u0131, \u00f6zellikle de Google Kubernetes Engine (GKE) gibi tam y\u00f6netilen hizmetler, geli\u015ftiriciler ve operasyon ekipleri i\u00e7in vazge\u00e7ilmez hale geldi. Ancak, h\u0131zla b\u00fcy\u00fcyen bu ekosistemde g\u00fcvenlik, \u00f6l\u00e7eklenebilirlik ve uyumluluk konular\u0131 her zaman \u00f6ncelikli olmaya devam ediyor. \u00d6zellikle finans, sa\u011fl\u0131k veya devlet gibi s\u0131k\u0131 d\u00fczenlemelere tabi sekt\u00f6rlerde faaliyet g\u00f6steren kurulu\u015flar i\u00e7in, uygulamalar\u0131n a\u011f izolasyonu hayati bir \u00f6neme sahiptir. Peki, GKE&#8217;nin sa\u011flad\u0131\u011f\u0131 t\u00fcm avantajlardan yararlan\u0131rken, ayn\u0131 zamanda en \u00fcst d\u00fczeyde a\u011f g\u00fcvenli\u011fini nas\u0131l sa\u011flayabiliriz? \u0130\u015fte tam da bu noktada, GKE \u00f6zel k\u00fcmeler ve Cloud NAT kombinasyonu devreye giriyor.<\/p>\n<p>Geleneksel olarak, bir Kubernetes k\u00fcmesindeki d\u00fc\u011f\u00fcmlerin (VM&#8217;ler) internete eri\u015fimi genellikle genel IP adresleri arac\u0131l\u0131\u011f\u0131yla sa\u011flan\u0131r. Bu yakla\u015f\u0131m, basit da\u011f\u0131t\u0131mlar i\u00e7in uygun olsa da, potansiyel g\u00fcvenlik risklerini de beraberinde getirir. Herhangi bir d\u0131\u015far\u0131dan eri\u015filebilir IP adresi, k\u00f6t\u00fc niyetli sald\u0131rganlar i\u00e7in potansiyel bir hedef anlam\u0131na gelir. Bu nedenle, bir\u00e7ok kurum, uygulamalar\u0131n\u0131 yaln\u0131zca i\u00e7 a\u011flar\u0131ndan eri\u015filebilir olacak \u015fekilde, yani genel IP adresleri olmadan \u00e7al\u0131\u015ft\u0131rmay\u0131 tercih eder. Ancak, d\u00fc\u011f\u00fcmlerin genel IP&#8217;si olmad\u0131\u011f\u0131nda, bu d\u00fc\u011f\u00fcmlerin internetten yaz\u0131l\u0131m g\u00fcncellemelerini \u00e7ekmesi, Docker imajlar\u0131n\u0131 indirmesi veya harici API&#8217;lere ba\u011flanmas\u0131 gibi temel i\u015flevleri yerine getirmesi imkans\u0131z hale gelir. Bu paradoksu \u00e7\u00f6zmek i\u00e7in Google Cloud, GKE \u00f6zel k\u00fcmeler ile Cloud NAT hizmetini m\u00fckemmel bir uyum i\u00e7inde sunar. Bu ikili, d\u00fc\u011f\u00fcmlerinize genel IP adresi atamadan, g\u00fcvenli ve kontroll\u00fc bir \u015fekilde internete \u00e7\u0131k\u0131\u015f imkan\u0131 sa\u011flar.<\/p>\n<p>Bu makale boyunca, GKE \u00f6zel k\u00fcme mimarisinin temel prensiplerinden ba\u015flayarak, neden bu kadar \u00f6nemli oldu\u011funu a\u00e7\u0131klayaca\u011f\u0131z. Ard\u0131ndan, ad\u0131m ad\u0131m bir GKE \u00f6zel k\u00fcme nas\u0131l olu\u015fturulur, bu k\u00fcmeye Cloud NAT nas\u0131l entegre edilir ve son olarak bu g\u00fcvenli ortama bir uygulama nas\u0131l da\u011f\u0131t\u0131l\u0131r, pratik \u00f6rneklerle g\u00f6sterece\u011fiz. Amac\u0131m\u0131z, ister buluta yeni ba\u015flayan biri olun ister deneyimli bir DevOps m\u00fchendisi, bu g\u00fc\u00e7l\u00fc kombinasyonu kendi projelerinizde ba\u015far\u0131yla uygulayabilmeniz i\u00e7in size kapsaml\u0131 ve anla\u015f\u0131l\u0131r bir rehber sunmakt\u0131r. G\u00fcvenli\u011fi birinci \u00f6ncelik haline getirirken, uygulamalar\u0131n\u0131z\u0131n internet eri\u015fimini ak\u0131ll\u0131ca y\u00f6netmenin kap\u0131lar\u0131n\u0131 aralayaca\u011f\u0131z. \u00d6rne\u011fin, bir bankan\u0131n m\u00fc\u015fteri verilerini i\u015fleyen mikro hizmetlerinin, hi\u00e7bir \u015fekilde do\u011frudan internete a\u00e7\u0131k olmadan, ancak gerekli g\u00fcncellemeleri alabilmesi ve \u00fc\u00e7\u00fcnc\u00fc taraf \u00f6deme API&#8217;lerine g\u00fcvenle eri\u015febilmesi gibi senaryolar, bu mimarinin neden bu kadar kritik oldu\u011funu a\u00e7\u0131k\u00e7a ortaya koymaktad\u0131r.<\/p>\n<h2>Temel Kavramlar: GKE \u00d6zel K\u00fcme ve Cloud NAT Nedir, Neden Birlikte Kullan\u0131l\u0131r?<\/h2>\n<p>GKE \u00f6zel k\u00fcmeler ve Cloud NAT, modern bulut altyap\u0131lar\u0131nda g\u00fcvenlik ve a\u011f y\u00f6netimi a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahip iki ayr\u0131 ancak birbiriyle s\u0131k\u0131ca entegre \u00e7al\u0131\u015fan hizmettir. Bu b\u00f6l\u00fcmde, her birinin ne anlama geldi\u011fini, nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve neden genellikle birlikte kullan\u0131ld\u0131klar\u0131n\u0131 detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Bu kavramlar\u0131 anlamak, g\u00fcvenli ve verimli bir GKE altyap\u0131s\u0131 kurmak i\u00e7in temel olu\u015fturacakt\u0131r.<\/p>\n<h3>GKE \u00d6zel K\u00fcme Nedir ve Ne \u0130\u015fe Yarar?<\/h3>\n<p>Google Kubernetes Engine (GKE) \u00f6zel k\u00fcme, ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi, d\u00fc\u011f\u00fcmlerinin (Kubernetes i\u015f y\u00fcklerini bar\u0131nd\u0131ran sanal makineler) yaln\u0131zca \u00f6zel (dahili) IP adreslerine sahip oldu\u011fu bir Kubernetes k\u00fcmesidir. Bu, d\u00fc\u011f\u00fcmlerin internetten do\u011frudan eri\u015filemez oldu\u011fu anlam\u0131na gelir. Bir GKE \u00f6zel k\u00fcmesi genellikle iki ana bile\u015fenden olu\u015fur:<\/p>\n<ul>\n<li><strong>Kontrol D\u00fczlemi (Master):<\/strong> K\u00fcmenin beyni gibidir. Kubernetes API sunucusu, zamanlay\u0131c\u0131, kontrol\u00f6r y\u00f6neticileri gibi bile\u015fenleri bar\u0131nd\u0131r\u0131r. \u00d6zel k\u00fcmelerde kontrol d\u00fczleminin bir k\u0131sm\u0131 Google taraf\u0131ndan y\u00f6netilir ve siz bu bile\u015fenlere eri\u015femezsiniz. Ancak, kontrol d\u00fczlemi ile d\u00fc\u011f\u00fcmleriniz aras\u0131ndaki ileti\u015fim tamamen \u00f6zel bir a\u011f \u00fczerinden ger\u00e7ekle\u015fir. Kontrol d\u00fczlemi i\u00e7in iki farkl\u0131 eri\u015fim t\u00fcr\u00fc mevcuttur:\n<ul>\n<li><strong>Genel U\u00e7 Nokta (Public Endpoint):<\/strong> Kontrol d\u00fczlemi, internetten eri\u015filebilir bir genel IP adresine sahiptir, ancak bu eri\u015fim &#8220;Master Authorized Networks&#8221; \u00f6zelli\u011fi ile belirli IP aral\u0131klar\u0131yla k\u0131s\u0131tlanabilir. Bu, geli\u015ftiricilerin VPN veya bastion host olmadan k\u00fcme API&#8217;sine eri\u015fmesine olanak tan\u0131r.<\/li>\n<li><strong>\u00d6zel U\u00e7 Nokta (Private Endpoint):<\/strong> Kontrol d\u00fczlemi, yaln\u0131zca \u00f6zel IP adreslerine sahiptir ve yaln\u0131zca ayn\u0131 VPC a\u011f\u0131 i\u00e7inden eri\u015filebilir. Bu, en y\u00fcksek g\u00fcvenlik seviyesini sa\u011flar ve API eri\u015fimi i\u00e7in genellikle bir VPN veya Cloud Interconnect ba\u011flant\u0131s\u0131 gerektirir.<\/li>\n<\/ul>\n<\/li>\n<li><strong>D\u00fc\u011f\u00fcmler (Nodes):<\/strong> Uygulama kapsay\u0131c\u0131lar\u0131n\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 sanal makinelerdir. \u00d6zel k\u00fcmelerde, bu d\u00fc\u011f\u00fcmlerin tamam\u0131 yaln\u0131zca i\u00e7 IP adreslerine sahiptir. Bu, d\u00fc\u011f\u00fcmlere d\u0131\u015far\u0131dan do\u011frudan eri\u015filemeyece\u011fi anlam\u0131na gelir ve potansiyel sald\u0131r\u0131 y\u00fczeyini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r.<\/li>\n<\/ul>\n<p><strong>GKE \u00d6zel K\u00fcmelerin Avantajlar\u0131:<\/strong><\/p>\n<ul>\n<li><strong>Geli\u015fmi\u015f G\u00fcvenlik:<\/strong> D\u00fc\u011f\u00fcmlerin genel IP adresine sahip olmamas\u0131, sald\u0131rganlar\u0131n k\u00fcmenize do\u011frudan eri\u015fme olas\u0131l\u0131\u011f\u0131n\u0131 ortadan kald\u0131r\u0131r.<\/li>\n<li><strong>A\u011f \u0130zolasyonu:<\/strong> K\u00fcmeniz, di\u011fer a\u011flardan izole bir \u015fekilde \u00e7al\u0131\u015f\u0131r, bu da hassas verileri i\u015fleyen uygulamalar i\u00e7in idealdir.<\/li>\n<li><strong>Uyum:<\/strong> PCI DSS, HIPAA gibi kat\u0131 uyumluluk standartlar\u0131na sahip sekt\u00f6rler i\u00e7in genellikle bir gerekliliktir.<\/li>\n<li><strong>Kontroll\u00fc \u00c7\u0131k\u0131\u015f:<\/strong> D\u00fc\u011f\u00fcmlerin d\u0131\u015far\u0131ya eri\u015fimi yaln\u0131zca sizin belirledi\u011finiz y\u00f6ntemlerle (\u00f6rne\u011fin Cloud NAT) ger\u00e7ekle\u015fir, bu da giden trafi\u011fi \u00fczerinde tam kontrol sa\u011flar.<\/li>\n<\/ul>\n<h3>Cloud NAT (Network Address Translation) Nedir ve Ne \u0130\u015fe Yarar?<\/h3>\n<p>Cloud NAT (A\u011f Adresi \u00c7evirisi), Google Cloud Platform&#8217;da genel IP adresine sahip olmayan sanal makinelerin (bizim durumumuzda GKE d\u00fc\u011f\u00fcmleri) g\u00fcvenli bir \u015fekilde internete \u00e7\u0131k\u0131\u015f yapmas\u0131n\u0131 sa\u011flayan bir hizmettir. Temel olarak, dahili IP adreslerine sahip kaynaklar\u0131n internet \u00fczerindeki harici hedeflerle ileti\u015fim kurabilmesi i\u00e7in bu kaynaklar\u0131n dahili IP adreslerini, NAT ge\u00e7idi \u00fczerinden atanm\u0131\u015f genel IP adreslerine \u00e7evirir.<\/p>\n<p><strong>Cloud NAT&#8217;\u0131n \u00c7al\u0131\u015fma Prensibi:<\/strong><\/p>\n<ol>\n<li>GKE d\u00fc\u011f\u00fcm\u00fcn\u00fcz gibi dahili bir VM, internetteki bir kayna\u011fa (\u00f6rne\u011fin bir yaz\u0131l\u0131m deposu veya Docker Hub) ba\u011flanmak ister.<\/li>\n<li>Bu istek, VPC a\u011f\u0131n\u0131zdaki Cloud Router taraf\u0131ndan y\u00f6netilen Cloud NAT ge\u00e7idine y\u00f6nlendirilir.<\/li>\n<li>Cloud NAT, iste\u011fin kaynak IP adresini (d\u00fc\u011f\u00fcm\u00fcn\u00fcz\u00fcn dahili IP&#8217;si) kendi havuzundan bir genel IP adresine \u00e7evirir.<\/li>\n<li>\u0130stek, art\u0131k Cloud NAT&#8217;\u0131n genel IP adresiyle internete g\u00f6nderilir.<\/li>\n<li>Yan\u0131t d\u00f6nd\u00fc\u011f\u00fcnde, Cloud NAT bu genel IP adresini kullanarak yan\u0131t\u0131 tekrar d\u00fc\u011f\u00fcm\u00fcn\u00fcz\u00fcn dahili IP adresine \u00e7evirir ve d\u00fc\u011f\u00fcme iletir.<\/li>\n<\/ol>\n<p><strong>Cloud NAT&#8217;\u0131n Avantajlar\u0131:<\/strong><\/p>\n<ul>\n<li><strong>Daha Az Genel IP:<\/strong> Tek bir Cloud NAT ge\u00e7idi, birden fazla dahili VM i\u00e7in internet eri\u015fimi sa\u011flayabilir, bu da genel IP adreslerinin verimli kullan\u0131lmas\u0131n\u0131 sa\u011flar ve maliyetleri d\u00fc\u015f\u00fcr\u00fcr.<\/li>\n<li><strong>Geli\u015ftirilmi\u015f G\u00fcvenlik:<\/strong> VM&#8217;lerinize genel IP ataman\u0131za gerek kalmaz, bu da sald\u0131r\u0131 y\u00fczeyini azalt\u0131r.<\/li>\n<li><strong>Y\u00fcksek Eri\u015filebilirlik ve \u00d6l\u00e7eklenebilirlik:<\/strong> Cloud NAT, tam y\u00f6netilen bir hizmet oldu\u011fu i\u00e7in y\u00fcksek eri\u015filebilirlik ve performans sunar.<\/li>\n<li><strong>Kolay Y\u00f6netim:<\/strong> Karma\u015f\u0131k NAT kurallar\u0131 yap\u0131land\u0131rman\u0131za gerek kalmaz. Sadece hangi alt a\u011flar i\u00e7in NAT hizmeti verece\u011fini belirtmeniz yeterlidir.<\/li>\n<\/ul>\n<h3>Neden GKE \u00d6zel K\u00fcmeler ve Cloud NAT Birlikte Kullan\u0131l\u0131r?<\/h3>\n<p>GKE \u00f6zel k\u00fcmeler ve Cloud NAT&#8217;\u0131n birlikte kullan\u0131lmas\u0131, birbirlerinin eksikliklerini gideren ve g\u00fc\u00e7l\u00fc bir sinerji olu\u015fturan mant\u0131kl\u0131 bir kombinasyondur. \u00d6zel k\u00fcmelerin g\u00fcvenlik faydalar\u0131 g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, d\u00fc\u011f\u00fcmlerin internet eri\u015fimi i\u00e7in bir mekanizmaya ihtiya\u00e7 duymalar\u0131 ka\u00e7\u0131n\u0131lmazd\u0131r. \u0130\u015fte bu noktada Cloud NAT devreye girer:<\/p>\n<ul>\n<li><strong>G\u00fcvenlik ve \u0130\u015flevsellik Dengesi:<\/strong> \u00d6zel k\u00fcme, d\u00fc\u011f\u00fcmlerin do\u011frudan internetten eri\u015fimini engellerken, Cloud NAT bu d\u00fc\u011f\u00fcmlerin internete kontroll\u00fc bir \u015fekilde \u00e7\u0131k\u0131\u015f yapmas\u0131na olanak tan\u0131r. B\u00f6ylece, d\u00fc\u011f\u00fcmler Docker imajlar\u0131n\u0131 \u00e7ekebilir, i\u015fletim sistemi g\u00fcncellemelerini alabilir, harici ba\u011f\u0131ml\u0131l\u0131klara eri\u015febilir ve izleme\/telemetri verilerini bulut hizmetlerine g\u00f6nderebilirler.<\/li>\n<li><strong>Sald\u0131r\u0131 Y\u00fczeyini Azaltma:<\/strong> Her bir d\u00fc\u011f\u00fcme ayr\u0131 ayr\u0131 genel IP adresi atamak yerine, t\u00fcm internet \u00e7\u0131k\u0131\u015f trafi\u011fi tek bir Cloud NAT ge\u00e7idi \u00fczerinden ge\u00e7er. Bu, y\u00f6netilmesi gereken potansiyel giri\u015f noktalar\u0131n\u0131n say\u0131s\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r.<\/li>\n<li><strong>Uyumluluk Gereksinimleri:<\/strong> Bir\u00e7ok d\u00fczenleyici \u00e7er\u00e7eve, hassas verileri i\u015fleyen sistemlerin genel internete a\u00e7\u0131k olmamas\u0131n\u0131 gerektirir. \u00d6zel k\u00fcmeler bu gereksinimi kar\u015f\u0131larken, Cloud NAT k\u00fcmenin operasyonel ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131lamaya devam etmesini sa\u011flar.<\/li>\n<\/ul>\n<div class=\"expert-tip\">\n  <strong>Uzman \u0130pucu:<\/strong> Cloud NAT ile birlikte g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131 (firewall rules) kullanarak, k\u00fcmenizdeki d\u00fc\u011f\u00fcmlerin internete \u00e7\u0131k\u0131\u015f trafi\u011fini daha da k\u0131s\u0131tlayabilirsiniz. \u00d6rne\u011fin, yaln\u0131zca belirli portlara veya IP adreslerine giden trafi\u011fe izin verebilirsiniz. Bu, g\u00fcvenlik duru\u015funuzu \u00f6nemli \u00f6l\u00e7\u00fcde g\u00fc\u00e7lendirecektir.\n<\/div>\n<p>K\u0131sacas\u0131, GKE \u00f6zel k\u00fcme, uygulama \u00e7al\u0131\u015ft\u0131rma ortam\u0131n\u0131z\u0131n a\u011f g\u00fcvenli\u011fini en \u00fcst d\u00fczeye \u00e7\u0131kar\u0131rken, Cloud NAT bu g\u00fcvenli ortam\u0131n d\u0131\u015f d\u00fcnya ile kontroll\u00fc ve g\u00fcvenli bir \u015fekilde etkile\u015fim kurmas\u0131n\u0131 sa\u011flayan k\u00f6pr\u00fc g\u00f6revi g\u00f6r\u00fcr. Bu entegrasyon, modern ve g\u00fcvenli bulut mimarileri i\u00e7in alt\u0131n standartlardan biridir.<\/p>\n<h2>Ad\u0131m Ad\u0131m Kurulum: GKE \u00d6zel K\u00fcme ve Cloud NAT Altyap\u0131s\u0131 Nas\u0131l Olu\u015fturulur?<\/h2>\n<p>\u015eimdi teoriden prati\u011fe ge\u00e7me zaman\u0131! Bu b\u00f6l\u00fcmde, Google Cloud Platform \u00fczerinde s\u0131f\u0131rdan bir GKE \u00f6zel k\u00fcme ve ona entegre Cloud NAT altyap\u0131s\u0131 olu\u015fturma s\u00fcrecini ad\u0131m ad\u0131m ele alaca\u011f\u0131z. Bu ad\u0131mlar\u0131 takip ederek kendi g\u00fcvenli ve izole Kubernetes ortam\u0131n\u0131z\u0131 kurabileceksiniz.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>Ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131 yerine getirdi\u011finizden emin olun:<\/p>\n<ul>\n<li>Bir Google Cloud Projesi ve bu projede faturaland\u0131rman\u0131n etkinle\u015ftirilmi\u015f olmas\u0131.<\/li>\n<li><code>gcloud<\/code> CLI&#8217;nin yerel makinenize kurulmu\u015f ve yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131.<\/li>\n<li>Gerekli izinlere sahip bir kullan\u0131c\u0131 hesab\u0131n\u0131z\u0131n olmas\u0131 (\u00f6rne\u011fin, Project Editor rol\u00fc veya \u00f6zel rollerle <code>compute.*<\/code> ve <code>container.*<\/code> izinleri).<\/li>\n<\/ul>\n<h3>Ad\u0131m 1: VPC A\u011f\u0131 ve Alt A\u011flar\u0131 Olu\u015fturma<\/h3>\n<p>GKE \u00f6zel k\u00fcmeniz, \u00f6zel bir VPC a\u011f\u0131 \u00fczerinde \u00e7al\u0131\u015facakt\u0131r. Bu a\u011f i\u00e7in d\u00fc\u011f\u00fcmlerin, Pod&#8217;lar\u0131n ve Service&#8217;lerin kullanaca\u011f\u0131 IP aral\u0131klar\u0131n\u0131 belirlememiz gerekmektedir.<\/p>\n<p>\u00d6ncelikle bir VPC a\u011f\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">\ngcloud compute networks create my-private-gke-vpc \\\n    --subnet-mode=custom\n<\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi bu VPC a\u011f\u0131 i\u00e7inde GKE d\u00fc\u011f\u00fcmleri i\u00e7in birincil alt a\u011f ve Pod'lar ile Service'ler i\u00e7in ikincil IP aral\u0131klar\u0131 i\u00e7eren bir alt a\u011f olu\u015ftural\u0131m. Bu ikincil IP aral\u0131klar\u0131, GKE'nin VPC native yeteneklerini kullanarak Pod'lara ve Service'lere dahili IP'ler atamas\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">\ngcloud compute networks subnets create gke-subnet-01 \\\n    --network=my-private-gke-vpc \\\n    --range=10.0.0.0\/20 \\\n    --region=us-central1 \\\n    --enable-private-ip-google-access \\\n    --secondary-range pods-range=10.10.0.0\/16 \\\n    --secondary-range services-range=10.20.0.0\/16\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki komutta:<\/p>\n<ul>\n<li><code>--range=10.0.0.0\/20<\/code>: GKE d\u00fc\u011f\u00fcmlerinin alaca\u011f\u0131 IP aral\u0131\u011f\u0131d\u0131r.<\/li>\n<li><code>--secondary-range pods-range=10.10.0.0\/16<\/code>: Pod'lar i\u00e7in ayr\u0131lan IP aral\u0131\u011f\u0131d\u0131r.<\/li>\n<li><code>--secondary-range services-range=10.20.0.0\/16<\/code>: Service'ler i\u00e7in ayr\u0131lan IP aral\u0131\u011f\u0131d\u0131r.<\/li>\n<li><code>--enable-private-ip-google-access<\/code>: Bu, d\u00fc\u011f\u00fcmlerin internete \u00e7\u0131kmadan Google API'lerine (\u00f6rne\u011fin GCR, Cloud Logging) \u00f6zel IP \u00fczerinden eri\u015fmesini sa\u011flar. Bu, Cloud NAT'a olan ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 azalt\u0131r ancak internete \u00e7\u0131k\u0131\u015f i\u00e7in Cloud NAT hala gereklidir.<\/li>\n<\/ul>\n<h3>Ad\u0131m 2: GKE \u00d6zel K\u00fcme Olu\u015fturma<\/h3>\n<p>Art\u0131k VPC a\u011f\u0131m\u0131z haz\u0131r oldu\u011funa g\u00f6re, GKE \u00f6zel k\u00fcmemizi olu\u015fturabiliriz. Bu ad\u0131mda \u00f6zellikle \u00f6zel d\u00fc\u011f\u00fcmleri etkinle\u015ftirmeye ve kontrol d\u00fczlemi eri\u015fimini yap\u0131land\u0131rmaya dikkat edece\u011fiz.<\/p>\n<pre><code class=\"language-bash\">\ngcloud container clusters create private-gke-cluster \\\n    --enable-private-nodes \\\n    --master-ipv4-cidr=172.16.0.0\/28 \\\n    --enable-master-authorized-networks \\\n    --master-authorized-networks=0.0.0.0\/0 \\\n    --enable-ip-alias \\\n    --network=my-private-gke-vpc \\\n    --subnetwork=gke-subnet-01 \\\n    --cluster-secondary-range-name=pods-range \\\n    --services-secondary-range-name=services-range \\\n    --region=us-central1 \\\n    --machine-type=e2-medium \\\n    --num-nodes=1 \\\n    --node-locations=us-central1-a \\\n    --no-enable-public-ip\n<\/pre>\n<p><\/code><\/p>\n<p>Bu uzun komutu inceleyelim:<\/p>\n<ul>\n<li><code>--enable-private-nodes<\/code>: Bu en kritik parametredir. D\u00fc\u011f\u00fcmlerin genel IP adresi almas\u0131n\u0131 engeller ve yaln\u0131zca i\u00e7 IP'lere sahip olmalar\u0131n\u0131 sa\u011flar.<\/li>\n<li><code>--master-ipv4-cidr=172.16.0.0\/28<\/code>: K\u00fcme kontrol d\u00fczlemi i\u00e7in ayr\u0131lacak IP aral\u0131\u011f\u0131d\u0131r. Bu aral\u0131k, VPC a\u011f\u0131n\u0131zdaki di\u011fer IP aral\u0131klar\u0131yla \u00e7ak\u0131\u015fmamal\u0131d\u0131r.<\/li>\n<li><code>--enable-master-authorized-networks<\/code> ve <code>--master-authorized-networks=0.0.0.0\/0<\/code>: Kontrol d\u00fczlemi varsay\u0131lan olarak genel bir u\u00e7 noktaya sahip olacakt\u0131r (ancak d\u00fc\u011f\u00fcmler \u00f6zeldir). <code>0.0.0.0\/0<\/code> ile t\u00fcm IP'lerden eri\u015fime izin veriyoruz, ancak ger\u00e7ek bir senaryoda buraya sadece kendi ofis IP'nizi veya VPN a\u011f\u0131n\u0131z\u0131n IP'lerini ekleyerek kontrol d\u00fczlemi eri\u015fimini k\u0131s\u0131tlamal\u0131s\u0131n\u0131z. Alternatif olarak, tamamen \u00f6zel bir kontrol d\u00fczlemi i\u00e7in <code>--enable-private-endpoint<\/code> kullanabilirsiniz.<\/li>\n<li><code>--enable-ip-alias<\/code>: VPC native k\u00fcmeleri etkinle\u015ftirir. Bu, Pod'lara ve Service'lere VPC IP adresleri atamas\u0131n\u0131 sa\u011flar.<\/li>\n<li><code>--network<\/code> ve <code>--subnetwork<\/code>: Yukar\u0131da olu\u015fturdu\u011fumuz VPC a\u011f\u0131n\u0131 ve alt a\u011f\u0131 belirtir.<\/li>\n<li><code>--cluster-secondary-range-name<\/code> ve <code>--services-secondary-range-name<\/code>: Pod'lar ve Service'ler i\u00e7in belirledi\u011fimiz ikincil IP aral\u0131klar\u0131n\u0131n isimlerini belirtir.<\/li>\n<li><code>--no-enable-public-ip<\/code>: D\u00fc\u011f\u00fcmlerin genel IP'ye sahip olmamas\u0131n\u0131 sa\u011flar (<code>--enable-private-nodes<\/code> ile ayn\u0131 etkiyi yapar, ancak a\u00e7\u0131k\u00e7a belirtmek g\u00fcvenlik a\u00e7\u0131s\u0131ndan iyi bir pratiktir).<\/li>\n<\/ul>\n<h3>Ad\u0131m 3: Cloud Router Olu\u015fturma<\/h3>\n<p>Cloud NAT hizmeti, bir Cloud Router'a ba\u011fl\u0131 olarak \u00e7al\u0131\u015f\u0131r. Bu y\u00fczden Cloud NAT'\u0131 yap\u0131land\u0131rmadan \u00f6nce bir Cloud Router olu\u015fturmam\u0131z gerekiyor.<\/p>\n<pre><code class=\"language-bash\">\ngcloud compute routers create nat-router-us-central1 \\\n    --region=us-central1 \\\n    --network=my-private-gke-vpc\n<\/pre>\n<p><\/code><\/p>\n<h3>Ad\u0131m 4: Cloud NAT Yap\u0131land\u0131rma<\/h3>\n<p>\u015eimdi nihayet Cloud NAT hizmetini yap\u0131land\u0131rabiliriz. Bu, GKE d\u00fc\u011f\u00fcmlerimizin internete g\u00fcvenli bir \u015fekilde \u00e7\u0131k\u0131\u015f yapmas\u0131n\u0131 sa\u011flayacakt\u0131r.<\/p>\n<pre><code class=\"language-bash\">\ngcloud compute routers nat create gke-nat-config \\\n    --router=nat-router-us-central1 \\\n    --region=us-central1 \\\n    --nat-custom-subnet-ip-ranges=gke-subnet-01 \\\n    --auto-allocate-nat-external-ips \\\n    --enable-endpoint-independent-mapping\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komuttaki \u00f6nemli parametreler:<\/p>\n<ul>\n<li><code>--router=nat-router-us-central1<\/code>: Yukar\u0131da olu\u015fturdu\u011fumuz Cloud Router'\u0131 belirtir.<\/li>\n<li><code>--nat-custom-subnet-ip-ranges=gke-subnet-01<\/code>: NAT hizmeti verece\u011fi alt a\u011f\u0131 belirtir. GKE d\u00fc\u011f\u00fcmlerinin bulundu\u011fu alt a\u011f\u0131 se\u00e7iyoruz.<\/li>\n<li><code>--auto-allocate-nat-external-ips<\/code>: Cloud NAT'\u0131n otomatik olarak genel IP adresleri ay\u0131rmas\u0131n\u0131 sa\u011flar. \u0130sterseniz \u00f6nceden ayr\u0131lm\u0131\u015f statik genel IP adreslerini de kullanabilirsiniz (<code>--nat-external-ips<\/code> ile).<\/li>\n<li><code>--enable-endpoint-independent-mapping<\/code>: \u00c7o\u011fu senaryo i\u00e7in varsay\u0131lan olarak etkinle\u015ftirilmesi \u00f6nerilen bir se\u00e7enektir. Daha iyi uyumluluk ve performans sa\u011flar.<\/li>\n<\/ul>\n<h3>Ad\u0131m 5: Kurulumu Do\u011frulama<\/h3>\n<p>T\u00fcm ad\u0131mlar\u0131 tamamlad\u0131\u011f\u0131m\u0131za g\u00f6re, kurulumu do\u011frulamam\u0131z gerekiyor.<\/p>\n<ol>\n<li><strong>GKE D\u00fc\u011f\u00fcmlerinin IP'lerini Kontrol Etme:<\/strong> D\u00fc\u011f\u00fcmlerin yaln\u0131zca dahili IP adreslerine sahip oldu\u011funu do\u011frulamak i\u00e7in:\n<pre><code class=\"language-bash\">\n        kubectl get nodes -o wide\n        <\/pre>\n<p><\/code><\/p>\n<p><code>EXTERNAL-IP<\/code> s\u00fctununun bo\u015f oldu\u011funu veya sadece internal IP oldu\u011funu g\u00f6rmelisiniz.<\/p>\n<\/li>\n<li><strong>D\u00fc\u011f\u00fcmden \u0130nternet Eri\u015fimi Testi:<\/strong> Bir d\u00fc\u011f\u00fcme SSH ile ba\u011flanarak internet eri\u015fimini test edebiliriz. Ancak \u00f6zel d\u00fc\u011f\u00fcmlere do\u011frudan SSH ile ba\u011flanamazs\u0131n\u0131z. Bunun i\u00e7in k\u00fcmenin i\u00e7inde bir Pod da\u011f\u0131t\u0131p oradan test etmek veya bir bastion host kullanmak daha iyidir.\n<pre><code class=\"language-bash\">\n        gcloud compute ssh gke-private-gke-cluster-default-pool-xxx \\\n            --zone us-central1-a --internal-ip\n        <\/pre>\n<p><\/code><\/p>\n<p>E\u011fer bastion host kullan\u0131yorsan\u0131z:<\/p>\n<pre><code class=\"language-bash\">\n        # Bastion host'a ba\u011flan\u0131n\n        # Bastion host'tan GKE d\u00fc\u011f\u00fcm\u00fcne ba\u011flan\u0131n (i\u00e7 IP \u00fczerinden)\n        # GKE d\u00fc\u011f\u00fcm\u00fcnde interneti test edin\n        curl google.com\n        <\/pre>\n<p><\/code><\/p>\n<p>Bu komut ba\u015far\u0131l\u0131 olursa, Cloud NAT'\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<\/li>\n<\/ol>\n<p>Bu ad\u0131mlarla, g\u00fcvenli bir GKE \u00f6zel k\u00fcme ve internete \u00e7\u0131k\u0131\u015f\u0131 y\u00f6neten Cloud NAT altyap\u0131s\u0131n\u0131 ba\u015far\u0131yla olu\u015fturmu\u015f oldunuz. Art\u0131k bu g\u00fcvenli ortamda uygulamalar\u0131n\u0131z\u0131 da\u011f\u0131tmaya haz\u0131rs\u0131n\u0131z.<\/p>\n<h2>Uygulama Da\u011f\u0131t\u0131m\u0131: \u00d6zel K\u00fcmenize Bir Nginx Uygulamas\u0131 Nas\u0131l Konu\u015fland\u0131r\u0131l\u0131r?<\/h2>\n<p>Altyap\u0131m\u0131z haz\u0131r oldu\u011funa g\u00f6re, \u015fimdi s\u0131ra GKE \u00f6zel k\u00fcmemize bir uygulama da\u011f\u0131tmaya geldi. Bu b\u00f6l\u00fcmde, basit bir Nginx web sunucusunu \u00f6zel k\u00fcmemize nas\u0131l da\u011f\u0131taca\u011f\u0131m\u0131z\u0131 ve d\u0131\u015f d\u00fcnyadan eri\u015fim i\u00e7in gerekli ayarlamalar\u0131 nas\u0131l yapaca\u011f\u0131m\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Bu da\u011f\u0131t\u0131m, Cloud NAT'\u0131n uygulama katman\u0131nda nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 anlaman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>Ad\u0131m 1: Kubernetes Kimlik Do\u011frulamas\u0131<\/h3>\n<p>\u0130lk olarak, <code>kubectl<\/code> komut sat\u0131r\u0131 arac\u0131n\u0131z\u0131 yeni olu\u015fturdu\u011funuz \u00f6zel k\u00fcmenizle ileti\u015fim kuracak \u015fekilde yap\u0131land\u0131rman\u0131z gerekir. Bu, <code>gcloud<\/code> CLI kullan\u0131larak kolayca yap\u0131labilir.<\/p>\n<pre><code class=\"language-bash\">\ngcloud container clusters get-credentials private-gke-cluster --region us-central1\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, k\u00fcme kimlik bilgilerini yerel <code>kubeconfig<\/code> dosyan\u0131za ekleyecektir. Art\u0131k <code>kubectl<\/code> komutlar\u0131n\u0131 kullanarak k\u00fcmenizle etkile\u015fim kurabilirsiniz.<\/p>\n<div class=\"expert-tip\">\n  <strong>Uzman \u0130pucu:<\/strong> E\u011fer GKE kontrol d\u00fczleminize sadece belirli IP'lerden eri\u015fime izin verdiyseniz (<code>--master-authorized-networks<\/code>), <code>get-credentials<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z makinenin IP adresinin bu listeye dahil oldu\u011fundan emin olun. Aksi takdirde, k\u00fcme API'sine eri\u015fim sa\u011flayamazs\u0131n\u0131z.\n<\/div>\n<h3>Ad\u0131m 2: Nginx Deployment Olu\u015fturma<\/h3>\n<p>Bir Nginx web sunucusu \u00e7al\u0131\u015ft\u0131rmak i\u00e7in bir Kubernetes Deployment nesnesi tan\u0131mlayaca\u011f\u0131z. Bu Deployment, Nginx Pod'lar\u0131n\u0131 olu\u015fturmaktan ve y\u00f6netmekten sorumlu olacakt\u0131r. Nginx imaj\u0131 Docker Hub'dan (veya Google Container Registry'den) \u00e7ekilecektir ve bu i\u015flem i\u00e7in Cloud NAT gereklidir, zira d\u00fc\u011f\u00fcmlerin genel IP'si yoktur.<\/p>\n<p>A\u015fa\u011f\u0131daki YAML i\u00e7eri\u011fini <code>nginx-deployment.yaml<\/code> ad\u0131yla kaydedin:<\/p>\n<pre><code class=\"language-yaml\">\napiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: nginx-deployment\n  labels:\n    app: nginx\nspec:\n  replicas: 3\n  selector:\n    matchLabels:\n      app: nginx\n  template:\n    metadata:\n      labels:\n        app: nginx\n    spec:\n      containers:\n      - name: nginx\n        image: nginx:latest # Docker Hub'dan \u00e7ekilecek, Cloud NAT gerekli\n        ports:\n        - containerPort: 80\n        resources:\n          requests:\n            cpu: \"100m\"\n            memory: \"128Mi\"\n          limits:\n            cpu: \"200m\"\n            memory: \"256Mi\"\n<\/pre>\n<p><\/code><\/p>\n<p>Bu Deployment dosyas\u0131n\u0131 k\u00fcmenize uygulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">\nkubectl apply -f nginx-deployment.yaml\n<\/pre>\n<p><\/code><\/p>\n<p>Deployment'\u0131n durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">\nkubectl get deployments\nkubectl get pods -o wide\n<\/pre>\n<p><\/code><\/p>\n<p>Pod'lar\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve internal IP adreslerine sahip oldu\u011funu g\u00f6receksiniz. E\u011fer imaj \u00e7ekilirken sorun ya\u015fan\u0131rsa, Cloud NAT yap\u0131land\u0131rman\u0131zda veya a\u011f g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131zda bir problem olabilir.<\/p>\n<h3>Ad\u0131m 3: Nginx Service Olu\u015fturma (Internal Eri\u015fime A\u00e7ma)<\/h3>\n<p>Deployment'\u0131m\u0131z \u00e7al\u0131\u015f\u0131yor, ancak Pod'lara do\u011frudan eri\u015fim genellikle \u00f6nerilmez. Pod'lar ge\u00e7ici olduklar\u0131 i\u00e7in IP adresleri de\u011fi\u015febilir. Bu nedenle, Nginx Pod'lar\u0131na dahili eri\u015fim sa\u011flamak i\u00e7in bir Kubernetes Service nesnesi olu\u015fturaca\u011f\u0131z. En yayg\u0131n Service t\u00fcrlerinden biri olan <code>ClusterIP<\/code> kullanaca\u011f\u0131z, bu da Service'e yaln\u0131zca k\u00fcme i\u00e7inden eri\u015filebilen bir IP adresi atar.<\/p>\n<p>A\u015fa\u011f\u0131daki YAML i\u00e7eri\u011fini <code>nginx-service.yaml<\/code> ad\u0131yla kaydedin:<\/p>\n<pre><code class=\"language-yaml\">\napiVersion: v1\nkind: Service\nmetadata:\n  name: nginx-service\nspec:\n  selector:\n    app: nginx\n  ports:\n    - protocol: TCP\n      port: 80\n      targetPort: 80\n  type: ClusterIP # K\u00fcme i\u00e7inden eri\u015fim i\u00e7in\n<\/pre>\n<p><\/code><\/p>\n<p>Bu Service dosyas\u0131n\u0131 k\u00fcmenize uygulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">\nkubectl apply -f nginx-service.yaml\n<\/pre>\n<p><\/code><\/p>\n<p>Service'in durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">\nkubectl get services\n<\/pre>\n<p><\/code><\/p>\n<p><code>nginx-service<\/code> i\u00e7in bir <code>ClusterIP<\/code> atand\u0131\u011f\u0131n\u0131 g\u00f6receksiniz. Bu IP adresine k\u00fcme i\u00e7indeki herhangi bir Pod'dan eri\u015febilirsiniz.<\/p>\n<h3>Ad\u0131m 4: Uygulamay\u0131 D\u0131\u015far\u0131ya A\u00e7ma (LoadBalancer veya Ingress Kullan\u0131m\u0131)<\/h3>\n<p>E\u011fer Nginx uygulaman\u0131z\u0131n internetten eri\u015filebilir olmas\u0131n\u0131 istiyorsan\u0131z, bir <code>LoadBalancer<\/code> t\u00fcr\u00fcnde Service veya bir Ingress Controller kullanman\u0131z gerekir. Cloud NAT, d\u00fc\u011f\u00fcmlerin internete \u00e7\u0131k\u0131\u015f\u0131 i\u00e7in olsa da, uygulamalar\u0131n d\u0131\u015far\u0131dan eri\u015filebilir olmas\u0131 i\u00e7in GCP'nin Y\u00fck Dengeleyici hizmetleri devreye girer. Bu hizmetler, k\u00fcmenizdeki d\u00fc\u011f\u00fcmlere y\u00f6nlendirilen bir genel IP adresi atar ve trafi\u011fi ilgili Pod'lara iletir.<\/p>\n<h4>Se\u00e7enek A: LoadBalancer Tipi Service Olu\u015fturma<\/h4>\n<p>En basit yol, <code>LoadBalancer<\/code> tipi bir Service olu\u015fturmakt\u0131r. Bu, GCP'de bir A\u011f Y\u00fck Dengeleyici (Network Load Balancer) olu\u015fturacak ve ona bir genel IP adresi atayacakt\u0131r.<\/p>\n<p>A\u015fa\u011f\u0131daki YAML i\u00e7eri\u011fini <code>nginx-loadbalancer.yaml<\/code> ad\u0131yla kaydedin:<\/p>\n<pre><code class=\"language-yaml\">\napiVersion: v1\nkind: Service\nmetadata:\n  name: nginx-external-service\nspec:\n  selector:\n    app: nginx\n  ports:\n    - protocol: TCP\n      port: 80\n      targetPort: 80\n  type: LoadBalancer # D\u0131\u015far\u0131dan eri\u015fim i\u00e7in\n<\/pre>\n<p><\/code><\/p>\n<p>Bu Service dosyas\u0131n\u0131 k\u00fcmenize uygulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">\nkubectl apply -f nginx-loadbalancer.yaml\n<\/pre>\n<p><\/code><\/p>\n<p>Birka\u00e7 dakika bekledikten sonra, Service'in durumunu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">\nkubectl get services\n<\/pre>\n<p><\/code><\/p>\n<p><code>nginx-external-service<\/code> i\u00e7in <code>EXTERNAL-IP<\/code> s\u00fctununda bir IP adresi g\u00f6receksiniz. Bu IP adresini bir taray\u0131c\u0131da a\u00e7arak Nginx uygulaman\u0131za internetten eri\u015fip eri\u015femedi\u011finizi test edebilirsiniz. Bu genel IP adresi, d\u00fc\u011f\u00fcmlere atanmam\u0131\u015ft\u0131r; do\u011frudan Google Cloud'un y\u00fck dengeleyici altyap\u0131s\u0131 taraf\u0131ndan y\u00f6netilir ve trafi\u011fi dahili IP'lere sahip d\u00fc\u011f\u00fcmlerinize y\u00f6nlendirir.<\/p>\n<h4>Se\u00e7enek B: Ingress Controller Kullan\u0131m\u0131 (Daha Geli\u015fmi\u015f Senaryolar \u0130\u00e7in)<\/h4>\n<p>Birden fazla uygulamay\u0131 ayn\u0131 IP adresi \u00fczerinden farkl\u0131 alan adlar\u0131 veya URL yollar\u0131 ile d\u0131\u015far\u0131ya a\u00e7man\u0131z gerekiyorsa, bir Ingress Controller kullanmak daha esnektir. GKE, yerle\u015fik bir Ingress Controller ile gelir (GCP Load Balancer'\u0131 kullan\u0131r), ancak Nginx Ingress Controller gibi a\u00e7\u0131k kaynakl\u0131 \u00e7\u00f6z\u00fcmleri de da\u011f\u0131tabilirsiniz.<\/p>\n<p>Bu makalenin kapsam\u0131n\u0131 a\u015faca\u011f\u0131 i\u00e7in, Ingress kurulum detaylar\u0131na burada yer vermiyoruz. Ancak genel i\u015fleyi\u015f \u015f\u00f6yledir: Ingress Controller, bir Load Balancer Service (genellikle tipi <code>NodePort<\/code> veya <code>ClusterIP<\/code> olan bir Service'i \u00f6n\u00fcnde) arac\u0131l\u0131\u011f\u0131yla d\u0131\u015f d\u00fcnyaya a\u00e7\u0131l\u0131r ve gelen HTTP\/S trafi\u011fini URL'ye veya host ad\u0131na g\u00f6re y\u00f6nlendirir. Ingress'in kendisi GCP HTTP(S) Load Balancer'\u0131n\u0131 tetikler ve bu y\u00fck dengeleyici de bir genel IP adresine sahip olur.<\/p>\n<h3>Ad\u0131m 5: Uygulaman\u0131n Eri\u015filebilirli\u011fini Test Etme<\/h3>\n<p><code>LoadBalancer<\/code> tipi Service ile da\u011f\u0131t\u0131m yapt\u0131ysan\u0131z, <code>kubectl get services<\/code> \u00e7\u0131kt\u0131s\u0131ndaki <code>EXTERNAL-IP<\/code> adresini taray\u0131c\u0131n\u0131zda a\u00e7arak Nginx varsay\u0131lan sayfas\u0131n\u0131 g\u00f6rmelisiniz. Bu, uygulaman\u0131z\u0131n \u00f6zel GKE k\u00fcmenizde ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve Cloud NAT ile d\u00fc\u011f\u00fcmlerin imajlar\u0131 \u00e7ekebildi\u011fini, ayr\u0131ca GCP Y\u00fck Dengeleyici arac\u0131l\u0131\u011f\u0131yla d\u0131\u015far\u0131dan eri\u015filebilir oldu\u011funu kan\u0131tlar. Bu kurulum, g\u00fcvenlikten \u00f6d\u00fcn vermeden uygulamalar\u0131n\u0131z\u0131 d\u00fcnyaya a\u00e7man\u0131n etkili bir yoludur.<\/p>\n<h2>G\u00fcvenlik ve \u0130leri Konular: K\u00fcmenizi Daha da G\u00fc\u00e7l\u00fc Hale Getirmek \u0130\u00e7in Ne Yapmal\u0131s\u0131n\u0131z?<\/h2>\n<p>Bir GKE \u00f6zel k\u00fcme ve Cloud NAT kurulumu, ba\u015fl\u0131 ba\u015f\u0131na g\u00fc\u00e7l\u00fc bir g\u00fcvenlik temeli olu\u015fturur. Ancak, modern siber g\u00fcvenlik tehditlerinin karma\u015f\u0131kl\u0131\u011f\u0131 g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, bu temeli daha da g\u00fc\u00e7lendirmek ve k\u00fcmenizi her y\u00f6nden korumak i\u00e7in ek ad\u0131mlar atmak \u00f6nemlidir. Bu b\u00f6l\u00fcmde, k\u00fcmenizin g\u00fcvenli\u011fini art\u0131rmak, y\u00f6netilebilirli\u011fini geli\u015ftirmek ve daha geli\u015fmi\u015f senaryolara uyum sa\u011flamak i\u00e7in kullanabilece\u011finiz ileri d\u00fczey konular\u0131 ve en iyi uygulamalar\u0131 ele alaca\u011f\u0131z.<\/p>\n<h3>Master Authorized Networks (Kontrol D\u00fczlemi Yetkilendirilmi\u015f A\u011flar)<\/h3>\n<p>Daha \u00f6nce de belirtti\u011fimiz gibi, GKE kontrol d\u00fczleminize eri\u015fimi k\u0131s\u0131tlamak kritik \u00f6neme sahiptir. Kontrol d\u00fczlemi genel bir u\u00e7 noktaya sahip olsa bile, <code>Master Authorized Networks<\/code> \u00f6zelli\u011fini kullanarak bu eri\u015fimi yaln\u0131zca belirledi\u011finiz IP aral\u0131klar\u0131yla s\u0131n\u0131rlayabilirsiniz. Bu, potansiyel sald\u0131rganlar\u0131n k\u00fcmenizin API sunucusuna eri\u015fmesini zorla\u015ft\u0131r\u0131r.<\/p>\n<pre><code class=\"language-bash\">\n# K\u00fcme olu\u015fturma s\u0131ras\u0131nda\ngcloud container clusters create private-gke-cluster \\\n    --enable-master-authorized-networks \\\n    --master-authorized-networks=CIDR_BLOGU_1,CIDR_BLOGU_2 \\\n    ...\n\n# Mevcut k\u00fcmeyi g\u00fcncellemek i\u00e7in\ngcloud container clusters update private-gke-cluster \\\n    --enable-master-authorized-networks \\\n    --master-authorized-networks=KENDI_IP_ADRESINIZ\/32,OFIS_VPN_CIDR\n<\/pre>\n<p><\/code><\/p>\n<p>Ger\u00e7ek d\u00fcnya senaryosunda, bu IP aral\u0131klar\u0131 genellikle geli\u015ftirme ofisinizin statik genel IP adresi, bir VPN ge\u00e7idinizin genel IP'si veya bir bastion host'un genel IP'si olacakt\u0131r. Asla <code>0.0.0.0\/0<\/code> kullanmaktan ka\u00e7\u0131n\u0131n, zira bu t\u00fcm d\u00fcnyaya eri\u015fim izni verir.<\/p>\n<h3>VPC Service Controls ile Veri S\u0131z\u0131nt\u0131s\u0131 \u00d6nleme<\/h3>\n<p>Hassas verilerle \u00e7al\u0131\u015f\u0131yorsan\u0131z, VPC Service Controls (VPC SC) kullanarak veri s\u0131z\u0131nt\u0131s\u0131 (data exfiltration) riskini azaltabilirsiniz. VPC SC, Google Cloud hizmetleri etraf\u0131nda bir \"g\u00fcvenlik s\u0131n\u0131r\u0131\" (security perimeter) olu\u015fturman\u0131za olanak tan\u0131r. Bu s\u0131n\u0131rlar, yetkisiz a\u011flardan gelen eri\u015fimi engeller ve hizmetler aras\u0131ndaki veri ak\u0131\u015f\u0131n\u0131 k\u0131s\u0131tlar. \u00d6rne\u011fin, GKE k\u00fcmenizdeki Pod'lar\u0131n Cloud Storage veya BigQuery gibi hizmetlere yaln\u0131zca belirli bir VPC SC s\u0131n\u0131r\u0131 i\u00e7inden eri\u015febilmesini sa\u011flayabilirsiniz. Bu, bir uygulaman\u0131n ele ge\u00e7irilmesi durumunda bile hassas verilerin d\u0131\u015far\u0131 s\u0131zmas\u0131n\u0131 engellemeye yard\u0131mc\u0131 olur.<\/p>\n<h3>G\u00fcvenlik Duvar\u0131 Kurallar\u0131 ile A\u011f Eri\u015fimini \u0130nce Ayarlama<\/h3>\n<p>Cloud NAT, dahili d\u00fc\u011f\u00fcmlerinizin internete \u00e7\u0131k\u0131\u015f\u0131n\u0131 sa\u011flarken, g\u00fcvenlik duvar\u0131 kurallar\u0131 bu \u00e7\u0131k\u0131\u015f trafi\u011fini daha da hassas bir \u015fekilde kontrol etmenize olanak tan\u0131r. \u00d6rne\u011fin, d\u00fc\u011f\u00fcmlerinizin yaln\u0131zca belirli portlara (HTTP\/HTTPS i\u00e7in 80\/443 gibi) veya belirli harici IP adreslerine eri\u015fmesine izin veren kurallar olu\u015fturabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">\n# Sadece belirli bir harici IP adresine 443 portundan \u00e7\u0131k\u0131\u015fa izin veren kural\ngcloud compute firewall-rules create allow-egress-to-external-api \\\n    --network=my-private-gke-vpc \\\n    --action=ALLOW \\\n    --direction=EGRESS \\\n    --rules=tcp:443 \\\n    --destination-ranges=EXTERNAL_API_IP_ADRESI\/32 \\\n    --source-ranges=GKE_SUBNET_IP_RANGE \\\n    --priority=65534\n<\/pre>\n<p><\/code><\/p>\n<p>Varsay\u0131lan izin veren g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131n \u00f6n\u00fcne ge\u00e7erek bu \u00f6zel kurallar\u0131 belirlemek, \"en az ayr\u0131cal\u0131k\" prensibini uygulaman\u0131z\u0131 sa\u011flar.<\/p>\n<h3>Logging ve \u0130zleme: Her An Haberdar Olun<\/h3>\n<p>Herhangi bir \u00fcretim ortam\u0131nda oldu\u011fu gibi, GKE \u00f6zel k\u00fcmenizin ve Cloud NAT'\u0131n performans\u0131n\u0131 ve g\u00fcvenli\u011fini s\u00fcrekli olarak izlemek hayati \u00f6neme sahiptir. Google Cloud'\u0131n yerle\u015fik izleme ve g\u00fcnl\u00fck kayd\u0131 hizmetleri olan Cloud Logging ve Cloud Monitoring'i kullanarak bunu kolayca yapabilirsiniz. K\u00fcmenizin d\u00fc\u011f\u00fcmlerinden, Pod'lar\u0131ndan ve Cloud NAT ge\u00e7idinden gelen metrikleri ve g\u00fcnl\u00fckleri toplay\u0131n. Anormal davran\u0131\u015flar\u0131 veya potansiyel g\u00fcvenlik olaylar\u0131n\u0131 tespit etmek i\u00e7in uyar\u0131lar (alerts) ayarlay\u0131n.<\/p>\n<p>\u00d6rne\u011fin, Cloud NAT g\u00fcnl\u00fcklerinde ani bir trafik art\u0131\u015f\u0131, bir veri s\u0131z\u0131nt\u0131s\u0131 giri\u015fimine i\u015faret edebilirken, GKE d\u00fc\u011f\u00fcmlerindeki CPU kullan\u0131m\u0131ndaki anormallikler k\u00f6t\u00fc ama\u00e7l\u0131 yaz\u0131l\u0131m aktivitesine i\u015faret edebilir. Bu ara\u00e7lar, proaktif bir g\u00fcvenlik duru\u015fu sergilemenize yard\u0131mc\u0131 olur.<\/p>\n<h3>Otomatik Bak\u0131m ve G\u00fcncellemeler<\/h3>\n<p>GKE, k\u00fcme d\u00fc\u011f\u00fcmleriniz i\u00e7in otomatik bak\u0131m ve y\u00fckseltme \u00f6zellikleri sunar. Bu \u00f6zellikleri etkinle\u015ftirerek, g\u00fcvenlik yamalar\u0131n\u0131n ve yeni Kubernetes s\u00fcr\u00fcmlerinin otomatik olarak uygulanmas\u0131n\u0131 sa\u011flayabilirsiniz. Bu, g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapatmak ve k\u00fcmenizi g\u00fcncel tutmak i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<pre><code class=\"language-bash\">\ngcloud container clusters update private-gke-cluster \\\n    --enable-autoupgrade \\\n    --enable-autorepair \\\n    --maintenance-window-start=2024-06-01T03:00:00Z \\\n    --maintenance-window-end=2024-06-01T07:00:00Z\n<\/pre>\n<p><\/code><\/p>\n<p>Bir bak\u0131m penceresi belirlemek, g\u00fcncellemelerin i\u015f y\u00fcklerinizin en az etkilenece\u011fi zamanlarda yap\u0131lmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Vaka Analizi: B\u00fcy\u00fck Bir Finans Kurulu\u015funun PCI DSS Uyumlulu\u011fu Yolculu\u011fu<\/h3>\n<p>B\u00fcy\u00fck bir finans kurulu\u015fu olan \"FinBank\", \u00f6deme i\u015flemlerini y\u00fcr\u00fcten ve m\u00fc\u015fteri verilerini i\u015fleyen mikro hizmet tabanl\u0131 uygulamalar\u0131n\u0131 GKE'ye ta\u015f\u0131maya karar verdi. Ancak, PCI DSS (Payment Card Industry Data Security Standard) uyumluluk gereksinimleri, kart sahibi verilerini i\u015fleyen t\u00fcm sistemlerin internetten tamamen izole edilmesini \u015fart ko\u015fuyordu. Bu, FinBank'\u0131n GKE d\u00fc\u011f\u00fcmlerinin genel IP adreslerine sahip olamayaca\u011f\u0131 anlam\u0131na geliyordu.<\/p>\n<p><strong>Zorluk:<\/strong> \u00d6zel GKE k\u00fcmesindeki mikro hizmetler, d\u0131\u015far\u0131daki banka API'lerine ba\u011flanmak, Docker imajlar\u0131n\u0131 \u00e7ekmek ve i\u015fletim sistemi g\u00fcncellemelerini almak i\u00e7in yine de internet eri\u015fimine ihtiya\u00e7 duyuyordu.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong> FinBank, GKE \u00f6zel k\u00fcmeleri ve Cloud NAT kombinasyonunu uygulad\u0131. T\u00fcm GKE d\u00fc\u011f\u00fcmleri yaln\u0131zca dahili IP adreslerine sahipti. Cloud NAT, bu d\u00fc\u011f\u00fcmlerin internete \u00e7\u0131k\u0131\u015f\u0131n\u0131 tek bir kontrol noktas\u0131ndan y\u00f6netti. Ayr\u0131ca:<\/p>\n<ul>\n<li>Kontrol d\u00fczlemi eri\u015fimi, FinBank'\u0131n kendi veri merkezinden gelen VPN trafi\u011fiyle s\u0131n\u0131rlanm\u0131\u015f <code>Master Authorized Networks<\/code> kullan\u0131larak g\u00fcvence alt\u0131na al\u0131nd\u0131.<\/li>\n<li>Cloud Firewall kurallar\u0131, d\u00fc\u011f\u00fcmlerin yaln\u0131zca belirli finansal API'lerin IP adreslerine ve portlar\u0131na (443) eri\u015fmesine izin verecek \u015fekilde yap\u0131land\u0131r\u0131ld\u0131.<\/li>\n<li>VPC Service Controls, FinBank'\u0131n Cloud Storage ve BigQuery gibi hassas verileri bar\u0131nd\u0131ran di\u011fer GCP hizmetleriyle GKE aras\u0131ndaki veri ak\u0131\u015f\u0131n\u0131 izole eden bir g\u00fcvenlik s\u0131n\u0131r\u0131 olu\u015fturmak i\u00e7in kullan\u0131ld\u0131.<\/li>\n<li>T\u00fcm k\u00fcme i\u00e7in detayl\u0131 Cloud Logging ve Cloud Monitoring yap\u0131land\u0131r\u0131ld\u0131, uyar\u0131lar potansiyel g\u00fcvenlik ihlallerini veya performans anormalliklerini an\u0131nda tespit etmek i\u00e7in ayarland\u0131.<\/li>\n<\/ul>\n<p><strong>Sonu\u00e7:<\/strong> Bu entegre g\u00fcvenlik yakla\u015f\u0131m\u0131 sayesinde FinBank, PCI DSS uyumluluk gereksinimlerini kar\u015f\u0131larken, GKE'nin sa\u011flad\u0131\u011f\u0131 \u00f6l\u00e7eklenebilirlik ve esneklikten tam olarak faydalanabildi. M\u00fc\u015fteri verileri g\u00fcvende tutulurken, uygulamalar operasyonel ihtiya\u00e7lar\u0131 i\u00e7in gerekli internet eri\u015fimine sahip oldu, ancak bu eri\u015fim tamamen kontrol alt\u0131ndayd\u0131.<\/p>\n<h2>Sonu\u00e7: G\u00fcvenli ve \u00d6l\u00e7eklenebilir Bir Gelece\u011fe Ad\u0131m At\u0131n<\/h2>\n<p>Bu kapsaml\u0131 rehber boyunca, Google Kubernetes Engine (GKE) \u00f6zel k\u00fcmelerin ve Cloud NAT'\u0131n g\u00fcc\u00fcn\u00fc bir araya getirerek, bulut tabanl\u0131 uygulamalar\u0131n\u0131z i\u00e7in nas\u0131l son derece g\u00fcvenli, izole ve ayn\u0131 zamanda i\u015flevsel bir ortam olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m ele ald\u0131k. G\u00f6rd\u00fc\u011f\u00fcm\u00fcz gibi, GKE \u00f6zel k\u00fcmeler, d\u00fc\u011f\u00fcmlerin genel IP adreslerine sahip olmamas\u0131n\u0131 sa\u011flayarak potansiyel sald\u0131r\u0131 y\u00fczeyini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131rken, Cloud NAT bu izole d\u00fc\u011f\u00fcmlerin internete kontroll\u00fc ve g\u00fcvenli bir \u015fekilde \u00e7\u0131k\u0131\u015f yapmas\u0131na olanak tan\u0131r. Bu ikili kombinasyon, \u00f6zellikle finans, sa\u011fl\u0131k gibi s\u0131k\u0131 d\u00fczenlemelere tabi sekt\u00f6rler ve hassas verileri i\u015fleyen uygulamalar i\u00e7in vazge\u00e7ilmezdir.<\/p>\n<p>Uygulamal\u0131 ad\u0131mlarla, VPC a\u011f\u0131m\u0131z\u0131 olu\u015fturmaktan, GKE \u00f6zel k\u00fcmemizi yap\u0131land\u0131rmaya ve Cloud NAT ge\u00e7idini devreye almaya kadar t\u00fcm s\u00fcreci detayland\u0131rd\u0131k. Daha sonra, bu g\u00fcvenli altyap\u0131ya basit bir Nginx uygulamas\u0131n\u0131 nas\u0131l da\u011f\u0131tabilece\u011finizi ve onu d\u0131\u015f d\u00fcnyaya g\u00fcvenli bir \u015fekilde nas\u0131l a\u00e7abilece\u011finizi g\u00f6sterdik. Son olarak, Master Authorized Networks, VPC Service Controls, detayl\u0131 g\u00fcvenlik duvar\u0131 kurallar\u0131, izleme ve otomatik g\u00fcncellemeler gibi ileri d\u00fczey g\u00fcvenlik konular\u0131na de\u011finerek k\u00fcmenizi daha da g\u00fc\u00e7lendirmek i\u00e7in atabilece\u011finiz ad\u0131mlar\u0131 payla\u015ft\u0131k. Bir finans kurulu\u015funun vaka analizi, bu mimarinin ger\u00e7ek d\u00fcnyadaki \u00f6nemini ve uyumluluk gereksinimlerini nas\u0131l kar\u015f\u0131lad\u0131\u011f\u0131n\u0131 net bir \u015fekilde ortaya koydu.<\/p>\n<p>Unutmay\u0131n ki g\u00fcvenlik s\u00fcrekli bir yolculuktur ve \"tek seferlik\" bir yap\u0131land\u0131rma ile tamamlanmaz. En iyi uygulamalar\u0131 takip etmek, g\u00fcvenlik yamalar\u0131n\u0131 d\u00fczenli olarak uygulamak, sistemlerinizi izlemek ve g\u00fcvenlik duru\u015funuzu s\u00fcrekli iyile\u015ftirmek esast\u0131r. GKE \u00f6zel k\u00fcmeler ve Cloud NAT, bu yolculukta size \u00f6nemli bir avantaj sa\u011flayarak, modern bulut altyap\u0131n\u0131z\u0131n temellerini sa\u011flam bir \u015fekilde atman\u0131za yard\u0131mc\u0131 olur. Art\u0131k, g\u00fcvenli\u011finizi tehlikeye atmadan, uygulamalar\u0131n\u0131z\u0131 GKE \u00fczerinde \u00f6l\u00e7eklenebilir ve y\u00fcksek performansl\u0131 bir \u015fekilde \u00e7al\u0131\u015ft\u0131rabilirsiniz. Bu bilgilerle donanm\u0131\u015f olarak, daha g\u00fcvenli ve diren\u00e7li bulut \u00e7\u00f6z\u00fcmleri geli\u015ftirmeye haz\u0131rs\u0131n\u0131z!<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<h4>GKE \u00f6zel k\u00fcmenin maliyeti normal (genel) k\u00fcmeden farkl\u0131 m\u0131?<\/h4>\n<p>Hay\u0131r, GKE \u00f6zel k\u00fcmelerin d\u00fc\u011f\u00fcmleri i\u00e7in ek bir maliyet yoktur. GKE kontrol d\u00fczleminin maliyeti, \u00f6zel veya genel u\u00e7 nokta olmas\u0131na bak\u0131lmaks\u0131z\u0131n ayn\u0131d\u0131r. Ancak, Cloud NAT hizmetinin kendisinin kullan\u0131m\u0131na ba\u011fl\u0131 olarak ek maliyetler olu\u015fur. Cloud NAT, NAT a\u011f ge\u00e7itlerinin \u00e7al\u0131\u015fma s\u00fcresi ve i\u015flenen veri miktar\u0131 \u00fczerinden \u00fccretlendirilir. Bu maliyetler genellikle genel IP'lere sahip d\u00fc\u011f\u00fcmlerin maliyetinden daha d\u00fc\u015f\u00fckt\u00fcr ve sundu\u011fu g\u00fcvenlik avantajlar\u0131 g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda genellikle tercih edilir.<\/p>\n<h4>Cloud NAT'\u0131n alternatifleri nelerdir?<\/h4>\n<p>Cloud NAT'\u0131n ba\u015fl\u0131ca alternatifi, d\u00fc\u011f\u00fcmlere genel IP adresleri atamak ve bu IP'leri g\u00fcvenlik duvar\u0131 kurallar\u0131yla k\u0131s\u0131tlamakt\u0131r. Ancak bu, y\u00f6netim karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 art\u0131r\u0131r ve her d\u00fc\u011f\u00fcm\u00fcn internete do\u011frudan a\u00e7\u0131k olmas\u0131 nedeniyle g\u00fcvenlik riskini y\u00fckseltir. Di\u011fer bir alternatif, bir ara sunucu (proxy) veya bastion host arac\u0131l\u0131\u011f\u0131yla internet eri\u015fimi sa\u011flamakt\u0131r, ancak bu da ek y\u00f6netim y\u00fck\u00fc ve tek hata noktas\u0131 riski ta\u015f\u0131yabilir. Cloud NAT, tam y\u00f6netilen, y\u00fcksek oranda \u00f6l\u00e7eklenebilir ve g\u00fcvenli bir \u00e7\u00f6z\u00fcm olarak bu alternatiflere g\u00f6re genellikle daha avantajl\u0131d\u0131r.<\/p>\n<h4>\u00d6zel k\u00fcmede \u00e7al\u0131\u015fan uygulaman\u0131n d\u0131\u015f d\u00fcnyaya a\u00e7\u0131lmas\u0131 nas\u0131l yap\u0131l\u0131r?<\/h4>\n<p>\u00d6zel k\u00fcmede \u00e7al\u0131\u015fan bir uygulamay\u0131 d\u0131\u015f d\u00fcnyaya a\u00e7mak i\u00e7in d\u00fc\u011f\u00fcmlere genel IP adresleri atamak yerine, Google Cloud'\u0131n y\u00fck dengeleyici hizmetlerini kullan\u0131rs\u0131n\u0131z. En yayg\u0131n y\u00f6ntem, <code>LoadBalancer<\/code> tipi bir Kubernetes Service olu\u015fturmakt\u0131r. Bu, Google Cloud'da otomatik olarak bir A\u011f Y\u00fck Dengeleyici (Network Load Balancer) veya HTTP(S) Y\u00fck Dengeleyici (E\u011fer Ingress kullan\u0131l\u0131yorsa) olu\u015fturur ve bu y\u00fck dengeleyiciye bir genel IP adresi atar. Gelen trafik bu genel IP \u00fczerinden y\u00fck dengeleyiciye ula\u015f\u0131r ve oradan k\u00fcmenizin \u00f6zel IP'lere sahip d\u00fc\u011f\u00fcmlerindeki Pod'lara y\u00f6nlendirilir. D\u00fc\u011f\u00fcmlerin kendisi hala internetten do\u011frudan eri\u015filemez durumda kal\u0131r.<\/p>\n<h4>GKE \u00f6zel k\u00fcme performans\u0131 nas\u0131l etkiler?<\/h4>\n<p>GKE \u00f6zel k\u00fcmeler, performans \u00fczerinde do\u011frudan \u00f6nemli bir olumsuz etkiye sahip de\u011fildir. Asl\u0131nda, a\u011f trafi\u011finin \u00f6zel VPC a\u011f\u0131 i\u00e7inde kalmas\u0131, bazen daha d\u00fc\u015f\u00fck gecikme s\u00fcreleri ve daha iyi performans sa\u011flayabilir. Cloud NAT, giden internet trafi\u011fi i\u00e7in bir ara sunucu g\u00f6revi g\u00f6rd\u00fc\u011f\u00fcnden, bu trafi\u011fe k\u00fc\u00e7\u00fck bir gecikme ekleyebilir, ancak \u00e7o\u011fu uygulama i\u00e7in bu fark ihmal edilebilir d\u00fczeydedir. Performans\u0131 etkileyen as\u0131l fakt\u00f6rler genellikle Pod kaynaklar\u0131, d\u00fc\u011f\u00fcm t\u00fcrleri, a\u011f yap\u0131land\u0131rmas\u0131 ve uygulama mimarisidir.<\/p>\n<h4>Bir k\u00fcmede birden fazla Cloud NAT kullanabilir miyim?<\/h4>\n<p>Evet, bir GKE \u00f6zel k\u00fcmesinde birden fazla Cloud NAT yap\u0131land\u0131rmas\u0131 kullanabilirsiniz. Cloud NAT, b\u00f6lgesel bir hizmettir ve genellikle belirli bir alt a\u011fa veya alt a\u011flara hizmet verecek \u015fekilde yap\u0131land\u0131r\u0131l\u0131r. E\u011fer k\u00fcmenizin farkl\u0131 d\u00fc\u011f\u00fcm havuzlar\u0131 farkl\u0131 alt a\u011flarda bulunuyorsa veya farkl\u0131 b\u00f6lgelerde d\u00fc\u011f\u00fcm havuzlar\u0131n\u0131z varsa, her b\u00f6lge veya alt a\u011f i\u00e7in ayr\u0131 Cloud NAT ge\u00e7itleri yap\u0131land\u0131rman\u0131z gerekebilir. Bu, a\u011f trafi\u011fi \u00fczerinde daha gran\u00fcler kontrol sa\u011flar ve yedeklilik i\u00e7in de faydal\u0131 olabilir.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"GKE \u00f6zel k\u00fcme nedir ve neden bu kadar \u00f6nemli? Cloud NAT ile g\u00fcvenli ve izole bir GKE \u00f6zel&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":[1],"tags":[],"class_list":{"0":"post-31645","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","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>GKE \u00d6zel K\u00fcme Olu\u015fturma ve Uygulama Da\u011f\u0131t\u0131m\u0131: Ad\u0131m Ad\u0131m Rehber<\/title>\n<meta name=\"description\" content=\"GKE \u00f6zel k\u00fcme nedir ve neden bu kadar \u00f6nemli? Cloud NAT ile g\u00fcvenli ve izole bir GKE \u00f6zel k\u00fcme nas\u0131l olu\u015fturulur, uygulamalar nas\u0131l da\u011f\u0131t\u0131l\u0131r ve a\u011f \u00e7\u0131k\u0131\u015f\u0131 nas\u0131l y\u00f6netilir? Bu kapsaml\u0131 rehberde ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.\" \/>\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\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GKE \u00d6zel K\u00fcme Olu\u015fturma ve Uygulama Da\u011f\u0131t\u0131m\u0131: Ad\u0131m Ad\u0131m Rehber\" \/>\n<meta property=\"og:description\" content=\"GKE \u00f6zel k\u00fcme nedir ve neden bu kadar \u00f6nemli? Cloud NAT ile g\u00fcvenli ve izole bir GKE \u00f6zel k\u00fcme nas\u0131l olu\u015fturulur, uygulamalar nas\u0131l da\u011f\u0131t\u0131l\u0131r ve a\u011f \u00e7\u0131k\u0131\u015f\u0131 nas\u0131l y\u00f6netilir? Bu kapsaml\u0131 rehberde ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-12T05:01:30+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=\"29 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"GKE \u00d6zel K\u00fcme Olu\u015fturma ve Uygulama Da\u011f\u0131t\u0131m\u0131: Ad\u0131m Ad\u0131m Rehber\",\"datePublished\":\"2025-10-12T05:01:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/\"},\"wordCount\":5379,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/\",\"name\":\"GKE \u00d6zel K\u00fcme Olu\u015fturma ve Uygulama Da\u011f\u0131t\u0131m\u0131: Ad\u0131m Ad\u0131m Rehber\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-12T05:01:30+00:00\",\"description\":\"GKE \u00f6zel k\u00fcme nedir ve neden bu kadar \u00f6nemli? Cloud NAT ile g\u00fcvenli ve izole bir GKE \u00f6zel k\u00fcme nas\u0131l olu\u015fturulur, uygulamalar nas\u0131l da\u011f\u0131t\u0131l\u0131r ve a\u011f \u00e7\u0131k\u0131\u015f\u0131 nas\u0131l y\u00f6netilir? Bu kapsaml\u0131 rehberde ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GKE \u00d6zel K\u00fcme Olu\u015fturma ve Uygulama Da\u011f\u0131t\u0131m\u0131: Ad\u0131m Ad\u0131m Rehber\"}]},{\"@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":"GKE \u00d6zel K\u00fcme Olu\u015fturma ve Uygulama Da\u011f\u0131t\u0131m\u0131: Ad\u0131m Ad\u0131m Rehber","description":"GKE \u00f6zel k\u00fcme nedir ve neden bu kadar \u00f6nemli? Cloud NAT ile g\u00fcvenli ve izole bir GKE \u00f6zel k\u00fcme nas\u0131l olu\u015fturulur, uygulamalar nas\u0131l da\u011f\u0131t\u0131l\u0131r ve a\u011f \u00e7\u0131k\u0131\u015f\u0131 nas\u0131l y\u00f6netilir? Bu kapsaml\u0131 rehberde ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.","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\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"GKE \u00d6zel K\u00fcme Olu\u015fturma ve Uygulama Da\u011f\u0131t\u0131m\u0131: Ad\u0131m Ad\u0131m Rehber","og_description":"GKE \u00f6zel k\u00fcme nedir ve neden bu kadar \u00f6nemli? Cloud NAT ile g\u00fcvenli ve izole bir GKE \u00f6zel k\u00fcme nas\u0131l olu\u015fturulur, uygulamalar nas\u0131l da\u011f\u0131t\u0131l\u0131r ve a\u011f \u00e7\u0131k\u0131\u015f\u0131 nas\u0131l y\u00f6netilir? Bu kapsaml\u0131 rehberde ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.","og_url":"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-12T05:01:30+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"29 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"GKE \u00d6zel K\u00fcme Olu\u015fturma ve Uygulama Da\u011f\u0131t\u0131m\u0131: Ad\u0131m Ad\u0131m Rehber","datePublished":"2025-10-12T05:01:30+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/"},"wordCount":5379,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/","name":"GKE \u00d6zel K\u00fcme Olu\u015fturma ve Uygulama Da\u011f\u0131t\u0131m\u0131: Ad\u0131m Ad\u0131m Rehber","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-12T05:01:30+00:00","description":"GKE \u00f6zel k\u00fcme nedir ve neden bu kadar \u00f6nemli? Cloud NAT ile g\u00fcvenli ve izole bir GKE \u00f6zel k\u00fcme nas\u0131l olu\u015fturulur, uygulamalar nas\u0131l da\u011f\u0131t\u0131l\u0131r ve a\u011f \u00e7\u0131k\u0131\u015f\u0131 nas\u0131l y\u00f6netilir? Bu kapsaml\u0131 rehberde ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/gke-ozel-kume-olusturma-ve-uygulama-dagitimi-adim-adim-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"GKE \u00d6zel K\u00fcme Olu\u015fturma ve Uygulama Da\u011f\u0131t\u0131m\u0131: Ad\u0131m Ad\u0131m Rehber"}]},{"@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\/31645","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=31645"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31645\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31645"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31645"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31645"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}