{"id":35811,"date":"2025-12-04T04:00:58","date_gmt":"2025-12-04T01:00:58","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/"},"modified":"2025-12-04T04:00:58","modified_gmt":"2025-12-04T01:00:58","slug":"kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/","title":{"rendered":"Kubernetes Yolculu\u011funun Ba\u015flang\u0131c\u0131: K\u00fcme Mimarisi ve Temelleri"},"content":{"rendered":"<p>Bulut tabanl\u0131 uygulamalar\u0131n\u0131z\u0131 esnek ve \u00f6l\u00e7eklenebilir bir \u015fekilde y\u00f6netmek mi istiyorsunuz? Kubernetes k\u00fcme mimarisinin derinliklerine inerek, temel bile\u015fenleri ve i\u015fleyi\u015fini ad\u0131m ad\u0131m ke\u015ffedin, modern uygulamalar\u0131n g\u00fcc\u00fcn\u00fc anlay\u0131n ve kendi yolculu\u011funuza sa\u011flam bir ba\u015flang\u0131\u00e7 yap\u0131n.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen dijital d\u00fcnyas\u0131nda, yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7leri ve uygulama da\u011f\u0131t\u0131m yakla\u015f\u0131mlar\u0131 s\u00fcrekli evrim ge\u00e7irmektedir. Geleneksel monolitik mimariler yerini mikroservis tabanl\u0131, hafif ve ba\u011f\u0131ms\u0131z birimlerden olu\u015fan sistemlere b\u0131rak\u0131rken, bu durum beraberinde yeni zorluklar\u0131 da getirmi\u015ftir. Her bir mikroservisin kendi ya\u015fam d\u00f6ng\u00fcs\u00fc, ba\u011f\u0131ml\u0131l\u0131klar\u0131 ve \u00f6l\u00e7eklenme ihtiya\u00e7lar\u0131 oldu\u011funda, bunlar\u0131 manuel olarak y\u00f6netmek k\u0131sa s\u00fcrede i\u00e7inden \u00e7\u0131k\u0131lmaz bir hal alabilir. \u0130\u015fte tam da bu noktada, container teknolojileri (\u00f6zellikle Docker) ve container orkestrasyon ara\u00e7lar\u0131 devreye girer. Uygulamalar\u0131m\u0131z\u0131 izole edilmi\u015f, ta\u015f\u0131nabilir ve tutarl\u0131 bir ortamda \u00e7al\u0131\u015ft\u0131rma yetene\u011fi sunan container&#8217;lar, da\u011f\u0131t\u0131m s\u00fcre\u00e7lerini basitle\u015ftirse de, y\u00fczlerce hatta binlerce container&#8217;\u0131 ayn\u0131 anda y\u00f6netme, onlar\u0131n birbirleriyle ileti\u015fimini sa\u011flama, hatalar\u0131n\u0131 giderme ve y\u00fcklerini dengeleme gibi operasyonel y\u00fckler g\u00f6z ard\u0131 edilemez.<\/p>\n<p>Peki, bu karma\u015f\u0131kl\u0131\u011f\u0131 nas\u0131l y\u00f6netebiliriz? Uygulamalar\u0131m\u0131z\u0131n y\u00fcksek eri\u015filebilirli\u011fini, \u00f6l\u00e7eklenebilirli\u011fini ve sa\u011flaml\u0131\u011f\u0131n\u0131 nas\u0131l garanti alt\u0131na alabiliriz? Cevap genellikle Kubernetes gibi g\u00fc\u00e7l\u00fc bir container orkestrasyon platformunda yatmaktad\u0131r. Kubernetes, Google&#8217;\u0131n on y\u0131ldan fazla bir s\u00fcre boyunca dahili olarak kulland\u0131\u011f\u0131 &#8220;Borg&#8221; sisteminden esinlenerek geli\u015ftirilmi\u015f, a\u00e7\u0131k kaynakl\u0131 bir platformdur. Amac\u0131, containerize edilmi\u015f i\u015f y\u00fcklerini ve servisleri otomatik olarak da\u011f\u0131tmak, \u00f6l\u00e7eklemek ve y\u00f6netmektir. Geli\u015ftiricilerin sadece uygulamalar\u0131n\u0131n koduna odaklanmas\u0131n\u0131 sa\u011flarken, altyap\u0131 y\u00f6netimiyle ilgili karma\u015f\u0131k g\u00f6revleri \u00fcstlenir. Bu sayede, geli\u015ftirme ekipleri daha h\u0131zl\u0131 inovasyon yapabilir, operasyonel ekipler ise daha g\u00fcvenilir ve verimli sistemler i\u015fletebilirler. Kubernetes&#8217;in sundu\u011fu otomasyon yetenekleri, ar\u0131zal\u0131 container&#8217;lar\u0131 otomatik olarak yeniden ba\u015flatma, trafik y\u00fck\u00fcne g\u00f6re uygulamalar\u0131 yatayda \u00f6l\u00e7ekleme ve yeni s\u00fcr\u00fcmleri kesintisiz bir \u015fekilde da\u011f\u0131tma gibi kritik avantajlar sa\u011flar. Dolay\u0131s\u0131yla, da\u011f\u0131t\u0131k sistemlerin getirdi\u011fi operasyonel karma\u015f\u0131kl\u0131\u011f\u0131 azaltmak ve modern bulut yerel uygulamalar\u0131n potansiyelini tam olarak kullanmak i\u00e7in Kubernetes vazge\u00e7ilmez bir ara\u00e7 haline gelmi\u015ftir.<\/p>\n<h2>Kubernetes&#8217;in Temel Ta\u015flar\u0131 Nelerdir? Kontrol D\u00fczlemi ve \u00c7al\u0131\u015fan D\u00fc\u011f\u00fcmleri Anlamak<\/h2>\n<p>Kubernetes, da\u011f\u0131t\u0131k bir sistemdir ve i\u015flevselli\u011fini farkl\u0131 rol ve sorumluluklara sahip birden fazla bile\u015fenin i\u015fbirli\u011fiyle yerine getirir. Bir Kubernetes k\u00fcmesi temel olarak iki ana kategoriye ayr\u0131lan d\u00fc\u011f\u00fcmlerden (nodes) olu\u015fur: Kontrol D\u00fczlemi (Control Plane), eski ad\u0131yla Master Node, ve \u00c7al\u0131\u015fan D\u00fc\u011f\u00fcmler (Worker Nodes). Bu iki ana bile\u015fenin uyumlu \u00e7al\u0131\u015fmas\u0131, container&#8217;l\u0131 uygulamalar\u0131m\u0131z\u0131n sorunsuz bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. Her bir bile\u015fenin ne i\u015fe yarad\u0131\u011f\u0131n\u0131 anlamak, Kubernetes&#8217;in i\u00e7 i\u015fleyi\u015fini kavramak i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h3>Kontrol D\u00fczlemi (Control Plane) Bile\u015fenleri: Orkestrasyonun Beyni<\/h3>\n<p>Kontrol D\u00fczlemi, k\u00fcmenin beyni gibidir; t\u00fcm k\u00fcme genelindeki kararlar\u0131 al\u0131r ve k\u00fcmenin mevcut durumunu y\u00f6netir. Bu bile\u015fenler genellikle y\u00fcksek eri\u015filebilirlik (HA) sa\u011flamak i\u00e7in birden fazla sunucuya da\u011f\u0131t\u0131l\u0131r.<\/p>\n<p>*   <strong>kube-apiserver:<\/strong> Kubernetes API&#8217;si, k\u00fcmenin \u00f6n y\u00fcz\u00fcd\u00fcr. T\u00fcm i\u00e7 ve d\u0131\u015f ileti\u015fim bu API sunucusu \u00fczerinden ger\u00e7ekle\u015fir. <code>kubectl<\/code> komutlar\u0131, di\u011fer kontrol d\u00fczlemi bile\u015fenleri ve hatta \u00e7al\u0131\u015fan d\u00fc\u011f\u00fcmler \u00fczerindeki kubelet&#8217;ler, k\u00fcmedeki kaynaklar\u0131 (Pod&#8217;lar, Servisler, Deployment&#8217;lar vb.) sorgulamak veya de\u011fi\u015ftirmek i\u00e7in API Sunucusu ile etkile\u015fime girer. Bu, Kubernetes&#8217;in deklaratif yap\u0131s\u0131n\u0131n temelini olu\u015fturur; sizDesired State&#8217;i (istenilen durumu) API&#8217;ye bildirirsiniz, API sunucusu bu iste\u011fi do\u011frular ve di\u011fer bile\u015fenlerin i\u015fleyi\u015fini tetikler.<\/p>\n<p>*   <strong>etcd:<\/strong> K\u00fcmenin t\u00fcm yap\u0131land\u0131rma verilerini, durum bilgilerini ve meta verilerini depolayan, y\u00fcksek oranda eri\u015filebilir ve tutarl\u0131 bir anahtar-de\u011fer deposudur. etcd, da\u011f\u0131t\u0131k sistemlerde veri tutarl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flamak i\u00e7in tasarlanm\u0131\u015ft\u0131r ve Kubernetes k\u00fcmesindeki t\u00fcm kritik bilgilerin tek g\u00fcvenilir kayna\u011f\u0131d\u0131r. Bir nevi Kubernetes&#8217;in haf\u0131zas\u0131d\u0131r.<\/p>\n<p>*   <strong>kube-scheduler:<\/strong> Yeni olu\u015fturulan Pod&#8217;lar\u0131 izler ve hangi \u00c7al\u0131\u015fan D\u00fc\u011f\u00fcmde \u00e7al\u0131\u015facaklar\u0131na karar verir. Bu karar\u0131 verirken d\u00fc\u011f\u00fcmlerin mevcut kaynak durumunu (CPU, bellek), donan\u0131m\/yaz\u0131l\u0131m\/ilke k\u0131s\u0131tlamalar\u0131n\u0131, affinite ve anti-affinite kurallar\u0131n\u0131 g\u00f6z \u00f6n\u00fcnde bulundurur. \u00d6rne\u011fin, belirli bir Pod&#8217;un sadece GPU&#8217;lu bir d\u00fc\u011f\u00fcmde \u00e7al\u0131\u015fmas\u0131n\u0131 veya ayn\u0131 uygulamaya ait iki Pod&#8217;un farkl\u0131 d\u00fc\u011f\u00fcmlerde olmas\u0131n\u0131 sa\u011flayabilir.<\/p>\n<p>*   <strong>kube-controller-manager:<\/strong> Kubernetes&#8217;in &#8220;beyin&#8221; k\u0131sm\u0131ndaki \u00f6nemli bir di\u011fer bile\u015fendir. Birden fazla denetleyiciyi (controller) bir araya getirir. Bu denetleyiciler k\u00fcmenin mevcut durumunu etcd \u00fczerinden izler ve istenen durumdan farkl\u0131l\u0131klar\u0131 gidermek i\u00e7in ad\u0131mlar atar. \u00d6rne\u011fin:<br \/>\n    *   <strong>Node Controller:<\/strong> D\u00fc\u011f\u00fcmlerin durumunu izler ve \u00e7al\u0131\u015fmayan d\u00fc\u011f\u00fcmlerden Pod&#8217;lar\u0131 kald\u0131r\u0131r.<br \/>\n    *   <strong>Replication Controller:<\/strong> Her Deployment i\u00e7in belirtilen say\u0131da Pod&#8217;un her zaman \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olur. E\u011fer bir Pod \u00f6l\u00fcrse, yenisini ba\u015flat\u0131r.<br \/>\n    *   <strong>Endpoints Controller:<\/strong> Service ve Pod&#8217;lar\u0131 birbirine ba\u011flar.<br \/>\n    *   <strong>Service Account &#038; Token Controllers:<\/strong> Kubernetes i\u00e7inde kimlik y\u00f6netimi sa\u011flar.<\/p>\n<h3>\u00c7al\u0131\u015fan D\u00fc\u011f\u00fcmler (Worker Nodes) Bile\u015fenleri: \u0130\u015f Y\u00fcklerinin Ger\u00e7ekle\u015fti\u011fi Yer<\/h3>\n<p>\u00c7al\u0131\u015fan D\u00fc\u011f\u00fcmler, k\u00fcmedeki ger\u00e7ek i\u015f y\u00fcklerinin (yani uygulamalar\u0131n\u0131z\u0131n \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131 Pod&#8217;lar\u0131n) \u00e7al\u0131\u015ft\u0131\u011f\u0131 makinelerdir. Her \u00c7al\u0131\u015fan D\u00fc\u011f\u00fcm, Kontrol D\u00fczlemi&#8217;nden ald\u0131\u011f\u0131 talimatlar\u0131 yerine getirmek i\u00e7in belirli bile\u015fenlere ihtiya\u00e7 duyar.<\/p>\n<p>*   <strong>kubelet:<\/strong> Her \u00c7al\u0131\u015fan D\u00fc\u011f\u00fcmde \u00e7al\u0131\u015fan bir arac\u0131d\u0131r. Kontrol D\u00fczlemi&#8217;nden gelen Pod tan\u0131mlar\u0131n\u0131 al\u0131r ve bu Pod&#8217;lar\u0131 d\u00fc\u011f\u00fcm \u00fczerinde \u00e7al\u0131\u015ft\u0131r\u0131r. Ayr\u0131ca, Pod&#8217;lar\u0131n durumunu (sa\u011fl\u0131k, kaynak kullan\u0131m\u0131 vb.) d\u00fczenli olarak API Sunucusu&#8217;na bildirir. Kubelet, sadece Kubernetes taraf\u0131ndan olu\u015fturulmu\u015f Pod&#8217;lar\u0131 y\u00f6netir, di\u011fer container&#8217;lar\u0131 de\u011fil.<\/p>\n<p>*   <strong>kube-proxy:<\/strong> Her d\u00fc\u011f\u00fcmde \u00e7al\u0131\u015fan bir a\u011f proxy&#8217;sidir. Kubernetes Servisleri i\u00e7in a\u011f kurallar\u0131n\u0131 y\u00f6netir ve servis ke\u015ffini ve y\u00fck dengelemeyi sa\u011flar. Kube-proxy, gelen a\u011f isteklerini bir Servis&#8217;e ait do\u011fru Pod&#8217;lara y\u00f6nlendirerek, uygulamalar\u0131n d\u0131\u015f d\u00fcnyadan veya k\u00fcme i\u00e7indeki di\u011fer uygulamalardan eri\u015filebilir olmas\u0131n\u0131 sa\u011flar. Genellikle iptables veya IPVS kurallar\u0131 kullanarak bu y\u00f6nlendirmeyi yapar.<\/p>\n<p>*   <strong>Container Runtime:<\/strong> Bu, container&#8217;lar\u0131 \u00e7al\u0131\u015ft\u0131rmakla sorumlu yaz\u0131l\u0131md\u0131r. En bilinen \u00f6rne\u011fi Docker olsa da, Kubernetes art\u0131k <code>containerd<\/code> veya <code>CRI-O<\/code> gibi Open Container Initiative (OCI) uyumlu di\u011fer \u00e7al\u0131\u015fma zamanlar\u0131n\u0131 da desteklemektedir. Kubelet, bir Pod&#8217;u ba\u015flatmak i\u00e7in container runtime ile etkile\u015fime girer.<\/p>\n<p>Bu bile\u015fenlerin her biri, Kubernetes k\u00fcmesinin genel i\u015fleyi\u015fi i\u00e7inde belirli bir amaca hizmet eder. Bir Pod olu\u015fturmak istedi\u011finizde, iste\u011finiz API Sunucusu&#8217;na ula\u015f\u0131r, etcd&#8217;ye kaydedilir, scheduler taraf\u0131ndan bir d\u00fc\u011f\u00fcme atan\u0131r ve son olarak o d\u00fc\u011f\u00fcmdeki kubelet ve container runtime taraf\u0131ndan hayata ge\u00e7irilir. Bu karma\u015f\u0131k ancak d\u00fczenli s\u00fcre\u00e7 sayesinde, uygulamalar\u0131m\u0131z y\u00fcksek performans ve g\u00fcvenilirlikle \u00e7al\u0131\u015f\u0131r.<\/p>\n<h2>Kubernetes K\u00fcme Mimarisi Nas\u0131l \u0130\u015fler? Bir Uygulama \u00d6rne\u011fiyle Anlayal\u0131m<\/h2>\n<p>Kubernetes&#8217;in temel bile\u015fenlerini \u00f6\u011frendikten sonra, \u015fimdi bu par\u00e7alar\u0131n nas\u0131l bir araya gelerek bir uygulaman\u0131n da\u011f\u0131t\u0131m\u0131n\u0131 ve y\u00f6netimini sa\u011flad\u0131\u011f\u0131n\u0131, ad\u0131m ad\u0131m bir senaryo \u00fczerinden inceleyelim. Bu b\u00f6l\u00fcm, teorik bilgileri ger\u00e7ek d\u00fcnya \u00f6rnekleriyle peki\u015ftirmek ve Kubernetes k\u00fcme mimarisinin dinamik i\u015fleyi\u015fini g\u00f6zler \u00f6n\u00fcne sermek i\u00e7in tasarlanm\u0131\u015ft\u0131r.<\/p>\n<p>Bir mikroservis tabanl\u0131 e-ticaret uygulamas\u0131 geli\u015ftirdi\u011finizi d\u00fc\u015f\u00fcn\u00fcn. Bu uygulama, kullan\u0131c\u0131 aray\u00fcz\u00fc (frontend), \u00fcr\u00fcn katalo\u011fu servisi, sipari\u015f y\u00f6netimi servisi ve \u00f6deme servisi gibi ba\u011f\u0131ms\u0131z par\u00e7alardan olu\u015fuyor. Her servis kendi container&#8217;\u0131nda \u00e7al\u0131\u015f\u0131yor ve siz bu servisi Kubernetes \u00fczerinde da\u011f\u0131tmak istiyorsunuz.<\/p>\n<h3>Senaryo: Yeni Bir \u00dcr\u00fcn Katalo\u011fu Servisi Da\u011f\u0131t\u0131m\u0131<\/h3>\n<p>1.  <strong>Geli\u015ftirici \u0130ste\u011fi:<\/strong> Ekibiniz, yeni \u00f6zellikler i\u00e7eren g\u00fcncellenmi\u015f bir \u00fcr\u00fcn katalo\u011fu servisini (Product Catalog Service) da\u011f\u0131tmak istiyor. Geli\u015ftirici, servisin container g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc (image) Docker Hub gibi bir container kay\u0131t defterine (registry) y\u00fckler ve ard\u0131ndan servisin Kubernetes&#8217;teki istenen durumunu a\u00e7\u0131klayan bir YAML manifest dosyas\u0131 haz\u0131rlar. Bu dosya genellikle bir <code>Deployment<\/code> ve bir <code>Service<\/code> nesnesini tan\u0131mlar.<\/p>\n<pre><code class=\"language-yaml\"># product-catalog-deployment.yaml\n    apiVersion: apps\/v1\n    kind: Deployment\n    metadata:\n      name: product-catalog-deployment\n      labels:\n        app: product-catalog\n    spec:\n      replicas: 3\n      selector:\n        matchLabels:\n          app: product-catalog\n      template:\n        metadata:\n          labels:\n            app: product-catalog\n        spec:\n          containers:\n          - name: product-catalog-container\n            image: your-registry\/product-catalog-service:v2.0\n            ports:\n            - containerPort: 8080<\/pre>\n<p><\/code><\/p>\n<pre><code class=\"language-yaml\"><\/pre>\n<p><\/code># product-catalog-service.yaml<br \/>\n    apiVersion: v1<br \/>\n    kind: Service<br \/>\n    metadata:<br \/>\n      name: product-catalog-service<br \/>\n    spec:<br \/>\n      selector:<br \/>\n        app: product-catalog<br \/>\n      ports:<br \/>\n        - protocol: TCP<br \/>\n          port: 80<br \/>\n          targetPort: 8080<br \/>\n      type: ClusterIP # K\u00fcme i\u00e7i eri\u015fim i\u00e7in<\/code><br \/>\n    Bu YAML dosyalar\u0131, <code>product-catalog<\/code> etiketine sahip 3 adet Pod'un \u00e7al\u0131\u015fmas\u0131n\u0131 ve bu Pod'lara 80 portundan eri\u015filebilecek bir i\u00e7 servis tan\u0131mlar.<\/p>\n<p>2.  <strong>API Sunucusu ile Etkile\u015fim (<code>kubectl apply<\/code>):<\/strong> Geli\u015ftirici, bu YAML dosyalar\u0131n\u0131 <code>kubectl apply -f .<\/code> komutu ile Kubernetes API Sunucusu'na g\u00f6nderir. API Sunucusu, iste\u011fi do\u011frular, k\u00fcme durumunu etcd'de g\u00fcnceller ve de\u011fi\u015fiklikleri denetleyicilere (controller'lara) bildirir.<\/p>\n<p>3.  <strong>Kontrol D\u00fczlemi'nin Devreye Girmesi:<\/strong><br \/>\n    *   <strong>Deployment Controller:<\/strong> API Sunucusu'ndan yeni bir <code>Deployment<\/code> tan\u0131m\u0131n\u0131n geldi\u011fini alg\u0131lar. Bu tan\u0131ma g\u00f6re, istedi\u011fimiz <code>product-catalog<\/code> Pod'lar\u0131ndan 3 adet olmas\u0131 gerekti\u011fini anlar. Mevcut durumda hi\u00e7 Pod olmad\u0131\u011f\u0131 i\u00e7in, yeni Pod'lar olu\u015fturulmas\u0131 gerekti\u011fini belirler.<br \/>\n    *   <strong>Scheduler:<\/strong> Deployment Controller'\u0131n iste\u011fi \u00fczerine, 3 adet yeni Pod olu\u015fturma ihtiyac\u0131n\u0131 fark eder. Scheduler, k\u00fcmedeki \u00c7al\u0131\u015fan D\u00fc\u011f\u00fcmlerin (Worker Nodes) kaynak durumunu (CPU, bellek vb.) de\u011ferlendirir ve bu 3 Pod'u hangi d\u00fc\u011f\u00fcmlere atayaca\u011f\u0131na karar verir. \u00d6rne\u011fin, Node1, Node2 ve Node3'e birer Pod atayabilir. Bu atama bilgisi etcd'ye yaz\u0131l\u0131r ve API Sunucusu \u00fczerinden duyurulur.<\/p>\n<p>4.  <strong>\u00c7al\u0131\u015fan D\u00fc\u011f\u00fcmlerin Harekete Ge\u00e7mesi:<\/strong><br \/>\n    *   <strong>kubelet:<\/strong> Node1, Node2 ve Node3 \u00fczerindeki kubelet'ler, API Sunucusu'ndan kendilerine atanm\u0131\u015f yeni Pod tan\u0131mlar\u0131n\u0131 g\u00f6r\u00fcrler. Her bir kubelet, kendi d\u00fc\u011f\u00fcm\u00fcnde ilgili Pod'un belirtilen container g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc (your-registry\/product-catalog-service:v2.0) container kay\u0131t defterinden \u00e7eker ve container runtime (\u00f6rne\u011fin containerd) arac\u0131l\u0131\u011f\u0131yla Pod'u ba\u015flat\u0131r.<br \/>\n    *   <strong>kube-proxy:<\/strong> <code>product-catalog-service<\/code> isimli yeni bir <code>Service<\/code> olu\u015fturuldu\u011funu ve bu Servis'in <code>product-catalog<\/code> etiketine sahip Pod'lar\u0131 hedefledi\u011fini API Sunucusu \u00fczerinden \u00f6\u011frenir. Her \u00c7al\u0131\u015fan D\u00fc\u011f\u00fcmdeki kube-proxy, bu Servis i\u00e7in a\u011f kurallar\u0131n\u0131 (genellikle iptables) g\u00fcnceller. Bu kurallar, 80 numaral\u0131 porta gelen istekleri, 8080 numaral\u0131 portlar\u0131nda \u00e7al\u0131\u015fan <code>product-catalog<\/code> Pod'lar\u0131na y\u00fck dengeleme yaparak y\u00f6nlendirecektir.<\/p>\n<p>5.  <strong>Uygulama Eri\u015filebilirli\u011fi:<\/strong> Art\u0131k, e-ticaret uygulamas\u0131n\u0131n di\u011fer mikroservisleri (\u00f6rne\u011fin frontend servisi), <code>product-catalog-service<\/code> ismini kullanarak \u00fcr\u00fcn katalo\u011fu servisine eri\u015febilir. Kube-proxy ve Servis mekanizmas\u0131 sayesinde, frontend servisi Pod'lar\u0131n hangi d\u00fc\u011f\u00fcmlerde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 veya ka\u00e7 tane oldu\u011funu bilmek zorunda kalmadan stabil bir \u015fekilde ileti\u015fim kurabilir. E\u011fer Pod'lardan biri \u00e7\u00f6kerse, Deployment Controller yeni bir Pod ba\u015flat\u0131r, scheduler onu bir d\u00fc\u011f\u00fcme atar ve kubelet devreye girer. Kube-proxy de Servis'in hedefledi\u011fi Pod listesini otomatik olarak g\u00fcnceller, b\u00f6ylece uygulaman\u0131n kesintisiz \u00e7al\u0131\u015fmas\u0131 sa\u011flan\u0131r.<\/p>\n<p>Bu vaka analizi, Kubernetes'in deklaratif yap\u0131s\u0131n\u0131n, otomatik \u00f6l\u00e7ekleme ve kendine iyile\u015ftirme yeteneklerinin nas\u0131l bir araya gelerek karma\u015f\u0131k da\u011f\u0131t\u0131k uygulamalar\u0131 basit ve g\u00fcvenilir bir \u015fekilde y\u00f6netti\u011fini g\u00f6stermektedir. Geli\u015ftirici sadece istedi\u011fi durumu belirtir, Kubernetes geri kalan t\u00fcm operasyonel detaylar\u0131 \u00fcstlenir.<\/p>\n<h2>Kubernetes Nesneleri: Uygulamalar\u0131m\u0131z\u0131 Nas\u0131l Tan\u0131mlar\u0131z ve Y\u00f6netiriz?<\/h2>\n<p>Kubernetes'in g\u00fcc\u00fc, k\u00fcme i\u00e7indeki kaynaklar\u0131 y\u00f6netmek i\u00e7in kulland\u0131\u011f\u0131 soyut kavramlardan yani \"nesnelerden\" gelir. Bir Kubernetes nesnesi, k\u00fcmenizde kal\u0131c\u0131 bir varl\u0131kt\u0131r. Uygulaman\u0131z\u0131n neyi temsil etti\u011fini, hangi container'larda \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131, hangi kaynaklara ihtiya\u00e7 duydu\u011funu ve nas\u0131l davranmas\u0131 gerekti\u011fini a\u00e7\u0131klamak i\u00e7in bu nesneleri kullan\u0131rs\u0131n\u0131z. Nesneleri kullanarak, Kubernetes k\u00fcmenize \"bu uygulamay\u0131 \u00e7al\u0131\u015ft\u0131rmal\u0131s\u0131n ve bu \u015fekilde g\u00f6r\u00fcnmesini istiyorum\" dersiniz. Kubernetes ise k\u00fcmenin mevcut durumunu sizin belirtti\u011finiz istenen duruma getirmek i\u00e7in s\u00fcrekli olarak \u00e7al\u0131\u015f\u0131r.<\/p>\n<h3>Temel Kubernetes Nesneleri<\/h3>\n<p>*   <strong>Pod:<\/strong> Kubernetes'teki en k\u00fc\u00e7\u00fck da\u011f\u0131t\u0131labilir birimdir. Bir veya daha fazla container'\u0131 (genellikle birbiriyle s\u0131k\u0131ca ili\u015fkili container'lar) kapsar. T\u00fcm container'lar ayn\u0131 network namespace'ini ve depolama birimlerini payla\u015f\u0131r. Bir Pod, genellikle bir uygulaman\u0131n tek bir \u00f6rne\u011fini temsil eder. \u00d6rne\u011fin, bir web sunucusu ve onun loglar\u0131n\u0131 toplayan bir yan araba (sidecar) container'\u0131 ayn\u0131 Pod i\u00e7inde yer alabilir. Pod'lar ge\u00e7icidir; bir Pod \u00f6ld\u00fc\u011f\u00fcnde yeniden ba\u015flat\u0131lmaz, yerine yeni bir Pod olu\u015fturulur.<\/p>\n<p>*   <strong>Deployment:<\/strong> Pod'lar\u0131n ve ReplicaSet'lerin deklaratif g\u00fcncellemelerini sa\u011flar. Bir Deployment tan\u0131mlayarak, uygulaman\u0131z\u0131n ka\u00e7 kopyas\u0131n\u0131n \u00e7al\u0131\u015fmas\u0131 gerekti\u011fini (replica say\u0131s\u0131), hangi container g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc kullanaca\u011f\u0131n\u0131 ve uygulaman\u0131n nas\u0131l g\u00fcncellenece\u011fini (\u00f6rne\u011fin, yuvarlanan g\u00fcncelleme - rolling update) belirtirsiniz. Deployment, Pod'lar\u0131n ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fc y\u00f6neten \u00fcst d\u00fczey bir denetleyicidir. E\u011fer bir Pod ar\u0131zalan\u0131rsa, Deployment otomatik olarak yeni bir Pod ba\u015flat\u0131r.<\/p>\n<p>*   <strong>Service:<\/strong> Bir Pod k\u00fcmesine eri\u015fmek i\u00e7in soyut bir y\u00f6ntem tan\u0131mlar. Pod'lar ge\u00e7ici oldu\u011fu ve IP adresleri de\u011fi\u015febilece\u011fi i\u00e7in, do\u011frudan Pod IP'lerine g\u00fcvenmek sa\u011fl\u0131kl\u0131 de\u011fildir. Servisler, Pod'lar aras\u0131ndaki network ileti\u015fimini basitle\u015ftirir ve bir grup Pod'a kararl\u0131 bir IP adresi ve DNS ad\u0131 sa\u011flar. \u00c7e\u015fitli servis tipleri bulunur:<br \/>\n    *   <strong>ClusterIP:<\/strong> K\u00fcme i\u00e7inden eri\u015filebilir, varsay\u0131lan tip.<br \/>\n    *   <strong>NodePort:<\/strong> Her \u00c7al\u0131\u015fan D\u00fc\u011f\u00fcmde belirli bir port a\u00e7arak servise d\u0131\u015far\u0131dan eri\u015fimi sa\u011flar.<br \/>\n    *   <strong>LoadBalancer:<\/strong> Bulut sa\u011flay\u0131c\u0131lar\u0131n y\u00fck dengeleyicilerini entegre ederek servise d\u0131\u015far\u0131dan eri\u015fim sa\u011flar.<br \/>\n    *   <strong>ExternalName:<\/strong> Harici bir DNS ad\u0131n\u0131 bir Servis ad\u0131 gibi kullan\u0131r.<\/p>\n<p>*   <strong>Namespace:<\/strong> Kubernetes k\u00fcmesindeki kaynaklar\u0131 mant\u0131ksal olarak b\u00f6l\u00fcmlere ay\u0131rmak i\u00e7in kullan\u0131l\u0131r. Genellikle geli\u015ftirme, test ve \u00fcretim ortamlar\u0131n\u0131 veya farkl\u0131 proje ekiplerini ay\u0131rmak i\u00e7in kullan\u0131l\u0131r. Namespace'ler, kaynak adland\u0131rmalar\u0131nda \u00e7ak\u0131\u015fmalar\u0131 \u00f6nler ve kaynaklar\u0131n izolasyonunu sa\u011flar.<\/p>\n<p>*   <strong>Ingress:<\/strong> Uygulamalar\u0131n\u0131za d\u0131\u015far\u0131dan HTTP\/HTTPS trafi\u011fi y\u00f6nlendirmek i\u00e7in bir yol sa\u011flar. Servisler genellikle sadece TCP\/UDP katman\u0131nda \u00e7al\u0131\u015f\u0131rken, Ingress, domain ad\u0131 tabanl\u0131 y\u00f6nlendirme, SSL sonland\u0131rma ve yol tabanl\u0131 y\u00f6nlendirme gibi geli\u015fmi\u015f \u00f6zellikler sunar. Bir Ingress Controller (\u00f6rn. Nginx Ingress Controller) k\u00fcmede \u00e7al\u0131\u015farak Ingress kurallar\u0131n\u0131 uygular.<\/p>\n<h3>Uygulamal\u0131 \u00d6rnek: Basit Bir Nginx Uygulamas\u0131 Da\u011f\u0131t\u0131m\u0131<\/h3>\n<p>\u015eimdi yukar\u0131da bahsedilen nesneleri kullanarak basit bir Nginx web sunucusunu Kubernetes'e nas\u0131l da\u011f\u0131tabilece\u011fimize dair bir \u00f6rnek g\u00f6relim.<\/p>\n<pre><code class=\"language-html\"><pre><code>\n# nginx-deployment-service.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-container\n        image: nginx:latest\n        ports:\n        - containerPort: 80\n---\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: LoadBalancer # E\u011fer bulut ortam\u0131ndaysan\u0131z d\u0131\u015far\u0131dan eri\u015fim i\u00e7in\n                     # On-premise veya Minikube i\u00e7in ClusterIP veya NodePort kullan\u0131n\n<\/code><\/pre>\n<p>Bu YAML dosyas\u0131nda iki Kubernetes nesnesi tan\u0131mlanm\u0131\u015ft\u0131r:<br \/>\n1.  <strong>Deployment (<code>nginx-deployment<\/code>):<\/strong> \u00dc\u00e7 adet Nginx Pod&#039;unun her zaman \u00e7al\u0131\u015fmas\u0131n\u0131 garanti eder. <code>nginx:latest<\/code> g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc kullan\u0131r ve container i\u00e7inde 80 numaral\u0131 portu a\u00e7ar.<br \/>\n2.  <strong>Service (<code>nginx-service<\/code>):<\/strong> <code>app: nginx<\/code> etiketine sahip t\u00fcm Pod&#039;lar\u0131 hedefleyen bir Servis olu\u015fturur. D\u0131\u015far\u0131dan gelen trafi\u011fi 80 numaral\u0131 porttan al\u0131p, Pod&#039;lar\u0131n 80 numaral\u0131 portuna y\u00f6nlendirir. <code>LoadBalancer<\/code> tipi sayesinde, bulut sa\u011flay\u0131c\u0131n\u0131z otomatik olarak bir harici IP adresi veya DNS ad\u0131 atayarak bu servisi internete a\u00e7acakt\u0131r.<\/p>\n<h3><code>kubectl<\/code> ile Da\u011f\u0131t\u0131m<\/h3>\n<p>Bu dosyay\u0131 kaydettikten sonra (\u00f6rne\u011fin <code>nginx-deployment-service.yaml<\/code> olarak), a\u015fa\u011f\u0131daki komutla k\u00fcmenize uygulayabilirsiniz:<\/p>\n<pre><code>\nkubectl apply -f nginx-deployment-service.yaml\n<\/code><\/pre>\n<p>Da\u011f\u0131t\u0131m\u0131n durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code>\nkubectl get deployments\nkubectl get pods\nkubectl get services\n<\/code><\/pre>\n<p>Bu komutlar size Deployment, Pod ve Servislerinizin mevcut durumunu g\u00f6sterecektir. <code>nginx-service<\/code> i\u00e7in <code>EXTERNAL-IP<\/code> alan\u0131, LoadBalancer tipindeki servisiniz arac\u0131l\u0131\u011f\u0131yla Nginx uygulaman\u0131za eri\u015febilece\u011finiz IP adresini g\u00f6sterecektir. \u0130\u015fte bu kadar basit! Kubernetes nesneleri sayesinde, karma\u015f\u0131k bir altyap\u0131 y\u00f6netimi yerine, uygulaman\u0131z\u0131n istenen durumunu deklaratif bir \u015fekilde tan\u0131mlayarak dakikalar i\u00e7inde canl\u0131ya alabilirsiniz.<\/p>\n<h2>G\u00fcvenli ve \u00d6l\u00e7eklenebilir Bir K\u00fcme \u0130\u00e7in Hangi \u0130leri D\u00fczey \u0130pu\u00e7lar\u0131 Var?<\/h2>\n<p>Kubernetes&#039;in temel mimarisini ve nesnelerini anlad\u0131ktan sonra, s\u0131ra uygulamalar\u0131n\u0131z\u0131 daha g\u00fcvenli, daha \u00f6l\u00e7eklenebilir ve daha dayan\u0131kl\u0131 hale getirmeye gelir. \u0130\u015fte deneyimli kullan\u0131c\u0131lar i\u00e7in baz\u0131 ileri d\u00fczey ipu\u00e7lar\u0131 ve p\u00fcf noktalar\u0131:<\/p>\n<h3>Otomatik \u00d6l\u00e7ekleme (Autoscaling) ile Kaynaklar\u0131 Optimize Edin<\/h3>\n<p>Kubernetes, uygulaman\u0131z\u0131n y\u00fck\u00fcne g\u00f6re otomatik olarak \u00f6l\u00e7eklenebilme yetene\u011fi sunar, bu da hem maliyet verimlili\u011fi hem de y\u00fcksek performans i\u00e7in kritik \u00f6neme sahiptir.<br \/>\n*   <strong>Horizontal Pod Autoscaler (HPA):<\/strong> Pod&#039;lar\u0131n\u0131z\u0131n CPU kullan\u0131m\u0131, bellek t\u00fcketimi veya \u00f6zel metrikler (\u00f6rne\u011fin, kuyruktaki mesaj say\u0131s\u0131) gibi belirli g\u00f6zlemlenebilir metrikler based\u0131nda otomatik olarak \u00e7o\u011falt\u0131lmas\u0131n\u0131 veya azalt\u0131lmas\u0131n\u0131 sa\u011flar. B\u00f6ylece, yo\u011fun trafik zamanlar\u0131nda uygulaman\u0131z yava\u015flamazken, sakin zamanlarda gereksiz kaynak t\u00fcketimini \u00f6nlersiniz.<\/code>html<\/p>\n<div class=\"expert-tip\">\n      Uzman \u0130pucu: HPA'y\u0131 uygulaman\u0131z\u0131n kritik i\u015f y\u00fckleri i\u00e7in mutlaka yap\u0131land\u0131r\u0131n. Ancak, metrikleri do\u011fru se\u00e7mek ve hedef de\u011ferleri dikkatlice belirlemek, a\u015f\u0131r\u0131 veya yetersiz \u00f6l\u00e7eklendirmeyi \u00f6nleyecektir.\n    <\/div>\n<pre><code class=\"language-plaintext\">*   <strong>Cluster Autoscaler:<\/strong> E\u011fer mevcut d\u00fc\u011f\u00fcmlerinizdeki kaynaklar yetersiz kal\u0131rsa, Cluster Autoscaler, altyap\u0131 sa\u011flay\u0131c\u0131n\u0131z (AWS, GCP, Azure vb.) \u00fczerinde otomatik olarak yeni d\u00fc\u011f\u00fcmler (VM&#039;ler) ba\u015flatarak k\u00fcmenizin kapasitesini geni\u015fletir. \u0130\u015f y\u00fck\u00fc azald\u0131\u011f\u0131nda ise gereksiz d\u00fc\u011f\u00fcmleri kapat\u0131r. Bu, ger\u00e7ek bir \"sonsuz\" \u00f6l\u00e7eklenebilirlik hissi verir.\n\n<h3>G\u00fcvenlik En \u0130yi Uygulamalar\u0131 ile K\u00fcmenizi Sa\u011flamla\u015ft\u0131r\u0131n<\/h3>\nKubernetes, g\u00fcvenlik a\u00e7\u0131s\u0131ndan g\u00fc\u00e7l\u00fc mekanizmalar sunsa da, bu mekanizmalar\u0131 do\u011fru yap\u0131land\u0131rmak sizin sorumlulu\u011funuzdad\u0131r.\n*   <strong>Role-Based Access Control (RBAC):<\/strong> Kimin neye eri\u015febilece\u011fini (\u00f6rne\u011fin, kim Pod olu\u015fturabilir, kim Servis silebilir) tan\u0131mlamak i\u00e7in RBAC&#039;\u0131 kullan\u0131n. En az ayr\u0131cal\u0131k ilkesini uygulayarak, yaln\u0131zca gerekli yetkilere sahip kullan\u0131c\u0131lar\u0131n ve servis hesaplar\u0131n\u0131n i\u015flem yapmas\u0131na izin verin.\n*   <strong>Network Policies:<\/strong> Pod&#039;lar aras\u0131ndaki a\u011f trafi\u011fini izole etmek ve kontrol etmek i\u00e7in Network Policies tan\u0131mlay\u0131n. \u00d6rne\u011fin, sadece belirli bir namespace&#039;ten gelen trafi\u011fe izin vermek veya bir mikroservisin sadece belirli di\u011fer mikroservislerle konu\u015fmas\u0131na izin vermek gibi kurallar belirleyebilirsiniz. Bu, bir g\u00fcvenlik ihlali durumunda yay\u0131lmay\u0131 s\u0131n\u0131rlar.\n*   <strong>Pod Security Standards (PSS) \/ Pod Security Policies (PSP - deprecated):<\/strong> Pod&#039;lar\u0131n g\u00fcvenlik ba\u011flam\u0131n\u0131 k\u0131s\u0131tlayan standartlar veya politikalar uygulay\u0131n. Bu, ayr\u0131cal\u0131kl\u0131 container&#039;lar\u0131n \u00e7al\u0131\u015fmas\u0131n\u0131 engellemek, root olarak \u00e7al\u0131\u015fmaya izin vermemek veya hassas host kaynaklar\u0131na eri\u015fimi k\u0131s\u0131tlamak gibi \u00f6nlemleri i\u00e7erir.\n*   <strong>Container Image G\u00fcvenli\u011fi:<\/strong> Yaln\u0131zca g\u00fcvenilir kaynaklardan gelen container g\u00f6r\u00fcnt\u00fclerine g\u00fcvenin ve s\u00fcrekli olarak g\u00fcvenlik a\u00e7\u0131klar\u0131 i\u00e7in taray\u0131n. Kendi kay\u0131t defterinizde (private registry) tuttu\u011funuz g\u00f6r\u00fcnt\u00fcleri de d\u00fczenli olarak g\u00fcncelleyin.\n\n<h3>Y\u00fcksek Eri\u015filebilirlik (HA) ile Kesintisiz \u00c7al\u0131\u015fma Sa\u011flay\u0131n<\/h3>\nKontrol D\u00fczlemi bile\u015fenlerinin tek bir hata noktas\u0131 olmamas\u0131 i\u00e7in y\u00fcksek eri\u015filebilirlik (HA) yap\u0131land\u0131rmalar\u0131 kullan\u0131n.\n*   Birden fazla Kontrol D\u00fczlemi d\u00fc\u011f\u00fcm\u00fc kurarak, bir d\u00fc\u011f\u00fcm\u00fcn ar\u0131zalanmas\u0131 durumunda bile k\u00fcmenizin \u00e7al\u0131\u015fmaya devam etmesini sa\u011flay\u0131n. Bu, genellikle \u00fc\u00e7 veya be\u015f etcd, API Sunucusu ve di\u011fer kontrol d\u00fczlemi bile\u015fenleri ile yap\u0131l\u0131r.\n*   \u00c7al\u0131\u015fan D\u00fc\u011f\u00fcmlerinizi farkl\u0131 b\u00f6lgelere veya eri\u015filebilirlik alanlar\u0131na da\u011f\u0131tarak b\u00f6lgesel ar\u0131zalara kar\u015f\u0131 diren\u00e7li olun.\n\n<h3>Monitoring ve Logging ile G\u00f6r\u00fcn\u00fcrl\u00fck Kazan\u0131n<\/h3>\nUygulamalar\u0131n\u0131z\u0131n ve k\u00fcmenizin sa\u011fl\u0131\u011f\u0131n\u0131 anlamak, sorunlar\u0131 tespit etmek ve gidermek i\u00e7in kapsaml\u0131 izleme ve g\u00fcnl\u00fckleme (logging) \u00e7\u00f6z\u00fcmleri olmazsa olmazd\u0131r.\n*   <strong>Prometheus ve Grafana:<\/strong> K\u00fcme metriklerini toplamak, depolamak ve g\u00f6rselle\u015ftirmek i\u00e7in end\u00fcstri standard\u0131 ara\u00e7lard\u0131r. CPU, bellek kullan\u0131m\u0131, a\u011f trafi\u011fi gibi metrikleri izleyerek performans darbo\u011fazlar\u0131n\u0131 veya anormal davran\u0131\u015flar\u0131 tespit edebilirsiniz.\n*   <strong>ELK Stack (Elasticsearch, Logstash, Kibana) veya Loki\/Grafana:<\/strong> Uygulama ve sistem g\u00fcnl\u00fcklerini merkezi bir yerde toplamak, indekslemek ve analiz etmek i\u00e7in kullan\u0131l\u0131r. Hatalar\u0131 ay\u0131klamak, g\u00fcvenlik olaylar\u0131n\u0131 incelemek veya uygulaman\u0131z\u0131n davran\u0131\u015f\u0131n\u0131 anlamak i\u00e7in paha bi\u00e7ilmezdir.\n\nBu ileri d\u00fczey stratejileri uygulayarak, Kubernetes k\u00fcmenizin yaln\u0131zca uygulamalar\u0131n\u0131z\u0131 \u00e7al\u0131\u015ft\u0131rmakla kalmay\u0131p, ayn\u0131 zamanda onlar\u0131 g\u00fcvenli, verimli ve kesintisiz bir \u015fekilde sunabilen sa\u011flam bir platform haline geldi\u011finden emin olabilirsiniz. Unutmay\u0131n, Kubernetes yolculu\u011fu s\u00fcrekli \u00f6\u011frenme ve iyile\u015ftirme gerektiren bir s\u00fcre\u00e7tir.\n\n<h2>Ger\u00e7ek D\u00fcnya Senaryosu: B\u00fcy\u00fck Bir Kurulu\u015f Kubernetes&#039;i Nas\u0131l Kullan\u0131r?<\/h2>\nKubernetes&#039;in sadece k\u00fc\u00e7\u00fck \u00f6l\u00e7ekli projeler veya bireysel geli\u015ftiriciler i\u00e7in de\u011fil, ayn\u0131 zamanda d\u00fcnya genelindeki b\u00fcy\u00fck kurulu\u015flar i\u00e7in de stratejik bir \u00f6neme sahip oldu\u011funu g\u00f6rmek \u015fa\u015f\u0131rt\u0131c\u0131 de\u011fildir. B\u00fcy\u00fck \u00f6l\u00e7ekli bir kurulu\u015fun Kubernetes&#039;i nas\u0131l entegre etti\u011fini ve hangi avantajlar\u0131 elde etti\u011fini anlamak, platformun ger\u00e7ek potansiyelini kavramam\u0131za yard\u0131mc\u0131 olacakt\u0131r. Bu senaryo, genellikle \"bulut yerel (cloud-native)\" d\u00f6n\u00fc\u015f\u00fcm yolculu\u011funun bir par\u00e7as\u0131d\u0131r.\n\nBir finansal teknoloji (fintech) \u015firketini ele alal\u0131m. Bu \u015firket, milyonlarca m\u00fc\u015fteriye hizmet veren, y\u00fcksek i\u015flem hacmine sahip bir mobil bankac\u0131l\u0131k uygulamas\u0131na sahip. Uygulama, microservis mimarisine dayal\u0131 onlarca farkl\u0131 servisten olu\u015fuyor: hesap y\u00f6netimi, i\u015flem ge\u00e7mi\u015fi, g\u00fcvenlik do\u011frulama, bildirimler, kredi skorlama ve daha fazlas\u0131. Eski sistemlerde bu servisler sanal makineler (VM&#039;ler) \u00fczerinde \u00e7al\u0131\u015f\u0131yor ve her yeni servisin da\u011f\u0131t\u0131m\u0131 veya mevcutlar\u0131n g\u00fcncellenmesi haftalar s\u00fcrebiliyordu. Manuel s\u00fcre\u00e7ler hataya a\u00e7\u0131kt\u0131 ve \u00f6l\u00e7eklendirme dinamik m\u00fc\u015fteri taleplerini kar\u015f\u0131layam\u0131yordu.\n\n<h3>DevOps K\u00fclt\u00fcr\u00fcnde Kubernetes&#039;in Yeri<\/h3>\nFintech \u015firketi, operasyonel verimlili\u011fi art\u0131rmak ve inovasyon h\u0131z\u0131n\u0131 y\u00fckseltmek i\u00e7in DevOps prensiplerini benimsemi\u015fti. Kubernetes, bu d\u00f6n\u00fc\u015f\u00fcm\u00fcn kalbinde yer ald\u0131.\n*   <strong>S\u00fcrekli Entegrasyon\/S\u00fcrekli Teslimat (CI\/CD) Entegrasyonu:<\/strong> Geli\u015ftiriciler kodlar\u0131n\u0131 Git deposuna i\u015flediklerinde, Jenkins veya GitLab CI\/CD gibi otomasyon ara\u00e7lar\u0131 devreye girer. Kod otomatik olarak test edilir, container g\u00f6r\u00fcnt\u00fcs\u00fc olu\u015fturulur ve bir container kay\u0131t defterine itilir. Ard\u0131ndan, Kubernetes manifest dosyalar\u0131 (Deployment, Service vb.) g\u00fcncellenir ve <code>kubectl<\/code> veya Helm gibi ara\u00e7larla Kubernetes k\u00fcmesine uygulan\u0131r. Bu s\u00fcre\u00e7 tamamen otomatikle\u015ftirildi\u011fi i\u00e7in, bir kod de\u011fi\u015fikli\u011finin canl\u0131ya al\u0131nmas\u0131 art\u0131k dakikalar s\u00fcr\u00fcyor, eski haftal\u0131k veya ayl\u0131k da\u011f\u0131t\u0131m d\u00f6ng\u00fclerine k\u0131yasla muazzam bir h\u0131z art\u0131\u015f\u0131 sa\u011fl\u0131yor.<\/pre>\n<p><\/code>html<\/p>\n<div class=\"expert-tip\">\n      Uzman \u0130pucu: CI\/CD boru hatt\u0131n\u0131zda Kubernetes manifest dosyalar\u0131n\u0131 otomatik olarak g\u00fcncelleyebilecek ara\u00e7lar (\u00f6rne\u011fin Kustomize veya Helm) kullanarak \"GitOps\" yakla\u015f\u0131m\u0131n\u0131 benimseyin. Bu, altyap\u0131 kodunu versiyon kontrol\u00fcne alarak tutarl\u0131l\u0131k ve izlenebilirlik sa\u011flar.\n    <\/div>\n<p>    ```<\/p>\n<p>*   <strong>Mobil Uygulamalar\u0131n Arka Ucu:<\/strong> Mobil bankac\u0131l\u0131k uygulamas\u0131n\u0131n arka u\u00e7 servislerinin tamam\u0131 Kubernetes \u00fczerinde \u00e7al\u0131\u015f\u0131yor. Kullan\u0131c\u0131 say\u0131s\u0131 aniden artt\u0131\u011f\u0131nda (\u00f6rne\u011fin maa\u015f g\u00fcnlerinde), HPA ve Cluster Autoscaler devreye girerek Pod ve d\u00fc\u011f\u00fcm say\u0131lar\u0131n\u0131 otomatik olarak art\u0131r\u0131r. Bu, uygulaman\u0131n her zaman h\u0131zl\u0131 ve duyarl\u0131 kalmas\u0131n\u0131 sa\u011flar, b\u00f6ylece kullan\u0131c\u0131 deneyimi kesintiye u\u011framaz. Ayr\u0131ca, farkl\u0131 co\u011frafi b\u00f6lgelerdeki m\u00fc\u015fterilere daha iyi hizmet vermek i\u00e7in Kubernetes k\u00fcmeleri global olarak da\u011f\u0131t\u0131l\u0131r.<\/p>\n<h3>Hibrit\/\u00c7oklu Bulut Stratejileri<\/h3>\n<p>Fintech \u015firketleri, reg\u00fclasyonlar veya i\u015f s\u00fcreklili\u011fi planlar\u0131 nedeniyle genellikle tek bir bulut sa\u011flay\u0131c\u0131s\u0131na ba\u011f\u0131ml\u0131 kalmak istemezler. Kubernetes, bu \u00e7oklu bulut stratejileri i\u00e7in m\u00fckemmel bir temel sa\u011flar.<br \/>\n*   \u015eirket, hem birincil bulut sa\u011flay\u0131c\u0131s\u0131nda (\u00f6rne\u011fin AWS EKS) hem de ikincil bir sa\u011flay\u0131c\u0131da (\u00f6rne\u011fin Azure AKS) veya hatta kendi veri merkezlerinde (on-premise) Kubernetes k\u00fcmeleri \u00e7al\u0131\u015ft\u0131r\u0131r. Kubernetes'in platformdan ba\u011f\u0131ms\u0131z yap\u0131s\u0131 sayesinde, uygulamalar\u0131n da\u011f\u0131t\u0131m\u0131 ve y\u00f6netimi t\u00fcm bu ortamlarda standart bir \u015fekilde yap\u0131labilir.<br \/>\n*   Bu, hem felaket kurtarma senaryolar\u0131nda bir k\u00fcmeden di\u011ferine h\u0131zl\u0131 ge\u00e7i\u015f yapabilme yetene\u011fi sunar hem de bulut sa\u011flay\u0131c\u0131lar\u0131 aras\u0131nda en uygun maliyetli ve performansl\u0131 \u00e7\u00f6z\u00fcmleri se\u00e7me esnekli\u011fi sa\u011flar.<\/p>\n<h3>Vaka Analizi \u00d6zeti<\/h3>\n<p>Bu fintech \u015firketi, Kubernetes'i benimseyerek a\u015fa\u011f\u0131daki kazan\u0131mlar\u0131 elde etti:<br \/>\n*   <strong>H\u0131z ve \u00c7eviklik:<\/strong> Yeni \u00f6zelliklerin pazara sunulma s\u00fcresi haftalardan dakikalara d\u00fc\u015ft\u00fc.<br \/>\n*   <strong>\u00d6l\u00e7eklenebilirlik:<\/strong> M\u00fc\u015fteri talebine an\u0131nda yan\u0131t verebilen, otomatik \u00f6l\u00e7eklenen bir altyap\u0131.<br \/>\n*   <strong>G\u00fcvenilirlik:<\/strong> Otomatik hata iyile\u015ftirme ve y\u00fcksek eri\u015filebilirlik sayesinde %99.99'un \u00fczerinde \u00e7al\u0131\u015fma s\u00fcresi.<br \/>\n*   <strong>Maliyet Optimizasyonu:<\/strong> Kaynaklar\u0131n verimli kullan\u0131m\u0131 ve otomatik \u00f6l\u00e7ekleme sayesinde altyap\u0131 maliyetlerinde \u00f6nemli tasarruflar.<br \/>\n*   <strong>Standartla\u015fma:<\/strong> Uygulama da\u011f\u0131t\u0131m\u0131 ve y\u00f6netimi i\u00e7in tutarl\u0131 bir platform, geli\u015ftirici ve operasyonel ekipler aras\u0131nda i\u015fbirli\u011fini art\u0131rd\u0131.<\/p>\n<p>Kubernetes, b\u00f6ylece sadece bir teknolojik ara\u00e7 olmaktan \u00e7\u0131karak, b\u00fcy\u00fck kurulu\u015flar\u0131n dijital d\u00f6n\u00fc\u015f\u00fcm yolculu\u011funda rekabet avantaj\u0131 sa\u011flayan stratejik bir i\u015f platformuna d\u00f6n\u00fc\u015fm\u00fc\u015ft\u00fcr.<\/p>\n<h2>Kubernetes Yolculu\u011funuzu Nas\u0131l Devam Ettirmelisiniz? Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>Bu makale boyunca, Kubernetes'in ne oldu\u011fu, neden \u00f6nemli oldu\u011fu, temel mimarisi, kritik bile\u015fenleri ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l kullan\u0131ld\u0131\u011f\u0131na dair kapsaml\u0131 bir bak\u0131\u015f sunduk. Kubernetes'in, modern da\u011f\u0131t\u0131k sistemlerin karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 y\u00f6netmek i\u00e7in vazge\u00e7ilmez bir ara\u00e7 oldu\u011funu ve geli\u015ftiricilere inovasyon i\u00e7in esneklik, operasyon ekiplerine ise g\u00fcvenilirlik ve verimlilik sa\u011flad\u0131\u011f\u0131n\u0131 g\u00f6rd\u00fck. Kontrol D\u00fczlemi'nden \u00c7al\u0131\u015fan D\u00fc\u011f\u00fcmlere, Pod'lardan Servis'lere kadar her bir bile\u015fenin, uygulamalar\u0131m\u0131z\u0131n sorunsuz bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 nas\u0131l sa\u011flad\u0131\u011f\u0131n\u0131 anlad\u0131k. Art\u0131k bu heyecan verici ve g\u00fc\u00e7l\u00fc platforma sa\u011flam bir ba\u015flang\u0131\u00e7 yapmak i\u00e7in gereken temel bilgiye sahipsiniz.<\/p>\n<p>Kubernetes yolculu\u011funuz burada bitmiyor, asl\u0131nda \u015fimdi ba\u015fl\u0131yor. \u00d6\u011frenilecek \u00e7ok \u015fey var ve pratik deneyim, bilginizi peki\u015ftirmenin en iyi yoludur. Resmi Kubernetes dok\u00fcmantasyonunu incelemeye devam edin, a\u00e7\u0131k kaynak projelerine katk\u0131da bulunun ve Kubernetes toplulu\u011funun aktif bir par\u00e7as\u0131 olun. Unutmay\u0131n, bu teknoloji h\u0131zla geli\u015fiyor ve s\u00fcrekli \u00f6\u011frenmek bu alanda ba\u015far\u0131l\u0131 olman\u0131n anahtar\u0131d\u0131r. Kendi projelerinizi olu\u015fturarak, hatalar yaparak ve \u00e7\u00f6z\u00fcmler bularak deneyiminizi art\u0131r\u0131n. Gelece\u011fin bulut yerel altyap\u0131s\u0131n\u0131n temelini olu\u015fturan Kubernetes ile yetkinliklerinizi geli\u015ftirmeye devam etti\u011finizde, modern uygulama geli\u015ftirme ve da\u011f\u0131t\u0131m\u0131nda lider konuma gelebilirsiniz.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ol>\n<li>\n    <strong>Kubernetes \u00f6\u011frenmek zor mu?<\/strong><\/p>\n<p>Kubernetes, ba\u015flang\u0131\u00e7ta karma\u015f\u0131k g\u00f6r\u00fcnebilir \u00e7\u00fcnk\u00fc bir\u00e7ok yeni kavram ve bile\u015fen i\u00e7erir. Ancak, ad\u0131m ad\u0131m ilerleyerek, temel prensipleri kavrayarak ve pratik yaparak \u00f6\u011frenmesi kesinlikle m\u00fcmk\u00fcnd\u00fcr. Minikube gibi yerel ortamda \u00e7al\u0131\u015fan ara\u00e7larla ba\u015flayarak deneyim kazanmak, \u00f6\u011frenme s\u00fcrecini h\u0131zland\u0131rabilir.<\/p>\n<\/li>\n<li>\n    <strong>Hangi bulut sa\u011flay\u0131c\u0131lar\u0131 Kubernetes deste\u011fi sunuyor?<\/strong><\/p>\n<p>Hemen hemen t\u00fcm b\u00fcy\u00fck bulut sa\u011flay\u0131c\u0131lar\u0131, y\u00f6netilen Kubernetes hizmetleri sunmaktad\u0131r. Ba\u015fl\u0131calar\u0131: Amazon Web Services (AWS) ile EKS (Elastic Kubernetes Service), Google Cloud Platform (GCP) ile GKE (Google Kubernetes Engine) ve Microsoft Azure ile AKS (Azure Kubernetes Service).<\/p>\n<\/li>\n<li>\n    <strong>Minikube nedir ve ne i\u015fe yarar?<\/strong><\/p>\n<p>Minikube, yerel bilgisayar\u0131n\u0131zda (diz\u00fcst\u00fc bilgisayar\u0131n\u0131zda veya i\u015f istasyonunuzda) tek d\u00fc\u011f\u00fcml\u00fc bir Kubernetes k\u00fcmesi \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131yan bir ara\u00e7t\u0131r. Geli\u015ftiricilerin Kubernetes'i kolayca denemesi, uygulama geli\u015ftirmesi ve test etmesi i\u00e7in idealdir. Kurulumu basit ve kullan\u0131m\u0131 kolayd\u0131r.<\/p>\n<\/li>\n<li>\n    <strong>Kubernetes kullanman\u0131n maliyeti ne kadar?<\/strong><\/p>\n<p>Kubernetes'in kendisi a\u00e7\u0131k kaynakl\u0131 ve \u00fccretsizdir. Ancak, k\u00fcmenizi \u00e7al\u0131\u015ft\u0131rmak i\u00e7in gerekli altyap\u0131 (sunucular, a\u011f, depolama) i\u00e7in maliyetler olacakt\u0131r. Bulut sa\u011flay\u0131c\u0131lar\u0131nda y\u00f6netilen Kubernetes hizmetleri i\u00e7in genellikle kontrol d\u00fczlemi i\u00e7in k\u00fc\u00e7\u00fck bir \u00fccret al\u0131n\u0131r ve \u00e7al\u0131\u015fan d\u00fc\u011f\u00fcmler i\u00e7in kulland\u0131\u011f\u0131n\u0131z sanal makine ve di\u011fer kaynaklar\u0131n \u00fccretini \u00f6dersiniz. Do\u011fru boyutland\u0131rma ve otomatik \u00f6l\u00e7ekleme ile maliyetler optimize edilebilir.<\/p>\n<\/li>\n<li>\n    <strong>Helm nedir ve ne i\u00e7in kullan\u0131l\u0131r?<\/strong><\/p>\n<p>Helm, Kubernetes uygulamalar\u0131n\u0131 y\u00f6netmek i\u00e7in bir paket y\u00f6neticisidir. Bir Helm Chart'\u0131, bir Kubernetes uygulamas\u0131n\u0131n t\u00fcm kaynaklar\u0131n\u0131 (Deployment'lar, Servisler, ConfigMap'ler vb.) tek bir pakette tan\u0131mlar. Bu sayede karma\u015f\u0131k uygulamalar\u0131n Kubernetes'e kolayca da\u011f\u0131t\u0131lmas\u0131n\u0131, g\u00fcncellenmesini ve y\u00f6netilmesini sa\u011flar. Bir\u00e7ok a\u00e7\u0131k kaynak projesi ve ticari yaz\u0131l\u0131m, Kubernetes'e da\u011f\u0131tmak i\u00e7in Helm Chart'lar\u0131 sunar.<\/p>\n<\/li>\n<\/ol>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Bulut tabanl\u0131 uygulamalar\u0131n\u0131z\u0131 esnek ve \u00f6l\u00e7eklenebilir bir \u015fekilde y\u00f6netmek mi istiyorsunuz? Kubernetes k\u00fcme mimarisinin derinliklerine inerek, temel bile\u015fenleri&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-35811","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 Yolculu\u011funun Ba\u015flang\u0131c\u0131: K\u00fcme Mimarisi ve Temelleri<\/title>\n<meta name=\"description\" content=\"Kubernetes, ba\u015flang\u0131\u00e7ta karma\u015f\u0131k g\u00f6r\u00fcnebilir \u00e7\u00fcnk\u00fc bir\u00e7ok yeni kavram ve bile\u015fen i\u00e7erir. Ancak, ad\u0131m ad\u0131m ilerleyerek, temel prensipleri kavrayarak ve pratik yaparak \u00f6\u011frenmesi kesinlikle m\u00fcmk\u00fcnd\u00fcr. Minikube gibi yerel ortamda \u00e7al\u0131\u015fan ara\u00e7larla ba\u015flayarak deneyim kazanmak, \u00f6\u011frenme s\u00fcrecini h\u0131zland\u0131rabilir.\" \/>\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-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kubernetes Yolculu\u011funun Ba\u015flang\u0131c\u0131: K\u00fcme Mimarisi ve Temelleri\" \/>\n<meta property=\"og:description\" content=\"Kubernetes, ba\u015flang\u0131\u00e7ta karma\u015f\u0131k g\u00f6r\u00fcnebilir \u00e7\u00fcnk\u00fc bir\u00e7ok yeni kavram ve bile\u015fen i\u00e7erir. Ancak, ad\u0131m ad\u0131m ilerleyerek, temel prensipleri kavrayarak ve pratik yaparak \u00f6\u011frenmesi kesinlikle m\u00fcmk\u00fcnd\u00fcr. Minikube gibi yerel ortamda \u00e7al\u0131\u015fan ara\u00e7larla ba\u015flayarak deneyim kazanmak, \u00f6\u011frenme s\u00fcrecini h\u0131zland\u0131rabilir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-04T01:00:58+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=\"25 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Kubernetes Yolculu\u011funun Ba\u015flang\u0131c\u0131: K\u00fcme Mimarisi ve Temelleri\",\"datePublished\":\"2025-12-04T01:00:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/\"},\"wordCount\":3976,\"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-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/\",\"name\":\"Kubernetes Yolculu\u011funun Ba\u015flang\u0131c\u0131: K\u00fcme Mimarisi ve Temelleri\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-04T01:00:58+00:00\",\"description\":\"Kubernetes, ba\u015flang\u0131\u00e7ta karma\u015f\u0131k g\u00f6r\u00fcnebilir \u00e7\u00fcnk\u00fc bir\u00e7ok yeni kavram ve bile\u015fen i\u00e7erir. Ancak, ad\u0131m ad\u0131m ilerleyerek, temel prensipleri kavrayarak ve pratik yaparak \u00f6\u011frenmesi kesinlikle m\u00fcmk\u00fcnd\u00fcr. Minikube gibi yerel ortamda \u00e7al\u0131\u015fan ara\u00e7larla ba\u015flayarak deneyim kazanmak, \u00f6\u011frenme s\u00fcrecini h\u0131zland\u0131rabilir.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kubernetes Yolculu\u011funun Ba\u015flang\u0131c\u0131: K\u00fcme Mimarisi ve Temelleri\"}]},{\"@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 Yolculu\u011funun Ba\u015flang\u0131c\u0131: K\u00fcme Mimarisi ve Temelleri","description":"Kubernetes, ba\u015flang\u0131\u00e7ta karma\u015f\u0131k g\u00f6r\u00fcnebilir \u00e7\u00fcnk\u00fc bir\u00e7ok yeni kavram ve bile\u015fen i\u00e7erir. Ancak, ad\u0131m ad\u0131m ilerleyerek, temel prensipleri kavrayarak ve pratik yaparak \u00f6\u011frenmesi kesinlikle m\u00fcmk\u00fcnd\u00fcr. Minikube gibi yerel ortamda \u00e7al\u0131\u015fan ara\u00e7larla ba\u015flayarak deneyim kazanmak, \u00f6\u011frenme s\u00fcrecini h\u0131zland\u0131rabilir.","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-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/","og_locale":"tr_TR","og_type":"article","og_title":"Kubernetes Yolculu\u011funun Ba\u015flang\u0131c\u0131: K\u00fcme Mimarisi ve Temelleri","og_description":"Kubernetes, ba\u015flang\u0131\u00e7ta karma\u015f\u0131k g\u00f6r\u00fcnebilir \u00e7\u00fcnk\u00fc bir\u00e7ok yeni kavram ve bile\u015fen i\u00e7erir. Ancak, ad\u0131m ad\u0131m ilerleyerek, temel prensipleri kavrayarak ve pratik yaparak \u00f6\u011frenmesi kesinlikle m\u00fcmk\u00fcnd\u00fcr. Minikube gibi yerel ortamda \u00e7al\u0131\u015fan ara\u00e7larla ba\u015flayarak deneyim kazanmak, \u00f6\u011frenme s\u00fcrecini h\u0131zland\u0131rabilir.","og_url":"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-04T01:00:58+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"25 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Kubernetes Yolculu\u011funun Ba\u015flang\u0131c\u0131: K\u00fcme Mimarisi ve Temelleri","datePublished":"2025-12-04T01:00:58+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/"},"wordCount":3976,"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-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/","url":"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/","name":"Kubernetes Yolculu\u011funun Ba\u015flang\u0131c\u0131: K\u00fcme Mimarisi ve Temelleri","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-04T01:00:58+00:00","description":"Kubernetes, ba\u015flang\u0131\u00e7ta karma\u015f\u0131k g\u00f6r\u00fcnebilir \u00e7\u00fcnk\u00fc bir\u00e7ok yeni kavram ve bile\u015fen i\u00e7erir. Ancak, ad\u0131m ad\u0131m ilerleyerek, temel prensipleri kavrayarak ve pratik yaparak \u00f6\u011frenmesi kesinlikle m\u00fcmk\u00fcnd\u00fcr. Minikube gibi yerel ortamda \u00e7al\u0131\u015fan ara\u00e7larla ba\u015flayarak deneyim kazanmak, \u00f6\u011frenme s\u00fcrecini h\u0131zland\u0131rabilir.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-yolculugunun-baslangici-kume-mimarisi-ve-temelleri\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Kubernetes Yolculu\u011funun Ba\u015flang\u0131c\u0131: K\u00fcme Mimarisi ve Temelleri"}]},{"@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\/35811","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=35811"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35811\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35811"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35811"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35811"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}