{"id":35587,"date":"2025-12-01T12:40:51","date_gmt":"2025-12-01T09:40:51","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=35587"},"modified":"2025-12-01T12:40:51","modified_gmt":"2025-12-01T09:40:51","slug":"microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/","title":{"rendered":"MicroK8s ile Ubuntu 22.04 \u00dczerine Kubernetes K\u00fcmesi Kurulumu"},"content":{"rendered":"<p><body><\/p>\n<h2>MicroK8s ile Ubuntu 22.04 \u00dczerine Kubernetes K\u00fcmesi Kurulumu<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>Modern yaz\u0131l\u0131m geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerinde konteynerizasyon, uygulamalar\u0131n ta\u015f\u0131nabilirli\u011fini, \u00f6l\u00e7eklenebilirli\u011fini ve tutarl\u0131l\u0131\u011f\u0131n\u0131 art\u0131rman\u0131n temel ta\u015flar\u0131ndan biri haline gelmi\u015ftir. Bu konteynerli uygulamalar\u0131n y\u00f6netimini otomatize etmek ve b\u00fcy\u00fck \u00f6l\u00e7ekli altyap\u0131larda sorunsuz bir \u015fekilde \u00e7al\u0131\u015ft\u0131rmak i\u00e7in ise Kubernetes, sekt\u00f6r standard\u0131 bir platform olarak \u00f6ne \u00e7\u0131kmaktad\u0131r. Ancak, geleneksel bir Kubernetes k\u00fcmesinin kurulumu ve y\u00f6netimi, \u00f6zellikle ba\u015flang\u0131\u00e7 seviyesindeki kullan\u0131c\u0131lar veya geli\u015ftirme\/test ortamlar\u0131 i\u00e7in olduk\u00e7a karma\u015f\u0131k ve zaman al\u0131c\u0131 olabilir. \u0130\u015fte bu noktada MicroK8s devreye girer.<\/p>\n<p>MicroK8s, Canonical taraf\u0131ndan geli\u015ftirilen hafif, tek d\u00fc\u011f\u00fcml\u00fc bir Kubernetes da\u011f\u0131t\u0131m\u0131d\u0131r. H\u0131zl\u0131 kurulumu, d\u00fc\u015f\u00fck sistem kaynaklar\u0131 t\u00fcketimi ve kolay y\u00f6netilebilirli\u011fi sayesinde geli\u015ftiricilerin ve sistem y\u00f6neticilerinin yerel makinelerinde veya k\u00fc\u00e7\u00fck sunucularda h\u0131zl\u0131ca bir Kubernetes ortam\u0131 kurmalar\u0131na olanak tan\u0131r. Bu makale, Ubuntu 22.04 i\u015fletim sistemi \u00fczerinde MicroK8s kullanarak tam te\u015fekk\u00fcll\u00fc bir Kubernetes k\u00fcmesini ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, temel eklentileri nas\u0131l etkinle\u015ftirece\u011finizi ve \u00f6rnek bir uygulama da\u011f\u0131t\u0131m\u0131n\u0131 nas\u0131l ger\u00e7ekle\u015ftirece\u011finizi detayl\u0131 bir \u015fekilde a\u00e7\u0131klayacakt\u0131r. Amac\u0131m\u0131z, MicroK8s&#8217;in sa\u011flad\u0131\u011f\u0131 kolayl\u0131\u011f\u0131 vurgulayarak, Kubernetes d\u00fcnyas\u0131na giri\u015f yapmak isteyen herkes i\u00e7in pratik ve anla\u015f\u0131l\u0131r bir rehber sunmakt\u0131r.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>MicroK8s kurulumuna ba\u015flamadan \u00f6nce, sisteminizin belirli gereksinimleri kar\u015f\u0131lad\u0131\u011f\u0131ndan emin olman\u0131z \u00f6nemlidir. Bu gereksinimler, sorunsuz bir kurulum ve \u00e7al\u0131\u015fma deneyimi i\u00e7in temel olu\u015fturur.<\/p>\n<p>*   <strong>\u0130\u015fletim Sistemi:<\/strong> Ubuntu 22.04 LTS (Jammy Jellyfish) kurulu bir makine. Fiziksel bir sunucu, sanal makine (VMware, VirtualBox, KVM vb.) veya bulut tabanl\u0131 bir sanal sunucu (AWS EC2, Azure VM, Google Cloud Compute Engine vb.) olabilir.<br \/>\n*   <strong>Sistem Kaynaklar\u0131:<\/strong><br \/>\n    *   <strong>RAM:<\/strong> Minimum 2 GB RAM \u00f6nerilir. Ancak, birden fazla eklenti etkinle\u015ftirmeyi veya yo\u011fun uygulamalar \u00e7al\u0131\u015ft\u0131rmay\u0131 planl\u0131yorsan\u0131z 4 GB veya daha fazlas\u0131 daha iyi bir deneyim sunacakt\u0131r.<br \/>\n    *   <strong>CPU:<\/strong> Minimum 2 \u00e7ekirdekli bir i\u015flemci \u00f6nerilir.<br \/>\n    *   <strong>Disk Alan\u0131:<\/strong> Minimum 20 GB bo\u015f disk alan\u0131. Kubernetes bile\u015fenleri ve konteyner imajlar\u0131 zamanla yer kaplayacakt\u0131r.<br \/>\n*   <strong>\u0130nternet Ba\u011flant\u0131s\u0131:<\/strong> MicroK8s ve ilgili paketleri indirmek i\u00e7in aktif bir internet ba\u011flant\u0131s\u0131 gereklidir.<br \/>\n*   <strong>Kullan\u0131c\u0131 Yetkileri:<\/strong> Kurulumu ger\u00e7ekle\u015ftirecek kullan\u0131c\u0131n\u0131n <code>sudo<\/code> yetkilerine sahip olmas\u0131 gerekmektedir.<br \/>\n*   <strong>Sistem G\u00fcncellemesi:<\/strong> Kuruluma ba\u015flamadan \u00f6nce sisteminizin g\u00fcncel oldu\u011fundan emin olmak iyi bir pratiktir. Terminali a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\n    sudo apt upgrade -y\n    sudo apt autoremove -y<\/code><\/pre>\n<p>    Bu komutlar, paket listelerini g\u00fcnceller, mevcut paketleri y\u00fckseltir ve art\u0131k gerekmeyen paketleri temizler.<\/p>\n<h3>MicroK8s Kurulumu<\/h3>\n<p>MicroK8s&#8217;in Ubuntu \u00fczerindeki kurulumu, Snap paketi y\u00f6neticisi sayesinde olduk\u00e7a basittir. Snap, uygulamalar\u0131 ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 izole edilmi\u015f bir ortamda paketlemeye olanak tan\u0131yan evrensel bir paketleme sistemidir.<\/p>\n<h4>Snap ile Kurulum<\/h4>\n<p>Ubuntu 22.04, Snapd (Snap paketi y\u00f6neticisi) ile birlikte gelir, bu nedenle ekstra bir kurulum yapman\u0131za gerek kalmaz. Do\u011frudan MicroK8s&#8217;i kurmaya ba\u015flayabilirsiniz:<\/p>\n<p>1.  <strong>MicroK8s Kurulum Komutu:<\/strong><br \/>\n    A\u015fa\u011f\u0131daki komutu kullanarak MicroK8s&#8217;i sisteminize kurun:<\/p>\n<pre><code class=\"language-bash\">sudo snap install microk8s --classic<\/code><\/pre>\n<p>    *   <code>sudo<\/code>: Komutu y\u00f6netici yetkileriyle \u00e7al\u0131\u015ft\u0131rmak i\u00e7in.<br \/>\n    *   <code>snap install microk8s<\/code>: MicroK8s paketini Snap arac\u0131l\u0131\u011f\u0131yla kurar.<br \/>\n    *   <code>--classic<\/code>: MicroK8s&#8217;in sistem kaynaklar\u0131na tam eri\u015fime ihtiya\u00e7 duymas\u0131 nedeniyle &#8220;classic&#8221; confinement modunda kurulmas\u0131n\u0131 sa\u011flar. Bu, daha esnek bir \u00e7al\u0131\u015fma ortam\u0131 sunar ancak g\u00fcvenlik a\u00e7\u0131s\u0131ndan baz\u0131 k\u0131s\u0131tlamalar\u0131 kald\u0131r\u0131r.<\/p>\n<p>    Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, Snap paketi indirilecek ve kurulacakt\u0131r. Bu i\u015flem, internet ba\u011flant\u0131n\u0131z\u0131n h\u0131z\u0131na ve sistem performans\u0131n\u0131za ba\u011fl\u0131 olarak birka\u00e7 dakika s\u00fcrebilir.<\/p>\n<p>2.  <strong>Kurulum Durumunu Kontrol Etme:<\/strong><br \/>\n    Kurulum tamamland\u0131ktan sonra, MicroK8s servislerinin ba\u015flat\u0131lmas\u0131n\u0131 beklemek \u00f6nemlidir. A\u015fa\u011f\u0131daki komut, MicroK8s servislerinin tamamen haz\u0131r olmas\u0131n\u0131 bekler ve durumunu g\u00f6sterir:<\/p>\n<pre><code class=\"language-bash\">sudo microk8s status --wait-ready<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131, <code>microk8s is running<\/code> ve t\u00fcm temel bile\u015fenlerin (API server, controller manager, scheduler, etcd) etkin oldu\u011funu g\u00f6stermelidir.<\/p>\n<h4>Kullan\u0131c\u0131ya Yetki Verme<\/h4>\n<p>Varsay\u0131lan olarak, MicroK8s&#8217;e eri\u015fmek i\u00e7in <code>sudo<\/code> kullanman\u0131z gerekir. Ancak, her komut i\u00e7in <code>sudo<\/code> yazmak pratik de\u011fildir. MicroK8s grubuna kendi kullan\u0131c\u0131 hesab\u0131n\u0131z\u0131 ekleyerek <code>sudo<\/code> kullanmadan MicroK8s komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rabilirsiniz:<\/p>\n<p>1.  <strong>Kullan\u0131c\u0131y\u0131 MicroK8s Grubuna Ekleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo usermod -a -G microk8s $USER<\/code><\/pre>\n<p>    *   <code>sudo usermod -a -G microk8s<\/code>: Mevcut kullan\u0131c\u0131y\u0131 (<code>$USER<\/code> ortam de\u011fi\u015fkeni ile belirtilen) <code>microk8s<\/code> grubuna ekler.<br \/>\n    *   <code>sudo chown -f -R $USER ~\/.kube<\/code>: Bu komut, kullan\u0131c\u0131n\u0131n <code>.kube<\/code> dizininin sahipli\u011fini ayarlar, b\u00f6ylece <code>kubectl<\/code> komutlar\u0131 d\u00fczg\u00fcn \u00e7al\u0131\u015fabilir.<\/p>\n<p>2.  <strong>Oturumu Yeniden Ba\u015flatma:<\/strong><br \/>\n    Bu de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in oturumu kapat\u0131p tekrar a\u00e7man\u0131z veya a\u015fa\u011f\u0131daki komutu kullanarak grup \u00fcyeli\u011fini g\u00fcncellemeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">newgrp microk8s<\/code><\/pre>\n<p>    <code>newgrp<\/code> komutu, yeni bir oturum olu\u015fturmadan mevcut kabukta yeni grup \u00fcyeli\u011fini etkinle\u015ftirir.<\/p>\n<h4>Kubectl Eri\u015fimi<\/h4>\n<p>MicroK8s, kendi <code>kubectl<\/code> s\u00fcr\u00fcm\u00fcn\u00fc i\u00e7erir. Buna do\u011frudan <code>microk8s kubectl<\/code> \u015feklinde eri\u015febilirsiniz. Ancak, daha k\u0131sa ve standart bir kullan\u0131m i\u00e7in bir alias (takma ad) olu\u015fturmak iyi bir fikirdir:<\/p>\n<p>1.  <strong>Alias Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo snap alias microk8s.kubectl kubectl<\/code><\/pre>\n<p>    Bu komut, <code>microk8s.kubectl<\/code> komutuna <code>kubectl<\/code> takma ad\u0131n\u0131 verir, b\u00f6ylece art\u0131k do\u011frudan <code>kubectl<\/code> yazarak Kubernetes komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<p>2.  <strong>K\u00fcme Durumunu Kontrol Etme:<\/strong><br \/>\n    \u015eimdi, <code>kubectl<\/code> komutunun \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ve k\u00fcmenizin haz\u0131r oldu\u011fundan emin olmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">kubectl get nodes<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131, tek bir d\u00fc\u011f\u00fcm olan <code>ubuntu-server<\/code> (veya makinenizin ana bilgisayar ad\u0131) durumunun <code>Ready<\/code> oldu\u011funu g\u00f6stermelidir.<\/p>\n<pre><code class=\"language-\">NAME               STATUS   ROLES    AGE   VERSION\n    ubuntu-server      Ready    <none>   5m    v1.2x.x<\/code><\/pre>\n<h3>MicroK8s Eklentilerini Etkinle\u015ftirme<\/h3>\n<p>MicroK8s, temel Kubernetes kurulumunun \u00f6tesinde, \u00e7e\u015fitli kullan\u0131\u015fl\u0131 eklentileri (add-ons) etkinle\u015ftirme imkan\u0131 sunar. Bu eklentiler, depolama, a\u011f, izleme ve y\u00f6netim paneli gibi kritik i\u015flevleri kolayca eklemenizi sa\u011flar. Eklentileri etkinle\u015ftirmek i\u00e7in <code>microk8s enable<\/code> komutunu kullan\u0131r\u0131z.<\/p>\n<h4>DNS (CoreDNS)<\/h4>\n<p>Kubernetes k\u00fcmeleri i\u00e7inde servis ke\u015ffi i\u00e7in DNS vazge\u00e7ilmezdir. MicroK8s, CoreDNS&#8217;i varsay\u0131lan DNS sa\u011flay\u0131c\u0131s\u0131 olarak kullan\u0131r.<\/p>\n<pre><code class=\"language-bash\">microk8s enable dns<\/code><\/pre>\n<p>Bu eklenti, pod&#8217;lar\u0131n ve servislerin birbirlerini isimleriyle bulmas\u0131n\u0131 sa\u011flar. Uygulamalar\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 i\u00e7in genellikle bu eklentinin etkinle\u015ftirilmesi zorunludur.<\/p>\n<h4>Dashboard<\/h4>\n<p>Kubernetes Dashboard, k\u00fcmenizi web tabanl\u0131 bir kullan\u0131c\u0131 aray\u00fcz\u00fc \u00fczerinden y\u00f6netmenizi sa\u011flayan resmi bir ara\u00e7t\u0131r. Pod&#8217;lar\u0131, da\u011f\u0131t\u0131mlar\u0131, servisleri ve di\u011fer Kubernetes kaynaklar\u0131n\u0131 g\u00f6rsel olarak izleyebilir ve y\u00f6netebilirsiniz.<\/p>\n<p>1.  <strong>Dashboard Eklentisini Etkinle\u015ftirme:<\/strong><\/p>\n<pre><code class=\"language-bash\">microk8s enable dashboard<\/code><\/pre>\n<p>    Bu komut, Dashboard&#8217;un yan\u0131 s\u0131ra, Dashboard&#8217;un \u00e7al\u0131\u015fmas\u0131 i\u00e7in gerekli olan Ingress eklentisini de otomatik olarak etkinle\u015ftirebilir.<\/p>\n<p>2.  <strong>Dashboard Eri\u015fim Token&#8217;\u0131n\u0131 Alma:<\/strong><br \/>\n    Dashboard&#8217;a eri\u015fmek i\u00e7in bir kimlik do\u011frulama token&#8217;\u0131na ihtiyac\u0131n\u0131z olacak. Bu token&#8217;\u0131 a\u015fa\u011f\u0131daki komutlarla alabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">TOKEN=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d \" \" -f1)\n    microk8s kubectl -n kube-system describe secret $TOKEN<\/code><\/pre>\n<p>    <code>token:<\/code> sat\u0131r\u0131n\u0131n alt\u0131nda yazan uzun karakter dizisi sizin eri\u015fim token&#8217;\u0131n\u0131zd\u0131r. Bu token&#8217;\u0131 bir yere kopyalay\u0131n.<\/p>\n<p>3.  <strong>Dashboard&#8217;a Eri\u015fmek \u0130\u00e7in Port Y\u00f6nlendirme:<\/strong><br \/>\n    Dashboard varsay\u0131lan olarak k\u00fcme i\u00e7inde \u00e7al\u0131\u015f\u0131r ve d\u0131\u015far\u0131dan do\u011frudan eri\u015filemez. Yerel makinenizden eri\u015fmek i\u00e7in bir port y\u00f6nlendirme (port-forward) t\u00fcneli olu\u015fturman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">microk8s kubectl port-forward -n kube-system service\/kubernetes-dashboard 10443:443 --address 0.0.0.0<\/code><\/pre>\n<p>    Bu komut, yerel makinenizin 10443 portunu, Kubernetes k\u00fcmesindeki Dashboard servisinin 443 portuna y\u00f6nlendirir. <code>--address 0.0.0.0<\/code> parametresi, bu port y\u00f6nlendirmesine di\u011fer a\u011f aray\u00fczlerinden de eri\u015filmesini sa\u011flar.<\/p>\n<p>4.  <strong>Taray\u0131c\u0131dan Dashboard&#8217;a Eri\u015fim:<\/strong><br \/>\n    Web taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve a\u015fa\u011f\u0131daki adrese gidin: <code>https:\/\/localhost:10443<\/code> (e\u011fer <code>--address 0.0.0.0<\/code> kulland\u0131ysan\u0131z, makinenizin IP adresiyle de eri\u015febilirsiniz: <code>https:\/\/<makine_ip_adresi>:10443<\/code>).<br \/>\n    Taray\u0131c\u0131n\u0131z muhtemelen bir g\u00fcvenlik uyar\u0131s\u0131 g\u00f6sterecektir (\u00e7\u00fcnk\u00fc kendinden imzal\u0131 bir SSL sertifikas\u0131 kullan\u0131l\u0131r). Bu uyar\u0131y\u0131 ge\u00e7erek ilerleyin.<br \/>\n    A\u00e7\u0131lan sayfada &#8220;Token&#8221; se\u00e7ene\u011fini i\u015faretleyin ve daha \u00f6nce kopyalad\u0131\u011f\u0131n\u0131z token&#8217;\u0131 yap\u0131\u015ft\u0131r\u0131p &#8220;Sign In&#8221; butonuna t\u0131klay\u0131n. Art\u0131k Kubernetes Dashboard&#8217;a eri\u015febilirsiniz.<\/p>\n<h4>Storage (Hostpath)<\/h4>\n<p>Kubernetes&#8217;te kal\u0131c\u0131 depolama (Persistent Storage), pod&#8217;lar yeniden ba\u015flat\u0131lsa veya ta\u015f\u0131nsa bile verilerin korunmas\u0131n\u0131 sa\u011flar. MicroK8s, geli\u015ftirme ve test ortamlar\u0131 i\u00e7in basit bir &#8220;hostpath&#8221; depolama sa\u011flay\u0131c\u0131s\u0131 sunar.<\/p>\n<pre><code class=\"language-bash\">microk8s enable hostpath-storage<\/code><\/pre>\n<p>Bu eklenti, PersistentVolume (PV) ve PersistentVolumeClaim (PVC) kaynaklar\u0131n\u0131 kullanarak pod&#8217;lar\u0131n ana bilgisayar\u0131n dosya sistemindeki belirli bir yolu depolama olarak kullanmas\u0131na izin verir. \u00dcretim ortamlar\u0131 i\u00e7in daha geli\u015fmi\u015f depolama \u00e7\u00f6z\u00fcmleri (NFS, Ceph, bulut depolama sa\u011flay\u0131c\u0131lar\u0131) tercih edilmelidir.<\/p>\n<h4>Ingress<\/h4>\n<p>Ingress, d\u0131\u015far\u0131dan gelen HTTP ve HTTPS trafi\u011fini Kubernetes k\u00fcmesi i\u00e7indeki servislere y\u00f6nlendirmek i\u00e7in bir API nesnesidir. Bir Ingress Controller (\u00f6rne\u011fin Nginx Ingress Controller) bu kurallar\u0131 uygulayarak trafi\u011fi y\u00f6netir.<\/p>\n<pre><code class=\"language-bash\">microk8s enable ingress<\/code><\/pre>\n<p>Ingress eklentisini etkinle\u015ftirmek, uygulamalar\u0131n\u0131za d\u0131\u015f d\u00fcnyadan alan ad\u0131 tabanl\u0131 veya yol tabanl\u0131 eri\u015fim sa\u011flaman\u0131za olanak tan\u0131r.<\/p>\n<h4>Registry<\/h4>\n<p>Yerel bir Docker Registry, kendi konteyner imajlar\u0131n\u0131z\u0131 depolamak ve Kubernetes k\u00fcmenize da\u011f\u0131tmak i\u00e7in kullan\u0131\u015fl\u0131d\u0131r. \u00d6zellikle geli\u015ftirme a\u015famas\u0131nda, imajlar\u0131 Docker Hub gibi harici bir registry&#8217;ye g\u00f6ndermeden test etmek i\u00e7in idealdir.<\/p>\n<pre><code class=\"language-bash\">microk8s enable registry<\/code><\/pre>\n<p>Bu eklenti, yerel bir Docker Registry&#8217;yi k\u00fcmenize kurar ve <code>localhost:32000<\/code> adresinden eri\u015filebilir hale getirir. Kendi imajlar\u0131n\u0131z\u0131 bu registry&#8217;ye push edebilir ve ard\u0131ndan bunlar\u0131 MicroK8s k\u00fcmenize da\u011f\u0131tabilirsiniz.<\/p>\n<p>Di\u011fer faydal\u0131 eklentiler aras\u0131nda:<br \/>\n*   <strong>MetalLB:<\/strong> Bare-metal ortamlarda LoadBalancer tipi servisler i\u00e7in IP adresi atamas\u0131 yapar.<br \/>\n*   <strong>Prometheus:<\/strong> K\u00fcme ve uygulamalar\u0131n\u0131z i\u00e7in izleme ve uyar\u0131 sistemi.<br \/>\n*   <strong>Grafana:<\/strong> Prometheus verilerini g\u00f6rselle\u015ftirmek i\u00e7in bir g\u00f6sterge paneli.<br \/>\n*   <strong>Fluentd:<\/strong> Log toplama ve merkezi log y\u00f6netimi i\u00e7in.<\/p>\n<p>\u0130htiya\u00e7lar\u0131n\u0131za g\u00f6re bu eklentileri de <code>microk8s enable <eklenti_ad\u0131><\/code> komutuyla etkinle\u015ftirebilirsiniz.<\/p>\n<h3>Uygulama Da\u011f\u0131t\u0131m\u0131<\/h3>\n<p>MicroK8s k\u00fcmeniz art\u0131k temel bile\u015fenleri ve baz\u0131 kullan\u0131\u015fl\u0131 eklentileri ile haz\u0131r. \u015eimdi, basit bir Nginx web sunucusu uygulamas\u0131n\u0131 da\u011f\u0131tarak Kubernetes&#8217;in temel i\u015flevlerini deneyimleyelim.<\/p>\n<h4>\u00d6rnek Bir Uygulama (Nginx) Da\u011f\u0131t\u0131m\u0131<\/h4>\n<p>Bir da\u011f\u0131t\u0131m (Deployment), Kubernetes&#8217;te bir uygulaman\u0131n istenen durumunu tan\u0131mlayan temel bir kaynakt\u0131r. Ka\u00e7 tane pod&#8217;un \u00e7al\u0131\u015fmas\u0131 gerekti\u011fini, hangi imaj\u0131 kullanacaklar\u0131n\u0131 vb. belirtirsiniz.<\/p>\n<p>1.  <strong>Nginx Da\u011f\u0131t\u0131m\u0131 Olu\u015fturma:<\/strong><br \/>\n    A\u015fa\u011f\u0131daki komut, <code>nginx<\/code> ad\u0131nda bir da\u011f\u0131t\u0131m olu\u015fturur ve Docker Hub&#8217;daki resmi <code>nginx<\/code> imaj\u0131n\u0131 kullanarak bir pod \u00e7al\u0131\u015ft\u0131r\u0131r:<\/p>\n<pre><code class=\"language-bash\">kubectl create deployment nginx --image=nginx<\/code><\/pre>\n<p>    Bu komut, arka planda bir Deployment nesnesi ve bu Deployment&#8217;\u0131 y\u00f6neten bir ReplicaSet olu\u015fturur. ReplicaSet, belirtilen say\u0131da pod&#8217;un her zaman \u00e7al\u0131\u015f\u0131r durumda olmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>2.  <strong>Da\u011f\u0131t\u0131m Durumunu Kontrol Etme:<\/strong><br \/>\n    Da\u011f\u0131t\u0131m\u0131n ba\u015far\u0131yla olu\u015fturulup olu\u015fturulmad\u0131\u011f\u0131n\u0131 ve pod&#8217;un \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol edelim:<\/p>\n<pre><code class=\"language-bash\">kubectl get deployments\n    kubectl get pods<\/code><\/pre>\n<p>    <code>kubectl get deployments<\/code> \u00e7\u0131kt\u0131s\u0131 <code>nginx<\/code> da\u011f\u0131t\u0131m\u0131n\u0131n <code>READY<\/code> durumda oldu\u011funu, <code>kubectl get pods<\/code> \u00e7\u0131kt\u0131s\u0131 ise <code>nginx<\/code> pod&#8217;unun <code>Running<\/code> durumda oldu\u011funu g\u00f6stermelidir.<\/p>\n<h4>Servis Olu\u015fturma<\/h4>\n<p>Kubernetes&#8217;te bir servis (Service), bir grup pod&#8217;a tek bir, istikrarl\u0131 bir a\u011f eri\u015fim noktas\u0131 sa\u011flar. Pod&#8217;lar yeniden olu\u015fturulsa veya IP adresleri de\u011fi\u015fse bile, servis adresi sabit kal\u0131r.<\/p>\n<p>1.  <strong>Nginx Servisini A\u00e7\u0131\u011fa \u00c7\u0131karma (Expose):<\/strong><br \/>\n    Nginx pod&#8217;umuza d\u0131\u015far\u0131dan eri\u015febilmek i\u00e7in bir servis olu\u015fturmam\u0131z gerekiyor. <code>NodePort<\/code> tipi bir servis, k\u00fcme d\u0131\u015f\u0131ndan eri\u015fim i\u00e7in ana bilgisayar\u0131n belirli bir portunu a\u00e7ar.<\/p>\n<pre><code class=\"language-bash\">kubectl expose deployment nginx --port=80 --type=NodePort<\/code><\/pre>\n<p>    *   <code>--port=80<\/code>: Pod&#8217;un 80 numaral\u0131 portunu servise ba\u011flar.<br \/>\n    *   <code>--type=NodePort<\/code>: Servis tipini <code>NodePort<\/code> olarak ayarlar. Bu, k\u00fcme d\u00fc\u011f\u00fcmlerinin belirli bir port \u00fczerinden servise eri\u015filebilece\u011fi anlam\u0131na gelir.<\/p>\n<p>2.  <strong>Servis Durumunu Kontrol Etme:<\/strong><br \/>\n    Olu\u015fturulan servisi ve atanan NodePort&#8217;u kontrol edelim:<\/p>\n<pre><code class=\"language-bash\">kubectl get services<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131, <code>nginx<\/code> ad\u0131nda bir servisin <code>NodePort<\/code> tipinde oldu\u011funu ve <code>80:3xxxx\/TCP<\/code> (buradaki <code>3xxxx<\/code> rastgele atanan NodePort numaras\u0131d\u0131r, 30000-32767 aral\u0131\u011f\u0131nda) \u015feklinde bir port e\u015fle\u015fmesine sahip oldu\u011funu g\u00f6stermelidir.<\/p>\n<p>3.  <strong>Uygulamaya NodePort ile Eri\u015fim:<\/strong><br \/>\n    Art\u0131k NodePort \u00fczerinden Nginx&#8217;e eri\u015febilirsiniz. Taray\u0131c\u0131n\u0131zda veya <code>curl<\/code> komutuyla deneyin:<\/p>\n<pre><code class=\"language-bash\">curl localhost:3xxxx<\/code><\/pre>\n<p>    (Buradaki <code>3xxxx<\/code> yerine kendi servisinizin NodePort numaras\u0131n\u0131 yaz\u0131n.)<br \/>\n    Nginx&#8217;in varsay\u0131lan &#8220;Welcome to nginx!&#8221; sayfas\u0131n\u0131n HTML i\u00e7eri\u011fini g\u00f6rmelisiniz.<\/p>\n<h4>Ingress ile Eri\u015fim<\/h4>\n<p><code>NodePort<\/code> basit testler i\u00e7in uygun olsa da, genellikle alan ad\u0131 tabanl\u0131 veya yol tabanl\u0131 y\u00f6nlendirme i\u00e7in <code>Ingress<\/code> kullan\u0131l\u0131r. Daha \u00f6nce <code>ingress<\/code> eklentisini etkinle\u015ftirdiyseniz, \u015fimdi bunu kullanarak Nginx&#8217;e eri\u015felim.<\/p>\n<p>1.  <strong>Ingress Kayna\u011f\u0131 Olu\u015fturma:<\/strong><br \/>\n    A\u015fa\u011f\u0131daki YAML i\u00e7eri\u011fini <code>nginx-ingress.yaml<\/code> ad\u0131nda bir dosyaya kaydedin:<\/p>\n<pre><code class=\"language-yaml\">apiVersion: networking.k8s.io\/v1\n    kind: Ingress\n    metadata:\n      name: nginx-ingress\n    spec:\n      rules:\n      - host: myapp.local\n        http:\n          paths:\n          - path: \/\n            pathType: Prefix\n            backend:\n              service:\n                name: nginx\n                port:\n                  number: 80<\/code><\/pre>\n<p>    Bu Ingress kural\u0131, <code>myapp.local<\/code> ana bilgisayar ad\u0131na gelen t\u00fcm istekleri <code>nginx<\/code> servisine (80 numaral\u0131 portundan) y\u00f6nlendirecektir.<\/p>\n<p>2.  <strong>Ingress Kayna\u011f\u0131n\u0131 Uygulama:<\/strong><\/p>\n<pre><code class=\"language-bash\">kubectl apply -f nginx-ingress.yaml<\/code><\/pre>\n<p>3.  <strong>Yerel Hosts Dosyas\u0131n\u0131 D\u00fczenleme:<\/strong><br \/>\n    Ingress Controller&#8217;\u0131n <code>myapp.local<\/code> ana bilgisayar ad\u0131n\u0131 \u00e7\u00f6z\u00fcmleyebilmesi i\u00e7in, yerel makinenizin <code>\/etc\/hosts<\/code> dosyas\u0131na bir giri\u015f eklemeniz gerekir.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/hosts<\/code><\/pre>\n<p>    Dosyan\u0131n sonuna a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyin:<\/p>\n<pre><code class=\"language-\">127.0.0.1 myapp.local<\/code><\/pre>\n<p>    Kaydedip dosyay\u0131 kapat\u0131n.<\/p>\n<p>4.  <strong>Uygulamaya Ingress ile Eri\u015fim:<\/strong><br \/>\n    \u015eimdi web taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve <code>http:\/\/myapp.local<\/code> adresine gidin. Nginx&#8217;in &#8220;Welcome to nginx!&#8221; sayfas\u0131n\u0131 g\u00f6rmelisiniz. Bu, Ingress Controller&#8217;\u0131n iste\u011fi ba\u015far\u0131yla Nginx servisine y\u00f6nlendirdi\u011fini g\u00f6sterir.<\/p>\n<h3>MicroK8s Y\u00f6netimi ve Bak\u0131m\u0131<\/h3>\n<p>MicroK8s, k\u00fcmenizi y\u00f6netmek ve bak\u0131m\u0131n\u0131 yapmak i\u00e7in \u00e7e\u015fitli kullan\u0131\u015fl\u0131 komutlar sunar.<\/p>\n<h4>Durum Kontrol\u00fc<\/h4>\n<p>K\u00fcmenizin ve t\u00fcm bile\u015fenlerinin durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">microk8s status<\/code><\/pre>\n<p>Bu komut, hangi bile\u015fenlerin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131, hangi eklentilerin etkin oldu\u011funu ve genel k\u00fcme sa\u011fl\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<h4>Ba\u015flatma\/Durdurma\/Yeniden Ba\u015flatma<\/h4>\n<p>MicroK8s servislerini y\u00f6netmek i\u00e7in:<br \/>\n*   <strong>Ba\u015flatma:<\/strong> <code>microk8s start<\/code><br \/>\n*   <strong>Durdurma:<\/strong> <code>microk8s stop<\/code><br \/>\n*   <strong>Yeniden Ba\u015flatma:<\/strong> <code>microk8s restart<\/code><\/p>\n<h4>G\u00fcncelleme<\/h4>\n<p>MicroK8s&#8217;i en son kararl\u0131 s\u00fcr\u00fcme g\u00fcncellemek i\u00e7in Snap&#8217;i kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo snap refresh microk8s --channel=stable<\/code><\/pre>\n<p>Bu komut, MicroK8s&#8217;in kurulu oldu\u011fu Snap kanal\u0131ndaki en son kararl\u0131 s\u00fcr\u00fcm\u00fcne g\u00fcncellenmesini sa\u011flar.<\/p>\n<h4>Loglar\u0131 \u0130nceleme<\/h4>\n<p>MicroK8s bile\u015fenlerinin loglar\u0131n\u0131 ve sistem bilgilerini toplamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">microk8s inspect<\/code><\/pre>\n<p>Bu komut, sorun giderme durumlar\u0131nda \u00e7ok faydal\u0131 olan kapsaml\u0131 bir rapor olu\u015fturur ve bir dizine kaydeder.<\/p>\n<h4>K\u00fcme Bilgileri (Kubeconfig)<\/h4>\n<p>E\u011fer MicroK8s k\u00fcmenize ba\u015fka bir <code>kubectl<\/code> istemcisi veya bir CI\/CD arac\u0131 gibi harici bir kaynaktan eri\u015fmek istiyorsan\u0131z, <code>kubeconfig<\/code> dosyas\u0131n\u0131 alman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">microk8s config<\/code><\/pre>\n<p>Bu komut, k\u00fcmenize eri\u015fim i\u00e7in gerekli olan <code>kubeconfig<\/code> i\u00e7eri\u011fini standart \u00e7\u0131kt\u0131ya basar. Bu \u00e7\u0131kt\u0131y\u0131 bir dosyaya kaydedip (\u00f6rne\u011fin <code>~\/.kube\/config<\/code> veya ba\u015fka bir isimle) di\u011fer ara\u00e7larda kullanabilirsiniz.<\/p>\n<h4>K\u00fcme S\u0131f\u0131rlama\/Kald\u0131rma<\/h4>\n<p>*   <strong>K\u00fcme Verilerini S\u0131f\u0131rlama:<\/strong> E\u011fer k\u00fcmenizin t\u00fcm verilerini (pod&#8217;lar, servisler, da\u011f\u0131t\u0131mlar vb.) silip temiz bir duruma d\u00f6nmek isterseniz:<\/p>\n<pre><code class=\"language-bash\">microk8s reset<\/code><\/pre>\n<p>    Bu komut, MicroK8s&#8217;i ilk kurulum durumuna getirir ancak Snap paketini kald\u0131rmaz.<\/p>\n<p>*   <strong>MicroK8s&#8217;i Tamamen Kald\u0131rma:<\/strong> MicroK8s&#8217;i sisteminizden tamamen kald\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo snap remove microk8s --purge<\/code><\/pre>\n<p>    <code>--purge<\/code> parametresi, MicroK8s ile ili\u015fkili t\u00fcm verileri ve konfig\u00fcrasyonlar\u0131 da siler.<\/p>\n<h3>\u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Kurulumu (K\u0131sa Bahis)<\/h3>\n<p>MicroK8s, ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi genellikle tek d\u00fc\u011f\u00fcml\u00fc bir kurulum i\u00e7in tasarlanm\u0131\u015ft\u0131r. Ancak, Canonical, MicroK8s&#8217;i \u00e7ok d\u00fc\u011f\u00fcml\u00fc k\u00fcmeler olu\u015fturmak i\u00e7in de geni\u015fletme yetene\u011fi sunar. Bu, \u00f6zellikle k\u00fc\u00e7\u00fck test k\u00fcmeleri veya kenar bili\u015fim (edge computing) senaryolar\u0131 i\u00e7in faydal\u0131 olabilir.<\/p>\n<p>\u00c7ok d\u00fc\u011f\u00fcml\u00fc bir MicroK8s k\u00fcmesi olu\u015fturmak i\u00e7in:<br \/>\n1.  <strong>\u0130lk D\u00fc\u011f\u00fcmde Token Olu\u015fturma:<\/strong> Mevcut bir MicroK8s kurulumunda (birinci d\u00fc\u011f\u00fcm), a\u015fa\u011f\u0131daki komutla bir birle\u015ftirme token&#8217;\u0131 olu\u015fturursunuz:<\/p>\n<pre><code class=\"language-bash\">microk8s add-node<\/code><\/pre>\n<p>    Bu komut, di\u011fer d\u00fc\u011f\u00fcmlerin bu k\u00fcmeye kat\u0131lmak i\u00e7in kullanabilece\u011fi bir komut ve token \u00fcretir.<\/p>\n<p>2.  <strong>Di\u011fer D\u00fc\u011f\u00fcmlerin Kat\u0131lmas\u0131:<\/strong> Di\u011fer Ubuntu makinelerinde MicroK8s&#8217;i kurduktan sonra (yukar\u0131daki kurulum ad\u0131mlar\u0131n\u0131 takip ederek), birinci d\u00fc\u011f\u00fcm\u00fcn verdi\u011fi <code>microk8s join <IP_ADRES\u0130>:<PORT>\/<TOKEN><\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131rs\u0131n\u0131z.<\/p>\n<p>Ancak, daha b\u00fcy\u00fck, \u00fcretim odakl\u0131 \u00e7ok d\u00fc\u011f\u00fcml\u00fc Kubernetes k\u00fcmeleri i\u00e7in Kubeadm, K3s veya bulut sa\u011flay\u0131c\u0131lar\u0131n\u0131n y\u00f6netilen Kubernetes servisleri (EKS, AKS, GKE) gibi \u00e7\u00f6z\u00fcmler genellikle daha uygun ve kapsaml\u0131 \u00f6zellikler sunar. MicroK8s&#8217;in \u00e7ok d\u00fc\u011f\u00fcml\u00fc yetenekleri daha \u00e7ok basit geni\u015fletme ve hafif senaryolar i\u00e7in tasarlanm\u0131\u015ft\u0131r.<\/p>\n<h3>Sorun Giderme<\/h3>\n<p>MicroK8s kurulumu veya kullan\u0131m\u0131 s\u0131ras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<h4>Snap ile \u0130lgili Sorunlar<\/h4>\n<p>*   <strong>Kurulum Tak\u0131l\u0131 Kal\u0131yor:<\/strong> \u0130nternet ba\u011flant\u0131n\u0131z\u0131 kontrol edin. Snapd servisinin d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun (<code>sudo systemctl status snapd<\/code>).<br \/>\n*   <strong>Snap Komutlar\u0131 \u00c7al\u0131\u015fm\u0131yor:<\/strong> Snapd&#8217;in do\u011fru \u015fekilde y\u00fcklendi\u011finden ve yolunuzda oldu\u011fundan emin olun.<\/p>\n<h4>Kubernetes Bile\u015fen Hatalar\u0131<\/h4>\n<p>*   <strong>Pod&#8217;lar <code>Pending<\/code> veya <code>CrashLoopBackOff<\/code> Durumunda:<\/strong><br \/>\n    *   <code>kubectl get pods -A<\/code>: T\u00fcm ad alanlar\u0131ndaki pod&#8217;lar\u0131 kontrol edin.<br \/>\n    *   <code>kubectl describe pod <pod_ad\u0131> -n <ad_alan\u0131><\/code>: Pod&#8217;un detaylar\u0131n\u0131 inceleyerek neden ba\u015flamad\u0131\u011f\u0131n\u0131 veya \u00e7\u00f6kt\u00fc\u011f\u00fcn\u00fc anlamaya \u00e7al\u0131\u015f\u0131n (Event&#8217;lar b\u00f6l\u00fcm\u00fc \u00f6nemlidir).<br \/>\n    *   <code>kubectl logs <pod_ad\u0131> -n <ad_alan\u0131><\/code>: Pod&#8217;un loglar\u0131n\u0131 kontrol edin.<br \/>\n*   <strong>Servisler Eri\u015filemez:<\/strong><br \/>\n    *   Servisin do\u011fru portu hedefledi\u011finden emin olun.<br \/>\n    *   <code>kubectl get services<\/code> ile servisin durumunu kontrol edin.<br \/>\n    *   <code>kubectl get endpoints <servis_ad\u0131><\/code> ile servisin arkas\u0131ndaki pod&#8217;lar\u0131n IP adreslerinin do\u011fru oldu\u011funu do\u011frulay\u0131n.<\/p>\n<h4>Kaynak K\u0131s\u0131tlamalar\u0131<\/h4>\n<p>*   <strong>D\u00fc\u015f\u00fck RAM\/CPU:<\/strong> \u00d6zellikle \u00e7ok say\u0131da pod \u00e7al\u0131\u015ft\u0131r\u0131yorsan\u0131z veya kaynak yo\u011fun uygulamalar kullan\u0131yorsan\u0131z, sistem kaynaklar\u0131n\u0131n yetersizli\u011fi performans\u0131 etkileyebilir veya pod&#8217;lar\u0131n ba\u015flamas\u0131n\u0131 engelleyebilir. <code>microk8s inspect<\/code> komutu bu konuda ipu\u00e7lar\u0131 verebilir. Daha fazla RAM veya CPU tahsis etmeyi d\u00fc\u015f\u00fcnebilirsiniz.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 (UFW)<\/h4>\n<p>Ubuntu&#8217;da UFW (Uncomplicated Firewall) etkinse, Kubernetes bile\u015fenlerinin ileti\u015fim kurmas\u0131n\u0131 engelleyebilir. MicroK8s, kurulum s\u0131ras\u0131nda baz\u0131 UFW kurallar\u0131n\u0131 otomatik olarak eklemeye \u00e7al\u0131\u015f\u0131r, ancak bazen manuel m\u00fcdahale gerekebilir.<br \/>\n*   <strong>UFW Durumunu Kontrol Etme:<\/strong> <code>sudo ufw status<\/code><br \/>\n*   <strong>Gerekli Portlar\u0131 A\u00e7ma:<\/strong><br \/>\n    *   Kubernetes API Sunucusu: <code>sudo ufw allow 16443\/tcp<\/code><br \/>\n    *   Kubelet: <code>sudo ufw allow 10250\/tcp<\/code><br \/>\n    *   CNI (Konteyner A\u011f Aray\u00fcz\u00fc) trafi\u011fi i\u00e7in <code>cni0<\/code> k\u00f6pr\u00fcs\u00fcne izin verme: <code>sudo ufw allow in on cni0<\/code><br \/>\n    *   Flannel (varsay\u0131lan CNI): <code>sudo ufw allow 8472\/udp<\/code> (Calico kullan\u0131yorsan\u0131z farkl\u0131 portlar gerekebilir)<br \/>\n    *   Dashboard i\u00e7in port y\u00f6nlendirme yap\u0131yorsan\u0131z, o portu da a\u00e7man\u0131z gerekebilir (<code>sudo ufw allow 10443\/tcp<\/code>).<\/p>\n<h4>MicroK8s Loglar\u0131<\/h4>\n<p>Daha derinlemesine sorun giderme i\u00e7in MicroK8s&#8217;in kendi loglar\u0131n\u0131 inceleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">journalctl -u snap.microk8s.* --no-pager<\/code><\/pre>\n<p>Bu komut, MicroK8s ile ilgili t\u00fcm Snap servislerinin loglar\u0131n\u0131 g\u00f6sterir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Ubuntu 22.04 i\u015fletim sistemi \u00fczerinde MicroK8s kullanarak h\u0131zl\u0131 ve etkili bir Kubernetes k\u00fcmesi kurulumunu ad\u0131m ad\u0131m ele ald\u0131k. MicroK8s&#8217;in hafif yap\u0131s\u0131 ve Snap entegrasyonu sayesinde, geleneksel Kubernetes kurulumlar\u0131n\u0131n karma\u015f\u0131kl\u0131\u011f\u0131ndan uzak durarak, dakikalar i\u00e7inde \u00e7al\u0131\u015fan bir Kubernetes ortam\u0131na sahip olman\u0131n ne kadar kolay oldu\u011funu g\u00f6rd\u00fck.<\/p>\n<p>Kurulum s\u00fcrecinde, MicroK8s&#8217;in nas\u0131l kurulaca\u011f\u0131n\u0131, kullan\u0131c\u0131 yetkilerinin nas\u0131l ayarlanaca\u011f\u0131n\u0131 ve <code>kubectl<\/code> komutunun nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 \u00f6\u011frendik. Ard\u0131ndan, DNS, Dashboard, Hostpath Storage, Ingress ve Registry gibi temel eklentileri etkinle\u015ftirerek k\u00fcmemizin i\u015flevselli\u011fini geni\u015flettik. Son olarak, \u00f6rnek bir Nginx uygulamas\u0131n\u0131 da\u011f\u0131tarak ve NodePort ile Ingress kullanarak d\u0131\u015far\u0131dan eri\u015fim sa\u011flayarak Kubernetes&#8217;in temel da\u011f\u0131t\u0131m mekanizmalar\u0131n\u0131 pratik olarak uygulad\u0131k. Y\u00f6netim, bak\u0131m ve sorun giderme ipu\u00e7lar\u0131yla da MicroK8s deneyiminizi daha eksiksiz hale getirmeye \u00e7al\u0131\u015ft\u0131k.<\/p>\n<p>MicroK8s, \u00f6zellikle geli\u015ftirme, test, IoT ve kenar bili\u015fim senaryolar\u0131 i\u00e7in m\u00fckemmel bir se\u00e7imdir. Kubernetes&#8217;i \u00f6\u011frenmek isteyenler i\u00e7in d\u00fc\u015f\u00fck bir giri\u015f bariyeri sunar ve h\u0131zl\u0131 prototipleme imkanlar\u0131 sa\u011flar. Her ne kadar b\u00fcy\u00fck \u00f6l\u00e7ekli \u00fcretim ortamlar\u0131 i\u00e7in daha geli\u015fmi\u015f Kubernetes da\u011f\u0131t\u0131mlar\u0131 tercih edilse de, MicroK8s&#8217;in sa\u011flad\u0131\u011f\u0131 esneklik ve kullan\u0131m kolayl\u0131\u011f\u0131 onu bir\u00e7ok senaryo i\u00e7in vazge\u00e7ilmez bir ara\u00e7 haline getirmektedir.<\/p>\n<p>Art\u0131k kendi MicroK8s k\u00fcmenizde uygulamalar\u0131n\u0131z\u0131 da\u011f\u0131tmaya, Kubernetes kavramlar\u0131n\u0131 derinlemesine ke\u015ffetmeye ve konteynerli i\u015f y\u00fcklerinin g\u00fcc\u00fcn\u00fc deneyimlemeye haz\u0131rs\u0131n\u0131z. Bir sonraki ad\u0131m olarak, Helm ile uygulama paketlemeyi, CI\/CD entegrasyonlar\u0131n\u0131 veya daha karma\u015f\u0131k a\u011f ve depolama \u00e7\u00f6z\u00fcmlerini ara\u015ft\u0131rmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz. Kubernetes d\u00fcnyas\u0131na ho\u015f geldiniz!<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"MicroK8s ile Ubuntu 22.04 \u00dczerine Kubernetes K\u00fcmesi Kurulumu\nGiri\u015f\nModern yaz\u0131l\u0131m geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerinde konteynerizasyon, uyg","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":[1468],"tags":[],"class_list":{"0":"post-35587","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","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>MicroK8s ile Ubuntu 22.04 \u00dczerine Kubernetes K\u00fcmesi Kurulumu - 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\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MicroK8s ile Ubuntu 22.04 \u00dczerine Kubernetes K\u00fcmesi Kurulumu\" \/>\n<meta property=\"og:description\" content=\"MicroK8s ile Ubuntu 22.04 \u00dczerine Kubernetes K\u00fcmesi Kurulumu Giri\u015f Modern yaz\u0131l\u0131m geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerinde konteynerizasyon, uyg\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-01T09:40:51+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=\"18 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"MicroK8s ile Ubuntu 22.04 \u00dczerine Kubernetes K\u00fcmesi Kurulumu\",\"datePublished\":\"2025-12-01T09:40:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/\"},\"wordCount\":3235,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/\",\"name\":\"MicroK8s ile Ubuntu 22.04 \u00dczerine Kubernetes K\u00fcmesi Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-01T09:40:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MicroK8s ile Ubuntu 22.04 \u00dczerine Kubernetes K\u00fcmesi Kurulumu\"}]},{\"@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":"MicroK8s ile Ubuntu 22.04 \u00dczerine Kubernetes K\u00fcmesi Kurulumu - 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\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/","og_locale":"tr_TR","og_type":"article","og_title":"MicroK8s ile Ubuntu 22.04 \u00dczerine Kubernetes K\u00fcmesi Kurulumu","og_description":"MicroK8s ile Ubuntu 22.04 \u00dczerine Kubernetes K\u00fcmesi Kurulumu Giri\u015f Modern yaz\u0131l\u0131m geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerinde konteynerizasyon, uyg","og_url":"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-01T09:40:51+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"18 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"MicroK8s ile Ubuntu 22.04 \u00dczerine Kubernetes K\u00fcmesi Kurulumu","datePublished":"2025-12-01T09:40:51+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/"},"wordCount":3235,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/","url":"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/","name":"MicroK8s ile Ubuntu 22.04 \u00dczerine Kubernetes K\u00fcmesi Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-01T09:40:51+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/microk8s-ile-ubuntu-22-04-uzerine-kubernetes-kumesi-kurulumu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MicroK8s ile Ubuntu 22.04 \u00dczerine Kubernetes K\u00fcmesi Kurulumu"}]},{"@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\/35587","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=35587"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35587\/revisions"}],"predecessor-version":[{"id":35588,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35587\/revisions\/35588"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35587"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35587"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}