{"id":38367,"date":"2026-01-29T18:40:53","date_gmt":"2026-01-29T15:40:53","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38367"},"modified":"2026-01-29T18:40:53","modified_gmt":"2026-01-29T15:40:53","slug":"digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/","title":{"rendered":"DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) Kurulumu Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) Kurulumu Rehberi<\/h2>\n<p>DigitalOcean, bulut tabanl\u0131 hizmetler sunan pop\u00fcler bir sa\u011flay\u0131c\u0131d\u0131r ve geli\u015ftiricilere y\u00f6nelik basitli\u011fi ve maliyet etkinli\u011fi ile bilinir. Modern uygulama geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerinin temel ta\u015flar\u0131ndan biri haline gelen konteynerizasyon ve orkestrasyon i\u00e7in DigitalOcean, Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) hizmetini sunmaktad\u0131r. Bu rehber, DigitalOcean \u00fczerinde bir DOKS k\u00fcmesini s\u0131f\u0131rdan nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ve y\u00f6netece\u011finizi ad\u0131m ad\u0131m detayl\u0131 bir \u015fekilde a\u00e7\u0131klayacakt\u0131r.<\/p>\n<h2>DOKS Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?<\/h2>\n<p>Kubernetes, konteynerize edilmi\u015f i\u015f y\u00fcklerini ve hizmetleri y\u00f6netmek i\u00e7in a\u00e7\u0131k kaynakl\u0131 bir sistemdir. Da\u011f\u0131t\u0131m, \u00f6l\u00e7eklendirme ve uygulama y\u00f6netimini otomatikle\u015ftiren g\u00fc\u00e7l\u00fc bir platform sunar. Ancak Kubernetes&#8217;in kendisi karma\u015f\u0131k olabilir; bir k\u00fcmenin kurulumu, y\u00f6netimi ve bak\u0131m\u0131 \u00f6nemli bir operasyonel y\u00fck getirebilir. \u0130\u015fte burada &#8220;y\u00f6netilen Kubernetes&#8221; hizmetleri devreye girer.<\/p>\n<p>DigitalOcean Managed Kubernetes (DOKS), DigitalOcean taraf\u0131ndan sa\u011flanan, Kubernetes kontrol d\u00fczleminin (master d\u00fc\u011f\u00fcmler) y\u00f6netimini ve bak\u0131m\u0131n\u0131 \u00fcstlenen bir hizmettir. Bu, kullan\u0131c\u0131lar\u0131n sadece i\u015f y\u00fcklerini \u00e7al\u0131\u015ft\u0131racak d\u00fc\u011f\u00fcmler (node&#8217;lar) ve uygulamalar\u0131n\u0131n kendisiyle ilgilenmesini sa\u011flar. Kontrol d\u00fczlemi y\u00fckseltmeleri, g\u00fcvenlik yamalar\u0131 ve temel altyap\u0131 y\u00f6netimi DigitalOcean taraf\u0131ndan yap\u0131l\u0131r.<\/p>\n<h3>DOKS&#8217;un Temel Faydalar\u0131<\/h3>\n<p>*   <strong>Basitlik ve H\u0131z:<\/strong> DigitalOcean&#8217;\u0131n kullan\u0131c\u0131 dostu aray\u00fcz\u00fc ve <code>doctl<\/code> CLI arac\u0131 sayesinde dakikalar i\u00e7inde bir Kubernetes k\u00fcmesi kurabilirsiniz. Kontrol d\u00fczleminin y\u00f6netimiyle u\u011fra\u015fmak zorunda kalmazs\u0131n\u0131z.<br \/>\n*   <strong>Maliyet Etkinli\u011fi:<\/strong> DigitalOcean, uygun fiyatland\u0131rma modelleri sunar. DOKS&#8217;ta kontrol d\u00fczlemi i\u00e7in \u00fccret al\u0131nmaz, yaln\u0131zca \u00e7al\u0131\u015fan d\u00fc\u011f\u00fcmler (worker nodes) ve kullan\u0131lan di\u011fer kaynaklar (Load Balancer, depolama vb.) i\u00e7in \u00f6deme yapars\u0131n\u0131z.<br \/>\n*   <strong>\u00d6l\u00e7eklenebilirlik:<\/strong> Uygulamalar\u0131n\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re d\u00fc\u011f\u00fcm havuzlar\u0131n\u0131 kolayca \u00f6l\u00e7eklendirebilir veya otomatik \u00f6l\u00e7eklendirme (Cluster Autoscaler) kurallar\u0131n\u0131 ayarlayabilirsiniz.<br \/>\n*   <strong>Entegrasyonlar:<\/strong> DigitalOcean ekosistemiyle sorunsuz entegrasyon sa\u011flar. DigitalOcean Load Balancer, Block Storage, Container Registry ve Managed Databases gibi hizmetleri DOKS k\u00fcmelerinizle kolayca kullanabilirsiniz.<br \/>\n*   <strong>G\u00fcvenilirlik:<\/strong> DigitalOcean, y\u00fcksek kullan\u0131labilirlik ve g\u00fcvenilirlik sa\u011flamak i\u00e7in kontrol d\u00fczlemini y\u00f6netir.<br \/>\n*   <strong>Geli\u015ftirici Dostu:<\/strong> <code>kubectl<\/code> ve <code>doctl<\/code> gibi standart ara\u00e7larla tam uyumluluk sunar, bu da mevcut Kubernetes bilginizi do\u011frudan kullanabilece\u011finiz anlam\u0131na gelir.<\/p>\n<p>Bu avantajlar, \u00f6zellikle DevOps ekiplerinin operasyonel y\u00fck\u00fcn\u00fc azalt\u0131rken, geli\u015ftiricilerin uygulamalar\u0131n\u0131 daha h\u0131zl\u0131 ve g\u00fcvenilir bir \u015fekilde da\u011f\u0131tmas\u0131na olanak tan\u0131r.<\/p>\n<h2>\u00d6n Ko\u015fullar: Ba\u015flamadan \u00d6nce<\/h2>\n<p>DOKS k\u00fcmesi kurulumuna ba\u015flamadan \u00f6nce baz\u0131 temel ara\u00e7lara ve bilgilere sahip olman\u0131z gerekmektedir.<\/p>\n<h3>DigitalOcean Hesab\u0131<\/h3>\n<p>\u00d6ncelikle aktif bir DigitalOcean hesab\u0131n\u0131z\u0131n olmas\u0131 gerekir. E\u011fer yoksa, DigitalOcean web sitesi \u00fczerinden kolayca bir hesap olu\u015fturabilirsiniz. Yeni hesaplar genellikle bir miktar \u00fccretsiz kredi ile gelir, bu da DOKS&#8217;u denemeniz i\u00e7in harika bir f\u0131rsatt\u0131r.<\/p>\n<h3><code>doctl<\/code> CLI Kurulumu<\/h3>\n<p><code>doctl<\/code>, DigitalOcean API&#8217;si ile etkile\u015fim kurman\u0131z\u0131 sa\u011flayan komut sat\u0131r\u0131 arac\u0131d\u0131r. K\u00fcme olu\u015fturma, y\u00f6netme ve di\u011fer DigitalOcean kaynaklar\u0131n\u0131 kontrol etme gibi i\u015flemleri bu ara\u00e7la ger\u00e7ekle\u015ftirebilirsiniz.<\/p>\n<p>*   <strong>Kurulum:<\/strong> \u0130\u015fletim sisteminize g\u00f6re <code>doctl<\/code> kurulum talimatlar\u0131n\u0131 DigitalOcean dok\u00fcmantasyonunda bulabilirsiniz. Genellikle <code>brew install doctl<\/code> (macOS), <code>snap install doctl<\/code> (Linux) veya ikili dosyay\u0131 indirip PATH&#8217;e ekleyerek yap\u0131l\u0131r.<br \/>\n*   <strong>Kimlik Do\u011frulama:<\/strong> <code>doctl<\/code>&#8216;\u0131 kurduktan sonra, DigitalOcean hesab\u0131n\u0131zla kimlik do\u011frulamas\u0131 yapman\u0131z gerekir. Bunun i\u00e7in bir ki\u015fisel eri\u015fim belirteci (Personal Access Token) olu\u015fturman\u0131z ve <code>doctl auth init<\/code> komutunu \u00e7al\u0131\u015ft\u0131rman\u0131z gerekmektedir:<\/p>\n<pre><code class=\"language-bash\">doctl auth init<\/code><\/pre>\n<p>    Bu komut sizi DigitalOcean kontrol paneline y\u00f6nlendirecek ve bir API anahtar\u0131 olu\u015fturman\u0131z\u0131 isteyecektir. Olu\u015fturdu\u011funuz anahtar\u0131 komut sat\u0131r\u0131na yap\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda <code>doctl<\/code> kimlik do\u011frulamas\u0131 tamamlanm\u0131\u015f olacakt\u0131r.<\/p>\n<h3><code>kubectl<\/code> Kurulumu<\/h3>\n<p><code>kubectl<\/code>, Kubernetes k\u00fcmeleriyle etkile\u015fim kurmak i\u00e7in standart komut sat\u0131r\u0131 arac\u0131d\u0131r. Uygulama da\u011f\u0131t\u0131m\u0131, kaynak sorgulama ve k\u00fcme y\u00f6netimi gibi t\u00fcm Kubernetes i\u015flemlerini <code>kubectl<\/code> ile yapars\u0131n\u0131z.<\/p>\n<p>*   <strong>Kurulum:<\/strong> <code>kubectl<\/code> kurulum talimatlar\u0131 da Kubernetes dok\u00fcmantasyonunda detayl\u0131 olarak yer al\u0131r. macOS i\u00e7in <code>brew install kubernetes-cli<\/code>, Linux i\u00e7in <code>sudo apt-get install kubectl<\/code> veya <code>sudo yum install kubectl<\/code> gibi y\u00f6ntemler kullan\u0131labilir.<br \/>\n*   <strong>Do\u011frulama:<\/strong> Kurulumdan sonra <code>kubectl version --client<\/code> komutu ile <code>kubectl<\/code>&#8216;\u0131n do\u011fru kuruldu\u011funu do\u011frulayabilirsiniz.<\/p>\n<h3>Temel Kubernetes Bilgisi<\/h3>\n<p>DOKS&#8217;u kullanmak i\u00e7in ileri d\u00fczey Kubernetes uzmanl\u0131\u011f\u0131na ihtiyac\u0131n\u0131z olmasa da, temel kavramlara (Pod, Deployment, Service, Namespace, Node, YAML yap\u0131land\u0131rmas\u0131) a\u015fina olmak, k\u00fcmenizi daha verimli kullanman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h2>DOKS K\u00fcmesi Olu\u015fturma Y\u00f6ntemleri<\/h2>\n<p>DigitalOcean Managed Kubernetes k\u00fcmesi olu\u015fturman\u0131n iki ana yolu vard\u0131r: DigitalOcean kontrol paneli \u00fczerinden veya <code>doctl<\/code> komut sat\u0131r\u0131 arac\u0131yla. Her iki y\u00f6ntem de benzer yap\u0131land\u0131rma se\u00e7enekleri sunar.<\/p>\n<h3>DigitalOcean Kontrol Paneli \u00dczerinden K\u00fcme Olu\u015fturma<\/h3>\n<p>Bu y\u00f6ntem, \u00f6zellikle DigitalOcean&#8217;a yeni ba\u015flayanlar veya g\u00f6rsel bir aray\u00fcz\u00fc tercih edenler i\u00e7in olduk\u00e7a basittir.<\/p>\n<p>1.  <strong>Giri\u015f Yap\u0131n:<\/strong> DigitalOcean hesab\u0131n\u0131za giri\u015f yap\u0131n.<br \/>\n2.  <strong>Kubernetes B\u00f6l\u00fcm\u00fcne Gidin:<\/strong> Sol men\u00fcden &#8220;Kubernetes&#8221; se\u00e7ene\u011fine t\u0131klay\u0131n.<br \/>\n3.  <strong>K\u00fcme Olu\u015ftur&#8217;a T\u0131klay\u0131n:<\/strong> &#8220;Create a Kubernetes Cluster&#8221; d\u00fc\u011fmesine t\u0131klay\u0131n.<br \/>\n4.  <strong>B\u00f6lge Se\u00e7imi (Choose a Datacenter Region):<\/strong> K\u00fcmenizin fiziksel olarak nerede bar\u0131nd\u0131r\u0131laca\u011f\u0131n\u0131 se\u00e7in. Uygulama kullan\u0131c\u0131lar\u0131n\u0131za yak\u0131n bir b\u00f6lge se\u00e7mek gecikmeyi azaltacakt\u0131r. \u00d6rne\u011fin, Frankfurt (fra1) veya Amsterdam (ams3) gibi Avrupa b\u00f6lgeleri veya New York (nyc3) gibi ABD b\u00f6lgeleri mevcuttur.<br \/>\n5.  <strong>Kubernetes S\u00fcr\u00fcm\u00fc Se\u00e7imi (Choose a Kubernetes Version):<\/strong> DigitalOcean, genellikle en son birka\u00e7 kararl\u0131 Kubernetes s\u00fcr\u00fcm\u00fcn\u00fc sunar. Uygulamalar\u0131n\u0131z\u0131n uyumlulu\u011funa ve g\u00fcvenlik g\u00fcncellemelerine dikkat ederek bir s\u00fcr\u00fcm se\u00e7in. Genellikle en son kararl\u0131 s\u00fcr\u00fcm\u00fc se\u00e7mek iyi bir ba\u015flang\u0131\u00e7t\u0131r.<br \/>\n6.  <strong>Node Havuzu Yap\u0131land\u0131rmas\u0131 (Configure Node Pools):<\/strong> Node havuzlar\u0131, i\u015f y\u00fcklerinizin \u00e7al\u0131\u015faca\u011f\u0131 sanal makinelerin (droplet&#8217;ler) gruplar\u0131d\u0131r.<br \/>\n    *   <strong>Makine Tipi (Droplet Plan):<\/strong> D\u00fc\u011f\u00fcmlerinizin boyutunu (CPU, RAM, Disk) se\u00e7in. Genel ama\u00e7l\u0131 (General Purpose), CPU optimize edilmi\u015f (CPU-Optimized) veya bellek optimize edilmi\u015f (Memory-Optimized) gibi farkl\u0131 planlar bulunur. Uygulaman\u0131z\u0131n gereksinimlerine g\u00f6re uygun bir plan se\u00e7in. Ba\u015flang\u0131\u00e7 i\u00e7in &#8220;Basic&#8221; veya &#8220;General Purpose&#8221; alt\u0131nda k\u00fc\u00e7\u00fck bir plan (\u00f6rn. 2 vCPU, 4GB RAM) yeterli olabilir.<br \/>\n    *   <strong>Disk Boyutu:<\/strong> Se\u00e7ilen Droplet plan\u0131na g\u00f6re disk boyutu otomatik olarak belirlenir. Kal\u0131c\u0131 depolama i\u00e7in genellikle Block Storage kullan\u0131l\u0131r.<br \/>\n    *   <strong>D\u00fc\u011f\u00fcm Say\u0131s\u0131 (Node Count):<\/strong> Bu havuzda ka\u00e7 adet d\u00fc\u011f\u00fcm olaca\u011f\u0131n\u0131 belirtin. Y\u00fcksek kullan\u0131labilirlik i\u00e7in en az 3 d\u00fc\u011f\u00fcmle ba\u015flamak iyi bir uygulamad\u0131r.<br \/>\n    *   <strong>Otomatik \u00d6l\u00e7eklendirme (Enable Autoscaling):<\/strong> \u0130ste\u011fe ba\u011fl\u0131 olarak, bu node havuzu i\u00e7in Cluster Autoscaler&#8217;\u0131 etkinle\u015ftirebilirsiniz. Bu, k\u00fcmenizdeki pod&#8217;lar\u0131n kaynak ihtiya\u00e7lar\u0131na g\u00f6re d\u00fc\u011f\u00fcm say\u0131s\u0131n\u0131 otomatik olarak art\u0131r\u0131p azalt\u0131r. Minimum ve maksimum d\u00fc\u011f\u00fcm say\u0131s\u0131n\u0131 belirtmeniz gerekir.<br \/>\n    *   Birden fazla node havuzu ekleyerek farkl\u0131 i\u015f y\u00fckleri i\u00e7in farkl\u0131 \u00f6zelliklere sahip d\u00fc\u011f\u00fcmler kullanabilirsiniz (\u00f6rn. GPU&#8217;lu d\u00fc\u011f\u00fcmler, daha fazla RAM&#8217;e sahip d\u00fc\u011f\u00fcmler).<br \/>\n7.  <strong>VPC A\u011f\u0131 Se\u00e7imi (Choose a VPC Network):<\/strong> E\u011fer bir \u00f6zel a\u011f (VPC) yap\u0131land\u0131rd\u0131ysan\u0131z, k\u00fcmenizi bu a\u011fa dahil edebilirsiniz. Bu, k\u00fcmenizin di\u011fer DigitalOcean kaynaklar\u0131n\u0131zla (\u00f6rn. Managed Databases) g\u00fcvenli bir \u015fekilde ileti\u015fim kurmas\u0131n\u0131 sa\u011flar.<br \/>\n8.  <strong>Etiketler (Add Tags):<\/strong> K\u00fcmenizi organize etmek ve maliyet takibi yapmak i\u00e7in etiketler ekleyebilirsiniz. \u00d6rne\u011fin, <code>proje:uygulama-ad\u0131<\/code>, <code>ortam:dev<\/code> gibi etiketler.<br \/>\n9.  <strong>K\u00fcme Ad\u0131 (Choose a Name):<\/strong> K\u00fcmenize a\u00e7\u0131klay\u0131c\u0131 bir ad verin. \u00d6rne\u011fin, <code>my-prod-cluster<\/code> veya <code>dev-k8s<\/code>.<br \/>\n10. <strong>Olu\u015ftur&#8217;a T\u0131klay\u0131n:<\/strong> T\u00fcm ayarlar\u0131 g\u00f6zden ge\u00e7irdikten sonra &#8220;Create Cluster&#8221; d\u00fc\u011fmesine t\u0131klay\u0131n. DigitalOcean, k\u00fcmenizi ve d\u00fc\u011f\u00fcmlerinizi olu\u015fturmaya ba\u015flayacakt\u0131r. Bu i\u015flem birka\u00e7 dakika s\u00fcrebilir.<\/p>\n<h3><code>doctl<\/code> CLI \u00dczerinden K\u00fcme Olu\u015fturma<\/h3>\n<p><code>doctl<\/code> komut sat\u0131r\u0131 arac\u0131, otomasyon senaryolar\u0131 ve tekrarlanabilir kurulumlar i\u00e7in idealdir.<\/p>\n<p>1.  <strong>Gerekli Bilgileri Toplama:<\/strong> K\u00fcme olu\u015fturmadan \u00f6nce, kullanabilece\u011finiz b\u00f6lgeleri, Kubernetes s\u00fcr\u00fcmlerini ve Droplet planlar\u0131n\u0131 bilmeniz gerekir.<br \/>\n    *   <strong>B\u00f6lgeleri Listele:<\/strong><\/p>\n<pre><code class=\"language-bash\">doctl compute region list<\/code><\/pre>\n<p>    *   <strong>Kubernetes S\u00fcr\u00fcmlerini Listele:<\/strong><\/p>\n<pre><code class=\"language-bash\">doctl kubernetes options versions<\/code><\/pre>\n<p>    *   <strong>Droplet Planlar\u0131n\u0131 Listele:<\/strong><\/p>\n<pre><code class=\"language-bash\">doctl compute droplet-plan list<\/code><\/pre>\n<p>        Bu komutlar size <code>--region<\/code>, <code>--version<\/code> ve <code>--node-pool<\/code> parametreleri i\u00e7in kullanabilece\u011finiz de\u011ferleri sa\u011flayacakt\u0131r.<br \/>\n2.  <strong>K\u00fcme Olu\u015fturma Komutu:<\/strong> A\u015fa\u011f\u0131daki gibi bir komut kullanarak bir DOKS k\u00fcmesi olu\u015fturabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">doctl kubernetes cluster create \\\n      --name my-cli-cluster \\\n      --region fra1 \\\n      --version 1.28.2-do.0 \\\n      --node-pool name=default-pool,size=s-2vcpu-4gb,count=3,auto-scale=true,min-nodes=2,max-nodes=5 \\\n      --vpc-uuid <your-vpc-uuid-if-any> \\\n      --tag environment:production,project:myapp<\/code><\/pre>\n<p>    *   <code>--name<\/code>: K\u00fcmenizin ad\u0131.<br \/>\n    *   <code>--region<\/code>: K\u00fcmenizin olu\u015fturulaca\u011f\u0131 veri merkezi b\u00f6lgesi (\u00f6rn. <code>fra1<\/code>, <code>nyc3<\/code>).<br \/>\n    *   <code>--version<\/code>: Kubernetes s\u00fcr\u00fcm\u00fc (\u00f6rn. <code>1.28.2-do.0<\/code>).<br \/>\n    *   <code>--node-pool<\/code>: Node havuzu yap\u0131land\u0131rmas\u0131. Birden fazla node havuzu tan\u0131mlayabilirsiniz.<br \/>\n        *   <code>name<\/code>: Node havuzunun ad\u0131.<br \/>\n        *   <code>size<\/code>: Droplet plan\u0131n\u0131n slug&#8217;\u0131 (\u00f6rn. <code>s-2vcpu-4gb<\/code>).<br \/>\n        *   <code>count<\/code>: Ba\u015flang\u0131\u00e7 d\u00fc\u011f\u00fcm say\u0131s\u0131.<br \/>\n        *   <code>auto-scale<\/code>: <code>true<\/code> veya <code>false<\/code>. Otomatik \u00f6l\u00e7eklendirmeyi etkinle\u015ftirir.<br \/>\n        *   <code>min-nodes<\/code>: Otomatik \u00f6l\u00e7eklendirme i\u00e7in minimum d\u00fc\u011f\u00fcm say\u0131s\u0131.<br \/>\n        *   <code>max-nodes<\/code>: Otomatik \u00f6l\u00e7eklendirme i\u00e7in maksimum d\u00fc\u011f\u00fcm say\u0131s\u0131.<br \/>\n    *   <code>--vpc-uuid<\/code>: (\u0130ste\u011fe ba\u011fl\u0131) K\u00fcmenizi belirli bir VPC a\u011f\u0131na ba\u011flamak i\u00e7in VPC&#8217;nin UUID&#8217;si. <code>doctl compute vpc list<\/code> ile bulabilirsiniz.<br \/>\n    *   <code>--tag<\/code>: (\u0130ste\u011fe ba\u011fl\u0131) K\u00fcmenize etiketler ekler.<\/p>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, <code>doctl<\/code> k\u00fcmenizi olu\u015fturmaya ba\u015flayacak ve i\u015flemin tamamland\u0131\u011f\u0131n\u0131 belirten bir \u00e7\u0131kt\u0131 verecektir. K\u00fcmenin tamamen kullan\u0131ma haz\u0131r hale gelmesi birka\u00e7 dakika s\u00fcrebilir.<\/p>\n<h2>K\u00fcme Yap\u0131land\u0131rmas\u0131 ve Ba\u011flant\u0131<\/h2>\n<p>K\u00fcmenizi olu\u015fturduktan sonra, yerel makinenizden <code>kubectl<\/code> arac\u0131n\u0131 kullanarak bu k\u00fcmeye ba\u011flanman\u0131z gerekir.<\/p>\n<h3><code>kubectl<\/code> \u0130\u00e7in Kimlik Do\u011frulama<\/h3>\n<p>DigitalOcean, k\u00fcmenize g\u00fcvenli bir \u015fekilde ba\u011flanmak i\u00e7in bir kubeconfig dosyas\u0131 sa\u011flar. Bu dosya, k\u00fcmenizin API sunucusuna nas\u0131l eri\u015filece\u011fi ve kimlik do\u011frulamas\u0131 yap\u0131laca\u011f\u0131 bilgilerini i\u00e7erir.<\/p>\n<p>1.  <strong>Kubeconfig Dosyas\u0131n\u0131 Kaydetme:<\/strong> K\u00fcmenizin kubeconfig dosyas\u0131n\u0131 yerel makinenize indirmek ve <code>kubectl<\/code>&#8216;\u0131n kullanabilece\u011fi \u015fekilde yap\u0131land\u0131rmak i\u00e7in <code>doctl<\/code> kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">doctl kubernetes cluster kubeconfig save <cluster-name><\/code><\/pre>\n<p>    <code><cluster-name><\/code> yerine olu\u015fturdu\u011funuz k\u00fcmenin ad\u0131n\u0131 yaz\u0131n (\u00f6rn. <code>my-cli-cluster<\/code>). Bu komut, kubeconfig dosyas\u0131n\u0131 varsay\u0131lan olarak <code>~\/.kube\/config<\/code> dizinine kaydeder ve <code>kubectl<\/code>&#8216;\u0131n bu k\u00fcmeyi varsay\u0131lan ba\u011flam olarak kullanmas\u0131n\u0131 sa\u011flar.<br \/>\n2.  <strong>Ba\u011flam\u0131 Kontrol Etme:<\/strong> Birden fazla Kubernetes k\u00fcmesiyle \u00e7al\u0131\u015f\u0131yorsan\u0131z, do\u011fru k\u00fcmeye ba\u011fl\u0131 oldu\u011funuzdan emin olmak i\u00e7in mevcut ba\u011flam\u0131 kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">kubectl config current-context<\/code><\/pre>\n<p>3.  <strong>K\u00fcme Ba\u011flam\u0131n\u0131 De\u011fi\u015ftirme:<\/strong> Farkl\u0131 bir k\u00fcmeye ge\u00e7mek isterseniz:<\/p>\n<pre><code class=\"language-bash\">kubectl config use-context do-fra1-my-cli-cluster # K\u00fcme ad\u0131 ve b\u00f6lgeye g\u00f6re de\u011fi\u015fir<\/code><\/pre>\n<h3>K\u00fcmenin Durumunu Kontrol Etme<\/h3>\n<p>Kubeconfig dosyas\u0131n\u0131 yap\u0131land\u0131rd\u0131ktan sonra, k\u00fcmenizin durumunu kontrol edebilirsiniz:<\/p>\n<p>*   <strong>D\u00fc\u011f\u00fcmleri Listele:<\/strong><\/p>\n<pre><code class=\"language-bash\">kubectl get nodes<\/code><\/pre>\n<p>    Bu komut, k\u00fcmenizdeki t\u00fcm worker d\u00fc\u011f\u00fcmlerini listeler ve durumlar\u0131n\u0131 (<code>Ready<\/code> olmalar\u0131 beklenir) g\u00f6sterir.<br \/>\n*   <strong>Pod&#8217;lar\u0131 Listele:<\/strong><\/p>\n<pre><code class=\"language-bash\">kubectl get pods -A<\/code><\/pre>\n<p>    Bu komut, t\u00fcm namespace&#8217;lerdeki (sistem pod&#8217;lar\u0131 dahil) pod&#8217;lar\u0131 g\u00f6sterir. Sistem pod&#8217;lar\u0131n\u0131n <code>Running<\/code> durumda oldu\u011fundan emin olun.<br \/>\n*   <strong>K\u00fcme Bilgisi:<\/strong><\/p>\n<pre><code class=\"language-bash\">kubectl cluster-info<\/code><\/pre>\n<p>    Bu komut, Kubernetes master servisinin nerede \u00e7al\u0131\u015ft\u0131\u011f\u0131 gibi temel k\u00fcme bilgilerini g\u00f6sterir.<\/p>\n<p>DigitalOcean kontrol panelinden de k\u00fcmenizin genel durumunu, d\u00fc\u011f\u00fcmlerini ve kaynak kullan\u0131m\u0131n\u0131 izleyebilirsiniz.<\/p>\n<h2>Uygulama Da\u011f\u0131t\u0131m\u0131<\/h2>\n<p>K\u00fcmeniz haz\u0131r ve ba\u011fl\u0131 oldu\u011funa g\u00f6re, \u00fczerine bir uygulama da\u011f\u0131tabiliriz. Basit bir Nginx web sunucusu \u00f6rne\u011fi ile ba\u015flayal\u0131m.<\/p>\n<h3>Basit Bir Uygulama Da\u011f\u0131t\u0131m\u0131<\/h3>\n<p>Kubernetes&#8217;te uygulamalar genellikle Deployment ve Service kaynaklar\u0131 kullan\u0131larak da\u011f\u0131t\u0131l\u0131r.<\/p>\n<p>1.  <strong><code>nginx-deployment.yaml<\/code> Olu\u015fturma:<\/strong> A\u015fa\u011f\u0131daki i\u00e7eri\u011fe sahip bir dosya olu\u015fturun:<\/p>\n<pre><code class=\"language-yaml\">apiVersion: apps\/v1\n    kind: Deployment\n    metadata:\n      name: nginx-deployment\n      labels:\n        app: nginx\n    spec:\n      replicas: 3 # 3 adet Nginx pod'u \u00e7al\u0131\u015ft\u0131r\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 # Nginx'in en son s\u00fcr\u00fcm\u00fcn\u00fc kullan\n            ports:\n            - containerPort: 80 # Nginx'in dinledi\u011fi port<\/code><\/pre>\n<p>    Bu dosya, <code>nginx<\/code> etiketine sahip 3 adet Nginx pod&#8217;u \u00e7al\u0131\u015ft\u0131racak bir Deployment tan\u0131mlar.<br \/>\n2.  <strong><code>nginx-service.yaml<\/code> Olu\u015fturma:<\/strong> Uygulamaya d\u0131\u015far\u0131dan eri\u015fim sa\u011flamak i\u00e7in bir Service tan\u0131mlay\u0131n:<\/p>\n<pre><code class=\"language-yaml\">apiVersion: v1\n    kind: Service\n    metadata:\n      name: nginx-service\n    spec:\n      selector:\n        app: nginx # Bu servis, \"app: nginx\" etiketine sahip pod'lara y\u00f6nlenecek\n      type: LoadBalancer # DigitalOcean Load Balancer olu\u015fturulacak\n      ports:\n        - protocol: TCP\n          port: 80 # Servisin dinleyece\u011fi port\n          targetPort: 80 # Pod'lar\u0131n dinledi\u011fi port<\/code><\/pre>\n<p>    <code>type: LoadBalancer<\/code> se\u00e7ene\u011fi, DigitalOcean&#8217;\u0131n otomatik olarak bir bulut y\u00fck dengeleyici (Load Balancer) olu\u015fturmas\u0131n\u0131 ve trafi\u011fi Nginx pod&#8217;lar\u0131n\u0131za y\u00f6nlendirmesini sa\u011flar.<br \/>\n3.  <strong>Uygulamay\u0131 Da\u011f\u0131tma:<\/strong> YAML dosyalar\u0131n\u0131 k\u00fcmeye uygulamak i\u00e7in <code>kubectl apply<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">kubectl apply -f nginx-deployment.yaml\n    kubectl apply -f nginx-service.yaml<\/code><\/pre>\n<p>    Bu komutlar, Deployment ve Service kaynaklar\u0131n\u0131 k\u00fcmenizde olu\u015fturacakt\u0131r.<br \/>\n4.  <strong>Da\u011f\u0131t\u0131m\u0131 Kontrol Etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">kubectl get deployments\n    kubectl get pods -l app=nginx # Sadece Nginx pod'lar\u0131n\u0131 listele\n    kubectl get services<\/code><\/pre>\n<p>    <code>kubectl get services<\/code> komutu \u00e7\u0131kt\u0131s\u0131nda <code>nginx-service<\/code> i\u00e7in bir <code>EXTERNAL-IP<\/code> adresi g\u00f6receksiniz. Bu IP adresi, DigitalOcean Load Balancer taraf\u0131ndan atanm\u0131\u015ft\u0131r.<\/p>\n<h3>Uygulamaya Eri\u015fme<\/h3>\n<p><code>kubectl get services<\/code> komutuyla elde etti\u011finiz <code>nginx-service<\/code>&#8216;in <code>EXTERNAL-IP<\/code> adresini bir web taray\u0131c\u0131s\u0131na yap\u0131\u015ft\u0131rarak Nginx&#8217;in varsay\u0131lan kar\u015f\u0131lama sayfas\u0131n\u0131 g\u00f6rmeniz gerekir. Bu, uygulaman\u0131z\u0131n ba\u015far\u0131yla da\u011f\u0131t\u0131ld\u0131\u011f\u0131 ve d\u0131\u015far\u0131dan eri\u015filebilir oldu\u011fu anlam\u0131na gelir.<\/p>\n<p><strong>Not:<\/strong> <code>EXTERNAL-IP<\/code> adresinin atanmas\u0131 birka\u00e7 dakika s\u00fcrebilir. E\u011fer hemen g\u00f6r\u00fcnmezse, bir s\u00fcre bekleyip tekrar kontrol edin.<\/p>\n<p>Daha karma\u015f\u0131k uygulamalar i\u00e7in Ingress Controller (\u00f6rn. Nginx Ingress Controller) kullanarak birden fazla uygulaman\u0131n tek bir Load Balancer arkas\u0131nda farkl\u0131 yollar veya alan adlar\u0131 \u00fczerinden eri\u015filebilir olmas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>\n<h2>DOKS Y\u00f6netimi ve Bak\u0131m\u0131<\/h2>\n<p>Bir DOKS k\u00fcmesi kurmak sadece ba\u015flang\u0131\u00e7t\u0131r. Uygulamalar\u0131n\u0131z\u0131n sorunsuz \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in k\u00fcmenizi y\u00f6netmeniz ve bak\u0131m\u0131n\u0131 yapman\u0131z gerekir.<\/p>\n<h3>Node Havuzlar\u0131n\u0131 Y\u00f6netme<\/h3>\n<p>Uygulama gereksinimleriniz de\u011fi\u015ftik\u00e7e, d\u00fc\u011f\u00fcm havuzlar\u0131n\u0131z\u0131n boyutunu veya yap\u0131s\u0131n\u0131 de\u011fi\u015ftirmeniz gerekebilir.<\/p>\n<p>*   <strong>Yeni Node Havuzu Ekleme:<\/strong> Farkl\u0131 i\u015f y\u00fckleri veya kaynak gereksinimleri i\u00e7in yeni bir node havuzu ekleyebilirsiniz.<\/p>\n<pre><code class=\"language-bash\">doctl kubernetes cluster node-pool create <cluster-name> \\\n      --name gpu-pool \\\n      --size g-2vcpu-8gb \\ # GPU destekli bir Droplet plan\u0131\n      --count 1<\/code><\/pre>\n<p>*   <strong>Mevcut Node Havuzunu \u00d6l\u00e7eklendirme:<\/strong> Bir node havuzundaki d\u00fc\u011f\u00fcm say\u0131s\u0131n\u0131 art\u0131rabilir veya azaltabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">doctl kubernetes cluster node-pool update <cluster-name> \\\n      --node-pool-id <node-pool-id> \\ # veya --name <node-pool-name>\n      --count 5<\/code><\/pre>\n<p>    Otomatik \u00f6l\u00e7eklendirme etkinse, <code>min-nodes<\/code> ve <code>max-nodes<\/code> de\u011ferlerini de g\u00fcncelleyebilirsiniz.<br \/>\n*   <strong>Node Havuzu Silme:<\/strong> Art\u0131k ihtiyac\u0131n\u0131z olmayan bir node havuzunu silebilirsiniz.<\/p>\n<pre><code class=\"language-bash\">doctl kubernetes cluster node-pool delete <cluster-name> \\\n      --node-pool-id <node-pool-id><\/code><\/pre>\n<p>    <strong>Dikkat:<\/strong> Bir node havuzunu silmek, \u00fczerindeki t\u00fcm pod&#8217;lar\u0131 sonland\u0131r\u0131r ve verileri kaybolabilir. \u00d6ncesinde pod&#8217;lar\u0131 ba\u015fka havuzlara ta\u015f\u0131d\u0131\u011f\u0131n\u0131zdan emin olun.<\/p>\n<h3>Kubernetes S\u00fcr\u00fcm\u00fcn\u00fc Y\u00fckseltme<\/h3>\n<p>Kubernetes s\u00fcrekli geli\u015fti\u011fi i\u00e7in, k\u00fcmenizi d\u00fczenli olarak g\u00fcncel tutmak \u00f6nemlidir. DigitalOcean, s\u00fcr\u00fcm y\u00fckseltmelerini basitle\u015ftirir.<\/p>\n<p>*   <strong>Y\u00fckseltme Y\u00f6ntemleri:<\/strong><br \/>\n    *   <strong>Kontrol Paneli:<\/strong> DigitalOcean kontrol panelindeki Kubernetes b\u00f6l\u00fcm\u00fcnden k\u00fcmenizi se\u00e7erek &#8220;Upgrade&#8221; se\u00e7ene\u011fini kullanabilirsiniz.<br \/>\n    *   <strong><code>doctl<\/code> CLI:<\/strong><\/p>\n<pre><code class=\"language-bash\">doctl kubernetes cluster upgrade <cluster-name> \\\n          --version <new-kubernetes-version><\/code><\/pre>\n<p>*   <strong>Y\u00fckseltme S\u00fcreci:<\/strong> Y\u00fckseltme i\u015flemi s\u0131ras\u0131nda DigitalOcean, kontrol d\u00fczlemini g\u00fcnceller ve ard\u0131ndan node havuzlar\u0131ndaki d\u00fc\u011f\u00fcmleri s\u0131rayla g\u00fcnceller. Bu s\u00fcre\u00e7, d\u00fc\u011f\u00fcmleri tek tek bo\u015falt\u0131p (drain) yeni s\u00fcr\u00fcme sahip d\u00fc\u011f\u00fcmlerle de\u011fi\u015ftirerek kesintiyi en aza indirmeye \u00e7al\u0131\u015f\u0131r. Ancak, uygulamalar\u0131n\u0131z\u0131n y\u00fckseltme s\u0131ras\u0131nda dayan\u0131kl\u0131 oldu\u011fundan (\u00f6rn. PDB &#8211; Pod Disruption Budget ile) emin olmal\u0131s\u0131n\u0131z.<br \/>\n*   <strong>Dikkat Edilmesi Gerekenler:<\/strong> Y\u00fckseltmeden \u00f6nce uygulaman\u0131z\u0131n ve kulland\u0131\u011f\u0131n\u0131z ara\u00e7lar\u0131n (Helm, Ingress Controller vb.) yeni Kubernetes s\u00fcr\u00fcm\u00fcyle uyumlu oldu\u011fundan emin olun. K\u00fc\u00e7\u00fck bir geli\u015ftirme k\u00fcmesinde y\u00fckseltmeyi test etmek iyi bir uygulamad\u0131r.<\/p>\n<h3>Otomatik \u00d6l\u00e7eklendirme<\/h3>\n<p>DOKS, iki ana otomatik \u00f6l\u00e7eklendirme t\u00fcr\u00fcn\u00fc destekler:<\/p>\n<p>*   <strong>Cluster Autoscaler:<\/strong> Node havuzlar\u0131n\u0131 yap\u0131land\u0131r\u0131rken etkinle\u015ftirdi\u011finiz bu \u00f6zellik, k\u00fcmedeki kaynak yetersizli\u011fi (pending pod&#8217;lar) durumunda d\u00fc\u011f\u00fcm say\u0131s\u0131n\u0131 otomatik olarak art\u0131r\u0131r ve kaynaklar bo\u015fald\u0131\u011f\u0131nda d\u00fc\u011f\u00fcmleri azalt\u0131r.<br \/>\n*   <strong>Horizontal Pod Autoscaler (HPA):<\/strong> Bu, belirli bir metrik (\u00f6rn. CPU kullan\u0131m\u0131) e\u015fi\u011fine ula\u015f\u0131ld\u0131\u011f\u0131nda pod&#8217;lar\u0131n\u0131z\u0131n say\u0131s\u0131n\u0131 otomatik olarak art\u0131r\u0131p azaltan bir Kubernetes \u00f6zelli\u011fidir. <code>kubectl autoscale deployment <deployment-name> --cpu-percent=80 --min=2 --max=10<\/code> gibi komutlarla yap\u0131land\u0131r\u0131l\u0131r.<\/p>\n<h3>Yedekleme ve Felaket Kurtarma<\/h3>\n<p>Kal\u0131c\u0131 veriler i\u00e7in yedekleme stratejileri hayati \u00f6neme sahiptir.<\/p>\n<p>*   <strong>DigitalOcean Block Storage:<\/strong> Kal\u0131c\u0131 birimler (Persistent Volumes) i\u00e7in DigitalOcean Block Storage kullanmak, verilerinizin d\u00fc\u011f\u00fcmlerden ba\u011f\u0131ms\u0131z olarak saklanmas\u0131n\u0131 sa\u011flar. Block Storage anl\u0131k g\u00f6r\u00fcnt\u00fcleri (snapshots) ile veri yedeklemesi yapabilirsiniz.<br \/>\n*   <strong>Velero:<\/strong> Kubernetes k\u00fcmesi kaynaklar\u0131n\u0131 (Deployment, Service vb.) ve Persistent Volumes&#8217;lar\u0131 yedeklemek ve geri y\u00fcklemek i\u00e7in Velero gibi \u00fc\u00e7\u00fcnc\u00fc taraf ara\u00e7lar\u0131 kullanabilirsiniz.<\/p>\n<h3>\u0130zleme ve Loglama<\/h3>\n<p>Uygulamalar\u0131n\u0131z\u0131n ve k\u00fcmenizin sa\u011fl\u0131\u011f\u0131n\u0131 izlemek ve sorunlar\u0131 gidermek i\u00e7in loglara eri\u015fmek \u00f6nemlidir.<\/p>\n<p>*   <strong>DigitalOcean Monitoring:<\/strong> DigitalOcean, Droplet&#8217;leriniz ve k\u00fcmeniz i\u00e7in temel izleme metrikleri sunar.<br \/>\n*   <strong>Prometheus &#038; Grafana:<\/strong> Daha geli\u015fmi\u015f izleme ve g\u00f6rselle\u015ftirme i\u00e7in k\u00fcmenize Prometheus ve Grafana kurabilirsiniz.<br \/>\n*   <strong>ELK Stack (Elasticsearch, Logstash, Kibana):<\/strong> Log toplama, depolama ve analiz i\u00e7in ELK Stack gibi merkezi loglama \u00e7\u00f6z\u00fcmleri entegre edilebilir.<br \/>\n*   <strong>Harici Loglama Hizmetleri:<\/strong> Datadog, Splunk gibi harici loglama ve izleme hizmetleri de DOKS ile entegre edilebilir.<\/p>\n<h2>DOKS Entegrasyonlar\u0131 ve Ek \u00d6zellikler<\/h2>\n<p>DigitalOcean ekosistemi, DOKS k\u00fcmelerinizin yeteneklerini geni\u015fletmek i\u00e7in \u00e7e\u015fitli hizmetler sunar:<\/p>\n<p>*   <strong>DigitalOcean Load Balancer:<\/strong> <code>type: LoadBalancer<\/code> servisleri otomatik olarak bir DO Load Balancer olu\u015fturur. Bu, trafi\u011fi k\u00fcmenizdeki pod&#8217;lara e\u015fit \u015fekilde da\u011f\u0131t\u0131r.<br \/>\n*   <strong>DigitalOcean Block Storage:<\/strong> Kal\u0131c\u0131 depolama ihtiya\u00e7lar\u0131 i\u00e7in Persistent Volumes olarak kullan\u0131labilir. Y\u00fcksek performansl\u0131 ve \u00f6l\u00e7eklenebilir diskler sunar.<br \/>\n*   <strong>DigitalOcean Container Registry:<\/strong> Konteyner imajlar\u0131n\u0131z\u0131 depolamak ve y\u00f6netmek i\u00e7in \u00f6zel bir Docker kay\u0131t defteri hizmetidir. DOKS ile kolayca entegre olur.<br \/>\n*   <strong>DigitalOcean Managed Databases:<\/strong> PostgreSQL, MySQL, Redis gibi y\u00f6netilen veritaban\u0131 hizmetleri, DOKS \u00fczerindeki uygulamalar\u0131n\u0131z i\u00e7in g\u00fcvenilir ve \u00f6l\u00e7eklenebilir bir veritaban\u0131 katman\u0131 sa\u011flar. VPC \u00fczerinden g\u00fcvenli ba\u011flant\u0131 kurabilirler.<br \/>\n*   <strong>Spaces Object Storage:<\/strong> S3 uyumlu bir nesne depolama hizmetidir. Statik dosyalar, yedekler ve b\u00fcy\u00fck veri setleri i\u00e7in kullan\u0131labilir.<br \/>\n*   <strong>Cloud Firewalls:<\/strong> K\u00fcmenizin d\u00fc\u011f\u00fcmleri i\u00e7in \u00f6zel g\u00fcvenlik duvar\u0131 kurallar\u0131 tan\u0131mlayarak a\u011f trafi\u011fini daha hassas bir \u015fekilde kontrol edebilirsiniz.<\/p>\n<p>Bu entegrasyonlar, bir uygulaman\u0131n t\u00fcm katmanlar\u0131n\u0131 DigitalOcean \u00fczerinde kurman\u0131z\u0131 ve y\u00f6netmenizi kolayla\u015ft\u0131r\u0131r.<\/p>\n<h2>Maliyet Y\u00f6netimi<\/h2>\n<p>DOKS&#8217;un maliyet etkinli\u011fi \u00f6nemli bir avantaj olsa da, b\u00fct\u00e7enizi kontrol alt\u0131nda tutmak i\u00e7in baz\u0131 noktalara dikkat etmelisiniz:<\/p>\n<p>*   <strong>D\u00fc\u011f\u00fcm Tipleri ve Fiyatland\u0131rma:<\/strong> Farkl\u0131 Droplet planlar\u0131 farkl\u0131 maliyetlere sahiptir. Uygulaman\u0131z\u0131n ger\u00e7ek ihtiya\u00e7lar\u0131na uygun en k\u00fc\u00e7\u00fck Droplet plan\u0131n\u0131 se\u00e7meye \u00e7al\u0131\u015f\u0131n. CPU optimize edilmi\u015f Droplet&#8217;ler genellikle daha pahal\u0131d\u0131r.<br \/>\n*   <strong>Load Balancer Maliyetleri:<\/strong> Her olu\u015fturulan DigitalOcean Load Balancer&#8217;\u0131n sabit bir saatlik maliyeti vard\u0131r. Birden fazla servis i\u00e7in Ingress Controller kullanarak tek bir Load Balancer arkas\u0131nda birden fazla uygulama bar\u0131nd\u0131rmak maliyetleri d\u00fc\u015f\u00fcrebilir.<br \/>\n*   <strong>Depolama Maliyetleri:<\/strong> Block Storage ve Spaces Object Storage kullan\u0131mlar\u0131 GB ba\u015f\u0131na \u00fccretlendirilir. Anl\u0131k g\u00f6r\u00fcnt\u00fclerin de maliyeti oldu\u011funu unutmay\u0131n.<br \/>\n*   <strong>Otomatik \u00d6l\u00e7eklendirme ile Optimizasyon:<\/strong> Cluster Autoscaler&#8217;\u0131 do\u011fru yap\u0131land\u0131rmak, yaln\u0131zca ihtiya\u00e7 duydu\u011funuzda d\u00fc\u011f\u00fcmleri \u00e7al\u0131\u015ft\u0131rman\u0131z\u0131 sa\u011flayarak maliyetleri optimize eder. Gereksiz yere fazla d\u00fc\u011f\u00fcm \u00e7al\u0131\u015ft\u0131rmaktan ka\u00e7\u0131n\u0131n.<br \/>\n*   <strong>Kaynak \u0130stekleri ve Limitleri:<\/strong> Pod&#8217;lar\u0131n\u0131z i\u00e7in do\u011fru kaynak istekleri (requests) ve limitleri (limits) tan\u0131mlamak, d\u00fc\u011f\u00fcmlerinizin verimli kullan\u0131lmas\u0131n\u0131 sa\u011flar ve gereksiz \u00f6l\u00e7eklendirmeyi \u00f6nler.<\/p>\n<p>DigitalOcean kontrol panelindeki faturaland\u0131rma b\u00f6l\u00fcm\u00fcnden kaynak kullan\u0131m\u0131n\u0131z\u0131 ve maliyetlerinizi d\u00fczenli olarak takip edin.<\/p>\n<h2>S\u0131k\u00e7a Sorulan Sorular ve \u0130pu\u00e7lar\u0131<\/h2>\n<p>*   <strong>Hangi Kubernetes s\u00fcr\u00fcm\u00fcn\u00fc se\u00e7meliyim?<\/strong> Genellikle en son kararl\u0131 s\u00fcr\u00fcm\u00fc se\u00e7mek iyi bir ba\u015flang\u0131\u00e7t\u0131r. Ancak, uygulaman\u0131z\u0131n veya kulland\u0131\u011f\u0131n\u0131z \u00fc\u00e7\u00fcnc\u00fc taraf ara\u00e7lar\u0131n belirli bir Kubernetes s\u00fcr\u00fcm\u00fcyle uyumlulu\u011funu kontrol edin.<br \/>\n*   <strong>Ka\u00e7 d\u00fc\u011f\u00fcmle ba\u015flamal\u0131y\u0131m?<\/strong> Y\u00fcksek kullan\u0131labilirlik i\u00e7in en az 3 d\u00fc\u011f\u00fcmle ba\u015flamak \u00f6nerilir. Bu, bir d\u00fc\u011f\u00fcm\u00fcn \u00e7\u00f6kmesi durumunda uygulaman\u0131z\u0131n \u00e7al\u0131\u015fmaya devam etmesini sa\u011flar. Geli\u015ftirme ortamlar\u0131 i\u00e7in 1-2 d\u00fc\u011f\u00fcm yeterli olabilir.<br \/>\n*   <strong>G\u00fcvenlik en iyi uygulamalar\u0131 nelerdir?<\/strong><br \/>\n    *   K\u00fcmelerinizi \u00f6zel VPC a\u011flar\u0131na yerle\u015ftirin.<br \/>\n    *   Cloud Firewalls kullanarak d\u00fc\u011f\u00fcmlerinize gelen ve giden trafi\u011fi k\u0131s\u0131tlay\u0131n.<br \/>\n    *   Kubernetes RBAC (Role-Based Access Control) kullanarak kullan\u0131c\u0131lar\u0131n ve servis hesaplar\u0131n\u0131n k\u00fcme kaynaklar\u0131na eri\u015fimini s\u0131n\u0131rlay\u0131n.<br \/>\n    *   Konteyner imajlar\u0131n\u0131z\u0131 d\u00fczenli olarak g\u00fcncelleyin ve g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 taray\u0131n.<br \/>\n    *   Duyarl\u0131 verileri (parolalar, API anahtarlar\u0131) Kubernetes Secrets ile y\u00f6netin.<br \/>\n*   <strong>Performans ipu\u00e7lar\u0131:<\/strong><br \/>\n    *   Uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na uygun Droplet planlar\u0131n\u0131 se\u00e7in.<br \/>\n    *   Pod&#8217;lar\u0131n\u0131z i\u00e7in do\u011fru kaynak istekleri ve limitleri tan\u0131mlay\u0131n.<br \/>\n    *   Kal\u0131c\u0131 veriler i\u00e7in Block Storage veya Managed Databases kullan\u0131n.<br \/>\n    *   Uygulaman\u0131z\u0131n performans\u0131n\u0131 izleyin ve darbo\u011fazlar\u0131 belirleyin.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS), konteynerize edilmi\u015f uygulamalar\u0131n\u0131z\u0131 da\u011f\u0131tmak ve y\u00f6netmek i\u00e7in g\u00fc\u00e7l\u00fc, esnek ve maliyet etkin bir \u00e7\u00f6z\u00fcm sunar. Kontrol d\u00fczlemi y\u00f6netimini DigitalOcean&#8217;a b\u0131rakarak, ekipleriniz uygulama geli\u015ftirmeye ve yenili\u011fe odaklanabilir. Bu rehberde, bir DOKS k\u00fcmesini olu\u015fturmaktan, uygulamalar\u0131 da\u011f\u0131tmaya ve k\u00fcmenizi y\u00f6netmeye kadar t\u00fcm temel ad\u0131mlar\u0131 detayl\u0131 bir \u015fekilde ele ald\u0131k.<\/p>\n<p>\u0130ster k\u00fc\u00e7\u00fck bir proje ister b\u00fcy\u00fck \u00f6l\u00e7ekli bir \u00fcretim ortam\u0131 i\u00e7in olsun, DOKS, modern bulut tabanl\u0131 uygulamalar\u0131n\u0131z\u0131 g\u00fcvenilir bir \u015fekilde \u00e7al\u0131\u015ft\u0131rman\u0131z i\u00e7in gerekli altyap\u0131y\u0131 sa\u011flar. DigitalOcean&#8217;\u0131n entegre hizmetleri ve kullan\u0131c\u0131 dostu ara\u00e7lar\u0131 sayesinde, Kubernetes&#8217;in g\u00fcc\u00fcnden tam olarak yararlan\u0131rken operasyonel karma\u015f\u0131kl\u0131\u011f\u0131 en aza indirebilirsiniz. \u015eimdi s\u0131ra sizde; DOKS ile uygulamalar\u0131n\u0131z\u0131 buluta ta\u015f\u0131y\u0131n ve gelece\u011fin teknolojilerini ke\u015ffedin!<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) Kurulumu Rehberi\nDigitalOcean, bulut tabanl\u0131 hizmetler sunan pop\u00fcler bir sa\u011flay\u0131c\u0131d\u0131r ve geli","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1328],"tags":[],"class_list":{"0":"post-38367","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-bash","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) Kurulumu Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) Kurulumu Rehberi\" \/>\n<meta property=\"og:description\" content=\"DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) Kurulumu Rehberi DigitalOcean, bulut tabanl\u0131 hizmetler sunan pop\u00fcler bir sa\u011flay\u0131c\u0131d\u0131r ve geli\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-29T15:40:53+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=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) Kurulumu Rehberi\",\"datePublished\":\"2026-01-29T15:40:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/\"},\"wordCount\":3495,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Bash\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/\",\"name\":\"DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) Kurulumu Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-29T15:40:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) Kurulumu Rehberi\"}]},{\"@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":"DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) Kurulumu Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) Kurulumu Rehberi","og_description":"DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) Kurulumu Rehberi DigitalOcean, bulut tabanl\u0131 hizmetler sunan pop\u00fcler bir sa\u011flay\u0131c\u0131d\u0131r ve geli","og_url":"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-29T15:40:53+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) Kurulumu Rehberi","datePublished":"2026-01-29T15:40:53+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/"},"wordCount":3495,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Bash"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/","name":"DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) Kurulumu Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-29T15:40:53+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-yonetilen-kubernetes-kumesi-doks-kurulumu-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"DigitalOcean Y\u00f6netilen Kubernetes K\u00fcmesi (DOKS) Kurulumu Rehberi"}]},{"@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\/38367","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=38367"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38367\/revisions"}],"predecessor-version":[{"id":38368,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38367\/revisions\/38368"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}