{"id":5907,"date":"2026-10-16T15:08:12","date_gmt":"2026-10-16T12:08:12","guid":{"rendered":"https:\/\/www.dchost.com\/blog\/?p=5907"},"modified":"2026-10-16T03:20:15","modified_gmt":"2026-10-16T00:20:15","slug":"kubernetes-pvc-pending-disk-neden-baglanmiyor","status":"publish","type":"post","link":"https:\/\/www.dchost.com\/blog\/kubernetes-pvc-pending-disk-neden-baglanmiyor\/","title":{"rendered":"Kubernetes PVC Pending: Disk Neden Ba\u011flanm\u0131yor?"},"content":{"rendered":"<div class=\"dchost-blog-content-wrapper\"><div class=\"aiw-summary\">\n<p class=\"aiw-box-title\">H\u0131zl\u0131 \u00f6zet<\/p>\n<p>Kubernetes&#8217;te PVC, uygulaman\u0131n kal\u0131c\u0131 depolama talebidir. Pending durumu, bu talebin hen\u00fcz bir depolama kayna\u011f\u0131yla e\u015fle\u015fmedi\u011fini g\u00f6sterir. Yanl\u0131\u015f depolama s\u0131n\u0131f\u0131, disk olu\u015fturma yetkisinin eksikli\u011fi, kapasite s\u0131n\u0131r\u0131 veya uygulaman\u0131n \u00e7al\u0131\u015faca\u011f\u0131 d\u00fc\u011f\u00fcm\u00fcn hen\u00fcz se\u00e7ilmemesi bu beklemeye neden olabilir. Pending, tek ba\u015f\u0131na diskin ba\u011flanamad\u0131\u011f\u0131n\u0131 g\u00f6stermez.<\/p>\n<ul>\n<li>\u0130lk ipucunu PVC&#8217;nin Events, yani olay kay\u0131tlar\u0131 b\u00f6l\u00fcm\u00fcnde aray\u0131n.<\/li>\n<li>StorageClass, yani depolama s\u0131n\u0131f\u0131, talep edilen diskin hangi s\u00fcr\u00fcc\u00fc ve ayarlarla olu\u015fturulaca\u011f\u0131n\u0131 belirler.<\/li>\n<li>WaitForFirstConsumer, yani ilk t\u00fcketiciyi bekleme ayar\u0131nda, diski kullanacak Pod&#8217;un yerle\u015fimi beklenebilir. Pod, uygulaman\u0131z\u0131n kapsay\u0131c\u0131lar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131ran birimdir.<\/li>\n<li>Talebin kar\u015f\u0131lanmas\u0131yla diskin uygulamaya ba\u011flanmas\u0131 ayr\u0131 a\u015famalard\u0131r; kontrolleri buna g\u00f6re ay\u0131r\u0131n.<\/li>\n<\/ul>\n<\/div>\n<p>Uygulaman\u0131z\u0131 yay\u0131mlad\u0131n\u0131z ama Pod ba\u015flam\u0131yor, depolama talebi de Pending durumunda bekliyor. \u00d6nce talebin neden kar\u015f\u0131lanmad\u0131\u011f\u0131n\u0131 bulman\u0131z gerekir. Olay kay\u0131tlar\u0131, ayarlar\u0131 rastgele de\u011fi\u015ftirmeden sorunun depolama s\u0131n\u0131f\u0131nda m\u0131, disk olu\u015fturma i\u015fleminde mi yoksa d\u00fc\u011f\u00fcm se\u00e7iminde mi oldu\u011funu ay\u0131rt etmenize yard\u0131mc\u0131 olur.<\/p>\n<p>\u00d6rnek senaryoda, mevcut bir Amazon EKS k\u00fcmesinde yanl\u0131\u015f depolama s\u0131n\u0131f\u0131 ad\u0131 nedeniyle bekleyen talebi ele alaca\u011f\u0131z. \u00d6nce talebin bo\u015f ve hi\u00e7bir diskle e\u015fle\u015fmemi\u015f oldu\u011funu kontrol edecek, ard\u0131ndan do\u011fru s\u0131n\u0131fla yeniden olu\u015fturaca\u011f\u0131z. Siz de bu ak\u0131\u015f\u0131 izleyerek yaln\u0131z durum etiketinin de\u011fi\u015fti\u011fini de\u011fil, uygulaman\u0131n diske dosya yaz\u0131p okuyabildi\u011fini kontrol edebileceksiniz.<\/p>\n<div id=\"toc_container\" role=\"navigation\" aria-label=\"Table of Contents\" data-nosnippet class=\"toc_transparent no_bullets toc_numbered toc_title_center\"><p class=\"toc_title\">\u0130\u00e7indekiler<\/p><ul class=\"toc_list\"><li><a href=\"#PVC_Pending_durumunu_olay_kayitlariyla_ayirt_edin\"><span class=\"toc_number toc_depth_1\">1.<\/span> PVC Pending durumunu olay kay\u0131tlar\u0131yla ay\u0131rt edin<\/a><ul><li><a href=\"#Once_dogru_kume_ve_namespace8217i_kontrol_edin\"><span class=\"toc_number toc_depth_2\">1.1.<\/span> \u00d6nce do\u011fru k\u00fcme ve namespace&#8217;i kontrol edin<\/a><\/li><li><a href=\"#PVC_olaylarindan_ilk_ayrimi_yapin\"><span class=\"toc_number toc_depth_2\">1.2.<\/span> PVC olaylar\u0131ndan ilk ayr\u0131m\u0131 yap\u0131n<\/a><\/li><\/ul><\/li><li><a href=\"#Ornek_ortami_dogrulayin_ve_StorageClass_hatasini_duzeltin\"><span class=\"toc_number toc_depth_1\">2.<\/span> \u00d6rnek ortam\u0131 do\u011frulay\u0131n ve StorageClass hatas\u0131n\u0131 d\u00fczeltin<\/a><ul><li><a href=\"#EKS_surucu_ve_yetkileri_kontrol_edin\"><span class=\"toc_number toc_depth_2\">2.1.<\/span> EKS, s\u00fcr\u00fcc\u00fc ve yetkileri kontrol edin<\/a><\/li><li><a href=\"#Ornege_ozel_StorageClass_olusturun\"><span class=\"toc_number toc_depth_2\">2.2.<\/span> \u00d6rne\u011fe \u00f6zel StorageClass olu\u015fturun<\/a><\/li><li><a href=\"#Yalniz_bos_ve_eslesmemis_talebi_yeniden_olusturun\"><span class=\"toc_number toc_depth_2\">2.3.<\/span> Yaln\u0131z bo\u015f ve e\u015fle\u015fmemi\u015f talebi yeniden olu\u015fturun<\/a><\/li><\/ul><\/li><li><a href=\"#Tuketici_Pod8217u_olusturun_ve_diskin_kullanilmasini_dogrulayin\"><span class=\"toc_number toc_depth_1\">3.<\/span> T\u00fcketici Pod&#8217;u olu\u015fturun ve diskin kullan\u0131lmas\u0131n\u0131 do\u011frulay\u0131n<\/a><ul><li><a href=\"#Talebi_kullanan_Pod8217u_baslatin\"><span class=\"toc_number toc_depth_2\">3.1.<\/span> Talebi kullanan Pod&#8217;u ba\u015flat\u0131n<\/a><\/li><li><a href=\"#Eslesmeyi_ve_dosya_erisimini_dogrulayin\"><span class=\"toc_number toc_depth_2\">3.2.<\/span> E\u015fle\u015fmeyi ve dosya eri\u015fimini do\u011frulay\u0131n<\/a><\/li><\/ul><\/li><li><a href=\"#Pending_suruyorsa_CSI_kapasite_ve_erisim_modunu_inceleyin\"><span class=\"toc_number toc_depth_1\">4.<\/span> Pending s\u00fcr\u00fcyorsa CSI, kapasite ve eri\u015fim modunu inceleyin<\/a><ul><li><a href=\"#CSI_kayitlarinda_yetki_hatasini_ayirin\"><span class=\"toc_number toc_depth_2\">4.1.<\/span> CSI kay\u0131tlar\u0131nda yetki hatas\u0131n\u0131 ay\u0131r\u0131n<\/a><\/li><li><a href=\"#Kota_ile_gercek_kapasite_sorununu_ayirin\"><span class=\"toc_number toc_depth_2\">4.2.<\/span> Kota ile ger\u00e7ek kapasite sorununu ay\u0131r\u0131n<\/a><\/li><li><a href=\"#Erisim_modu_ve_statik_PV_eslesmesini_kontrol_edin\"><span class=\"toc_number toc_depth_2\">4.3.<\/span> Eri\u015fim modu ve statik PV e\u015fle\u015fmesini kontrol edin<\/a><\/li><li><a href=\"#Topoloji_engelini_Pod_olaylarindan_bulun\"><span class=\"toc_number toc_depth_2\">4.4.<\/span> Topoloji engelini Pod olaylar\u0131ndan bulun<\/a><\/li><\/ul><\/li><li><a href=\"#Sik_Sorulan_Sorular\"><span class=\"toc_number toc_depth_1\">5.<\/span> S\u0131k Sorulan Sorular<\/a><ul><li><a href=\"#PVC_baska_bir_namespace8217ten_kullanilabilir_mi\"><span class=\"toc_number toc_depth_2\">5.1.<\/span> PVC ba\u015fka bir namespace&#8217;ten kullan\u0131labilir mi?<\/a><\/li><li><a href=\"#StorageClass_degisikligi_mevcut_diski_tasir_mi\"><span class=\"toc_number toc_depth_2\">5.2.<\/span> StorageClass de\u011fi\u015fikli\u011fi mevcut diski ta\u015f\u0131r m\u0131?<\/a><\/li><li><a href=\"#Pod_silinince_diskteki_veri_kalir_mi\"><span class=\"toc_number toc_depth_2\">5.3.<\/span> Pod silinince diskteki veri kal\u0131r m\u0131?<\/a><\/li><li><a href=\"#Uygulama_yedegi_icin_disk_anlik_goruntusu_yeterli_mi\"><span class=\"toc_number toc_depth_2\">5.4.<\/span> Uygulama yede\u011fi i\u00e7in disk anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fc yeterli mi?<\/a><\/li><\/ul><\/li><li><a href=\"#Kapanis_kontrol_listesi_Depolamayi_uygulamaya_teslim_edin\"><span class=\"toc_number toc_depth_1\">6.<\/span> Kapan\u0131\u015f kontrol listesi: Depolamay\u0131 uygulamaya teslim edin<\/a><ul><li><a href=\"#Deneme_kaynaklarini_veriyi_koruyarak_temizleyin\"><span class=\"toc_number toc_depth_2\">6.1.<\/span> Deneme kaynaklar\u0131n\u0131 veriyi koruyarak temizleyin<\/a><\/li><\/ul><\/li><\/ul><\/div>\n<h2><span id=\"PVC_Pending_durumunu_olay_kayitlariyla_ayirt_edin\">PVC Pending durumunu olay kay\u0131tlar\u0131yla ay\u0131rt edin<\/span><\/h2>\n<p><strong>Kubernetes PVC Pending<\/strong>, kal\u0131c\u0131 depolama talebinin hen\u00fcz bir depolama kayna\u011f\u0131yla e\u015fle\u015fmedi\u011fini g\u00f6sterir. PVC (PersistentVolumeClaim), uygulaman\u0131z\u0131n kapasite ve eri\u015fim bi\u00e7imi gibi ihtiya\u00e7lar\u0131n\u0131 bildiren taleptir. PV (PersistentVolume), bu talebi kar\u015f\u0131layan diski veya ba\u015fka bir depolama kayna\u011f\u0131n\u0131 Kubernetes i\u00e7inde temsil eder. PVC&#8217;nin <code>Bound<\/code> olmas\u0131, PV ile e\u015fle\u015fti\u011fi anlam\u0131na gelir; diskin uygulama i\u00e7inde kullan\u0131labildi\u011fini tek ba\u015f\u0131na kan\u0131tlamaz.<\/p>\n<figure class=\"aiw-figure\" data-aiw-visual-id=\"5903\" data-aiw-visual-key=\"81bd076a3fb2052c295c6a018f0b84fcedc5a8de065a68c56c7f21ac4f37dd75\"><img decoding=\"async\" src=\"https:\/\/www.dchost.com\/blog\/wp-content\/uploads\/2026\/10\/dchost-flow-tr-0350a4bae6ee1197f777.png\" alt=\"Ba\u011flam ve namespace kontrol\u00fcnden ba\u015flay\u0131p PVC durumuna g\u00f6re talep tahsisi veya Pod ba\u011flama hatalar\u0131na y\u00f6nelen te\u015fhis ak\u0131\u015f\u0131.\" width=\"840\" height=\"1213\" loading=\"lazy\" class=\"aiw-article-visual wp-image-5903\" srcset=\"https:\/\/www.dchost.com\/blog\/wp-content\/uploads\/2026\/10\/dchost-flow-tr-0350a4bae6ee1197f777.png 840w, https:\/\/www.dchost.com\/blog\/wp-content\/uploads\/2026\/10\/dchost-flow-tr-0350a4bae6ee1197f777-208x300.png 208w, https:\/\/www.dchost.com\/blog\/wp-content\/uploads\/2026\/10\/dchost-flow-tr-0350a4bae6ee1197f777-709x1024.png 709w, https:\/\/www.dchost.com\/blog\/wp-content\/uploads\/2026\/10\/dchost-flow-tr-0350a4bae6ee1197f777-768x1109.png 768w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><figcaption>Ak\u0131\u015f \u015femas\u0131: Ak\u0131\u015f, hen\u00fcz diskle e\u015fle\u015fmeyen bir talebi, e\u015fle\u015fmi\u015f diskin Pod taraf\u0131ndan kullan\u0131lamamas\u0131 durumundan ay\u0131r\u0131r.<\/figcaption><\/figure>\n<p>Pod, uygulama kapsay\u0131c\u0131lar\u0131n\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 birimdir. Pod ba\u015flam\u0131yorsa \u00f6nce talebin mi kar\u015f\u0131lanamad\u0131\u011f\u0131n\u0131, yoksa e\u015fle\u015fmi\u015f diskin mi kullan\u0131lamad\u0131\u011f\u0131n\u0131 ay\u0131r\u0131n. Bu ayr\u0131m, yanl\u0131\u015f kayna\u011f\u0131 de\u011fi\u015ftirmenizi \u00f6nler. <a href=\"https:\/\/www.dchost.com\/blog\/kubernetes-nedir\/\">Kubernetes&#039;in temel \u00e7al\u0131\u015fma mant\u0131\u011f\u0131<\/a> kaynaklar aras\u0131ndaki ili\u015fkiyi anlaman\u0131z\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n<h3><span id=\"Once_dogru_kume_ve_namespace8217i_kontrol_edin\">\u00d6nce do\u011fru k\u00fcme ve namespace&#8217;i kontrol edin<\/span><\/h3>\n<p>\u00d6rnek senaryoda Linux i\u015f\u00e7i d\u00fc\u011f\u00fcmleri bulunan mevcut bir Amazon EKS, yani AWS&#8217;nin y\u00f6netilen Kubernetes hizmeti \u00fczerindeki k\u00fcmeyi kullan\u0131yoruz; k\u00fcme kurulumu kapsam d\u0131\u015f\u0131nda. A\u015fa\u011f\u0131daki komutlar\u0131 <code>kubectl<\/code> eri\u015fimi olan y\u00f6netici terminalinizde \u00e7al\u0131\u015ft\u0131r\u0131n. Ba\u011flam, komutlar\u0131n hangi k\u00fcmeye ve hangi kullan\u0131c\u0131 kimli\u011fiyle g\u00f6nderildi\u011fini; namespace ise kaynaklar\u0131n bulundu\u011fu ad alan\u0131n\u0131 belirler.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">kubectl config current-context\nkubectl config view --minify\nkubectl get namespace pvc-demo\nkubectl get pvc -n pvc-demo<\/code><\/pre>\n<p>\u0130lk iki komutun \u00e7\u0131kt\u0131s\u0131ndaki k\u00fcme ve kullan\u0131c\u0131 bilgilerinin hedef EKS ortam\u0131n\u0131za ait oldu\u011fundan emin olun. Son iki komutta ad alan\u0131n\u0131 ve i\u00e7indeki talepleri g\u00f6rmelisiniz. \u00d6rnekte talep ad\u0131 <code>app-data<\/code>, namespace <code>pvc-demo<\/code>. Kendi sorununuzu inceliyorsan\u0131z bunlar\u0131 mevcut kaynak adlar\u0131n\u0131zla de\u011fi\u015ftirin. <code>NotFound<\/code> veya bo\u015f liste g\u00f6rd\u00fc\u011f\u00fcn\u00fczde disk hatas\u0131 aramadan \u00f6nce ad alan\u0131n\u0131n do\u011fru ve kayna\u011f\u0131n olu\u015fturulmu\u015f olup olmad\u0131\u011f\u0131n\u0131 kontrol edin. <code>Forbidden<\/code> ise komutu \u00e7al\u0131\u015ft\u0131ran kimli\u011fin ilgili kayna\u011fa eri\u015fim yetkisi olmad\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<h3><span id=\"PVC_olaylarindan_ilk_ayrimi_yapin\">PVC olaylar\u0131ndan ilk ayr\u0131m\u0131 yap\u0131n<\/span><\/h3>\n<p>Do\u011fru talebi bulduktan sonra ayr\u0131nt\u0131lar\u0131n\u0131 ve olay kay\u0131tlar\u0131n\u0131 okuyun. \u0130lk komut talebin mevcut durumunu, ikincisi bu talebe ait olaylar\u0131 olu\u015fturulma zaman\u0131na g\u00f6re listeler. Bu komutlar kaynaklar\u0131 de\u011fi\u015ftirmez:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">kubectl describe pvc app-data -n pvc-demo\nkubectl get events -n pvc-demo --field-selector involvedObject.kind=PersistentVolumeClaim,involvedObject.name=app-data --sort-by=.metadata.creationTimestamp<\/code><\/pre>\n<p><code>describe<\/code> \u00e7\u0131kt\u0131s\u0131nda <code>Status<\/code> talebin durumunu, <code>StorageClass<\/code> depolama s\u0131n\u0131f\u0131n\u0131, <code>Volume<\/code> ise e\u015fle\u015fen PV ad\u0131n\u0131 g\u00f6sterir. Depolama s\u0131n\u0131f\u0131, diskin hangi s\u00fcr\u00fcc\u00fc ve ayarlarla sa\u011flanaca\u011f\u0131n\u0131 belirler. <code>Events<\/code>, yani olay kay\u0131tlar\u0131 b\u00f6l\u00fcm\u00fcnde olay\u0131n nedenini ve a\u00e7\u0131klamas\u0131n\u0131 birlikte okuyun:<\/p>\n<ul>\n<li><code>storageclass.storage.k8s.io \"gp3-typo\" not found<\/code>: Talepte belirtilen depolama s\u0131n\u0131f\u0131 bulunam\u0131yor. \u00d6nce talepteki s\u0131n\u0131f ad\u0131n\u0131n k\u00fcmede tan\u0131ml\u0131 bir s\u0131n\u0131fla e\u015fle\u015fip e\u015fle\u015fmedi\u011fine bak\u0131n.<\/li>\n<li><code>WaitForFirstConsumer<\/code>: Disk tahsisi, talebi kullanacak Pod&#8217;un hangi d\u00fc\u011f\u00fcmde \u00e7al\u0131\u015faca\u011f\u0131 belirlenene kadar bekliyor olabilir. Bu bekleme tek ba\u015f\u0131na ar\u0131za de\u011fildir; talebi kullanan Pod&#8217;un varl\u0131\u011f\u0131n\u0131 ve yerle\u015fim durumunu kontrol edin.<\/li>\n<li><code>ProvisioningFailed<\/code>: Disk olu\u015fturma veya tahsis i\u015flemi ba\u015far\u0131s\u0131z olmu\u015f. Hangi d\u00fczeltmenin gerekti\u011fini mesaj\u0131n devam\u0131ndaki yetki, kapasite veya s\u00fcr\u00fcc\u00fc a\u00e7\u0131klamas\u0131 belirler.<\/li>\n<\/ul>\n<p>Olaylar s\u0131n\u0131rl\u0131 s\u00fcre tutulur; bo\u015f <code>Events<\/code> listesi sorun olmad\u0131\u011f\u0131 anlam\u0131na gelmez. PVC <code>Bound<\/code> oldu\u011fu h\u00e2lde uygulama ba\u015flam\u0131yorsa talep e\u015fle\u015fmesini ge\u00e7mi\u015fsiniz demektir. S\u0131radaki ipucunu Pod olaylar\u0131nda aray\u0131n:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">kubectl describe pod disk-check -n pvc-demo<\/code><\/pre>\n<p>Bu komut \u00f6rnekteki t\u00fcketici Pod&#8217;u inceler; kendi ortam\u0131n\u0131zda talebi kullanan Pod&#8217;un ad\u0131n\u0131 kullan\u0131n. Pod hen\u00fcz olu\u015fturulmad\u0131ysa bulunamad\u0131\u011f\u0131n\u0131 belirten yan\u0131t alman\u0131z bir disk ba\u011flama hatas\u0131 de\u011fildir.<\/p>\n<p>Pod mevcutsa <code>FailedAttachVolume<\/code> diskin d\u00fc\u011f\u00fcme tak\u0131lmas\u0131, <code>FailedMount<\/code> ise depolaman\u0131n Pod&#8217;a ba\u011flanmas\u0131 a\u015famas\u0131ndaki soruna i\u015faret eder. Olay mesaj\u0131n\u0131n devam\u0131 hangi disk veya ba\u011flama i\u015fleminin etkilendi\u011fini a\u00e7\u0131klar. Bunlar\u0131 PVC Pending ile ayn\u0131 sorun saymay\u0131n; bu a\u015famada e\u015fle\u015fmi\u015f talebi silmek yerine Pod olay\u0131ndaki nedene g\u00f6re ilerleyin.<\/p>\n<h2><span id=\"Ornek_ortami_dogrulayin_ve_StorageClass_hatasini_duzeltin\">\u00d6rnek ortam\u0131 do\u011frulay\u0131n ve StorageClass hatas\u0131n\u0131 d\u00fczeltin<\/span><\/h2>\n<p>Olay kayd\u0131 <code>gp3-typo not found<\/code> diyorsa talepte yazan depolama s\u0131n\u0131f\u0131 bulunam\u0131yor demektir. Do\u011fru s\u0131n\u0131f\u0131 olu\u015fturmadan \u00f6nce kullanaca\u011f\u0131 s\u00fcr\u00fcc\u00fcn\u00fcn haz\u0131r oldu\u011fundan emin olun. Bu \u00f6rnek senaryo, standart Amazon EKS \u00fczerinde Linux EC2 i\u015f\u00e7i d\u00fc\u011f\u00fcmleri i\u00e7indir; EKS Auto Mode veya yaln\u0131z Fargate kullanan k\u00fcmelerde ayn\u0131 ayarlar ge\u00e7erli de\u011fildir.<\/p>\n<h3><span id=\"EKS_surucu_ve_yetkileri_kontrol_edin\">EKS, s\u00fcr\u00fcc\u00fc ve yetkileri kontrol edin<\/span><\/h3>\n<p>Komutlar\u0131 <code>kubectl<\/code> ve AWS CLI, yani AWS komut sat\u0131r\u0131 arac\u0131 bulunan y\u00f6netici terminalinizde \u00e7al\u0131\u015ft\u0131r\u0131n. AWS kimli\u011finiz hedef k\u00fcmeyi ve eklentilerini okuyabilmeli. A\u015fa\u011f\u0131daki \u00f6rnek k\u00fcme ad\u0131 ile b\u00f6lgeyi kendi de\u011ferlerinizle de\u011fi\u015ftirin; ard\u0131ndan AWS&#8217;nin g\u00f6sterdi\u011fi k\u00fcme adresini kubectl ba\u011flant\u0131s\u0131yla kar\u015f\u0131la\u015ft\u0131r\u0131n:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">export CLUSTER=my-eks\nexport AWS_REGION=eu-central-1\naws sts get-caller-identity\naws eks describe-cluster --name &quot;$CLUSTER&quot; --region &quot;$AWS_REGION&quot; --query &#039;cluster.{Status:status,Endpoint:endpoint}&#039;\nkubectl config view --minify -o jsonpath=&#039;{.clusters[0].cluster.server}&#039;\nkubectl get nodes -L kubernetes.io\/os,topology.kubernetes.io\/zone\nkubectl auth can-i create storageclasses.storage.k8s.io\nkubectl auth can-i create persistentvolumeclaims -n pvc-demo\nkubectl auth can-i delete persistentvolumeclaims -n pvc-demo\nkubectl auth can-i list persistentvolumes<\/code><\/pre>\n<p>K\u00fcmenin durumu <code>ACTIVE<\/code>, iki \u00e7\u0131kt\u0131da g\u00f6r\u00fcnen API adresleri ayn\u0131 ve uygun Linux d\u00fc\u011f\u00fcmleri <code>Ready<\/code> olmal\u0131. Yetki kontrolleri de <code>yes<\/code> d\u00f6nmeli. B\u00f6ylece de\u011fi\u015fikli\u011fi do\u011fru k\u00fcmede yapaca\u011f\u0131n\u0131z\u0131 ve listelenen i\u015flemlere izniniz oldu\u011funu g\u00f6r\u00fcrs\u00fcn\u00fcz. Yetki eksikse geni\u015f y\u00f6netici eri\u015fimi istemek yerine ilgili kaynak ve i\u015flem i\u00e7in k\u00fcme y\u00f6neticinizden izin isteyin.<\/p>\n<p>CSI, Kubernetes ile depolama sistemi aras\u0131ndaki s\u00fcr\u00fcc\u00fc aray\u00fcz\u00fcd\u00fcr. \u00d6rnekte AWS EBS CSI eklentisinin ve disk olu\u015fturmak i\u00e7in gereken IAM rol\u00fcn\u00fcn mevcut oldu\u011fu varsay\u0131l\u0131yor. IAM, AWS kaynaklar\u0131na eri\u015fimi belirleyen yetki sistemidir. A\u015fa\u011f\u0131daki komutlarla eklentinin durumunu, rol ba\u011flant\u0131s\u0131n\u0131 ve Kubernetes taraf\u0131ndaki s\u00fcr\u00fcc\u00fc bile\u015fenlerini inceleyin:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">aws eks describe-addon --cluster-name &quot;$CLUSTER&quot; --addon-name aws-ebs-csi-driver --region &quot;$AWS_REGION&quot; --query &#039;addon.{Status:status,Role:serviceAccountRoleArn,PodIdentity:podIdentityAssociations,Health:health.issues}&#039;\naws eks list-pod-identity-associations --cluster-name &quot;$CLUSTER&quot; --namespace kube-system --service-account ebs-csi-controller-sa --region &quot;$AWS_REGION&quot;\nkubectl get csidriver ebs.csi.aws.com\nkubectl -n kube-system get deployment ebs-csi-controller\nkubectl -n kube-system get daemonset ebs-csi-node\nkubectl get csinode -o yaml<\/code><\/pre>\n<p>Eklenti <code>ACTIVE<\/code> olmal\u0131; denetleyici ve d\u00fc\u011f\u00fcm bile\u015fenlerinin haz\u0131r say\u0131lar\u0131 beklenen say\u0131larla e\u015fle\u015fmeli. Hedef d\u00fc\u011f\u00fcmlerin <code>CSINode<\/code> kay\u0131tlar\u0131nda <code>ebs.csi.aws.com<\/code> bulunmas\u0131, s\u00fcr\u00fcc\u00fcn\u00fcn bu d\u00fc\u011f\u00fcmlere kaydoldu\u011funu g\u00f6sterir.<\/p>\n<p>IAM rol\u00fc, servis hesab\u0131 rol\u00fc veya Pod Identity ili\u015fkilendirmesi \u00fczerinden sa\u011flanabilir. Pod Identity, Pod&#8217;lara AWS rol\u00fc atama y\u00f6ntemidir; iki y\u00f6ntemin ayn\u0131 anda tan\u0131ml\u0131 olmas\u0131 gerekmez. Rol\u00fcn g\u00f6r\u00fcnmesi disk olu\u015fturma iznini tek ba\u015f\u0131na kan\u0131tlamaz; bu izin ger\u00e7ek tahsis s\u0131ras\u0131nda s\u0131nan\u0131r. Eklenti eksikse veya haz\u0131r de\u011filse \u00f6nce bu sorunu \u00e7\u00f6z\u00fcn; depolama s\u0131n\u0131f\u0131 olu\u015fturmak s\u00fcr\u00fcc\u00fcy\u00fc kurmaz.<\/p>\n<h3><span id=\"Ornege_ozel_StorageClass_olusturun\">\u00d6rne\u011fe \u00f6zel StorageClass olu\u015fturun<\/span><\/h3>\n<p><code>StorageClass<\/code>, diskin hangi s\u00fcr\u00fcc\u00fc ve ayarlarla olu\u015fturulaca\u011f\u0131n\u0131 belirleyen depolama s\u0131n\u0131f\u0131d\u0131r. \u00d6nce <code>kubectl get storageclass gp3-demo -o yaml<\/code> ile mevcut tan\u0131m\u0131 kontrol edin. S\u0131n\u0131f bulunmuyorsa terminalde a\u015fa\u011f\u0131daki dosyay\u0131 olu\u015fturup uygulay\u0131n. S\u0131n\u0131f zaten varsa alanlar\u0131n\u0131 \u00f6rnekle kar\u015f\u0131la\u015ft\u0131r\u0131n; farkl\u0131 ayarlar\u0131n \u00fczerine yazmay\u0131n. Olu\u015fturma ad\u0131m\u0131n\u0131 atl\u0131yorsan\u0131z sonraki dosyalar\u0131 kaydetmek i\u00e7in \u00e7al\u0131\u015fma dizininizde pvc-demo klas\u00f6r\u00fcn\u00fcn bulundu\u011fundan emin olun.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">mkdir -p .\/pvc-demo\ncat &gt; .\/pvc-demo\/storageclass.yaml &lt;&lt;&#039;EOF&#039;\napiVersion: storage.k8s.io\/v1\nkind: StorageClass\nmetadata:\n  name: gp3-demo\nprovisioner: ebs.csi.aws.com\nparameters:\n  type: gp3\nvolumeBindingMode: WaitForFirstConsumer\nreclaimPolicy: Retain\nEOF\nkubectl apply -f .\/pvc-demo\/storageclass.yaml\nkubectl get storageclass gp3-demo -o yaml<\/code><\/pre>\n<p>Son komutun \u00e7\u0131kt\u0131s\u0131nda s\u00fcr\u00fcc\u00fc ve ayar alanlar\u0131 dosyayla e\u015fle\u015fmeli. <code>WaitForFirstConsumer<\/code>, disk olu\u015fturmay\u0131 diski kullanacak Pod&#8217;un yerle\u015fimi belirlenene kadar erteler. <code>Retain<\/code> ise talep silindi\u011finde diskin otomatik silinmesini \u00f6nler. Bu se\u00e7im diski korur ancak disk olu\u015fturulduktan sonra bulut maliyeti do\u011fabilir; kullan\u0131m bitince elle temizlik gerekir.<\/p>\n<h3><span id=\"Yalniz_bos_ve_eslesmemis_talebi_yeniden_olusturun\">Yaln\u0131z bo\u015f ve e\u015fle\u015fmemi\u015f talebi yeniden olu\u015fturun<\/span><\/h3>\n<p>Bu \u00f6rnekteki yanl\u0131\u015f s\u0131n\u0131f ad\u0131 mevcut PVC \u00fczerinde do\u011frudan de\u011fi\u015ftirilemez. Talebi yeniden olu\u015fturmak gerekir; ancak \u00f6nce mevcut tan\u0131m\u0131 kaydedip talebin herhangi bir disk veya veriyle ili\u015fkili olmad\u0131\u011f\u0131n\u0131 kontrol edin:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">kubectl get pvc app-data -n pvc-demo -o yaml &gt; .\/pvc-demo\/pvc-before.yaml\nkubectl get pvc app-data -n pvc-demo -o jsonpath=&#039;{.status.phase}{&quot;\\n&quot;}{.spec.volumeName}{&quot;\\n&quot;}{.metadata.uid}{&quot;\\n&quot;}&#039;\nkubectl get pv -o custom-columns=&#039;NAME:.metadata.name,NS:.spec.claimRef.namespace,CLAIM:.spec.claimRef.name,UID:.spec.claimRef.uid,DISK:.spec.csi.volumeHandle&#039;\nkubectl describe pvc app-data -n pvc-demo\nPVC_UID=$(kubectl get pvc app-data -n pvc-demo -o jsonpath=&#039;{.metadata.uid}&#039;)\naws ec2 describe-volumes --region &quot;$AWS_REGION&quot; --filters &quot;Name=tag:CSIVolumeName,Values=pvc-$PVC_UID&quot; --query &#039;Volumes[].VolumeId&#039;<\/code><\/pre>\n<p>\u0130lerlemek i\u00e7in durum <code>Pending<\/code>, <code>volumeName<\/code> de\u011feri bo\u015f olmal\u0131. PV listesinde talebin ad\u0131 ve benzersiz kimli\u011fiyle e\u015fle\u015fen kay\u0131t bulunmamal\u0131; <code>Used By<\/code> alan\u0131nda da talebi kullanan bir Pod g\u00f6r\u00fcnmemeli. Bu ko\u015fullar\u0131n tamam\u0131n\u0131 birlikte de\u011ferlendirin.<\/p>\n<p>Son komut, standart s\u00fcr\u00fcc\u00fc etiketleri \u00fczerinden AWS&#8217;de disk arar. Ge\u00e7mi\u015fte tahsis denemesi varsa bo\u015f sonu\u00e7 tek ba\u015f\u0131na disk olu\u015fmad\u0131\u011f\u0131n\u0131 kan\u0131tlamaz. S\u00fcr\u00fcc\u00fc kay\u0131tlar\u0131n\u0131 ve ayn\u0131 AWS hesab\u0131 ile b\u00f6lgedeki disk envanterini de inceleyin; disk bulunursa veya durum belirsiz kal\u0131rsa silme ad\u0131m\u0131na ge\u00e7meyin.<\/p>\n<div class=\"aiw-note aiw-note-warning\">\n<p class=\"aiw-box-title\">Dikkat<\/p>\n<p>Bu yol yaln\u0131z PV, disk ve veri olu\u015fmad\u0131\u011f\u0131 do\u011frulanan hatal\u0131 talep i\u00e7indir. Kaydetti\u011finiz YAML dosyas\u0131 kaynak tan\u0131m\u0131n\u0131 saklar, veriyi yedeklemez. Talep Bound olmu\u015fsa veya veri durumu belirsizse silmeyin; bu i\u015flem veri ta\u015f\u0131ma y\u00f6ntemi de\u011fildir.<\/p>\n<\/div>\n<p>Kontroller uygunsa yeni talebi a\u015fa\u011f\u0131daki dosyaya yaz\u0131n. Talep, az \u00f6nce kontrol etti\u011finiz depolama s\u0131n\u0131f\u0131n\u0131 kullan\u0131r. <code>5Gi<\/code> istenen kapasiteyi, <code>ReadWriteOnce<\/code> tek d\u00fc\u011f\u00fcmden yaz\u0131labilir eri\u015fimi, <code>Filesystem<\/code> ise diskin dosya sistemi olarak kullan\u0131laca\u011f\u0131n\u0131 belirtir:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">cat &gt; .\/pvc-demo\/pvc.yaml &lt;&lt;&#039;EOF&#039;\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: app-data\n  namespace: pvc-demo\nspec:\n  storageClassName: gp3-demo\n  accessModes:\n    - ReadWriteOnce\n  volumeMode: Filesystem\n  resources:\n    requests:\n      storage: 5Gi\nEOF\nkubectl delete pvc app-data -n pvc-demo\nkubectl apply -f .\/pvc-demo\/pvc.yaml\nkubectl describe pvc app-data -n pvc-demo<\/code><\/pre>\n<p>Silme tamamlanm\u0131yorsa i\u015flemi zorlamay\u0131n veya koruma alanlar\u0131n\u0131 kald\u0131rmay\u0131n; yeni talebi uygulamadan \u00f6nce silmenin neden bekledi\u011fini inceleyin. Yeni talebin ayr\u0131nt\u0131lar\u0131nda s\u0131n\u0131f <code>gp3-demo<\/code> g\u00f6r\u00fcnmeli. Hen\u00fcz diski kullanacak Pod olmad\u0131\u011f\u0131 i\u00e7in <code>WaitForFirstConsumer<\/code> nedeniyle Pending kalmas\u0131 beklenir; bu a\u015famada ayn\u0131 durum etiketi art\u0131k s\u0131n\u0131f ad\u0131n\u0131n yanl\u0131\u015f oldu\u011funu g\u00f6stermez.<\/p>\n<p>Geri d\u00f6n\u00fc\u015f gerekirse yeni talebin de yukar\u0131daki disk ve veri bulunmad\u0131\u011f\u0131n\u0131 g\u00f6steren kontrolleri ge\u00e7ti\u011finden emin olun. Kaydetti\u011finiz <code>pvc-before.yaml<\/code> dosyas\u0131n\u0131n bir kopyas\u0131n\u0131 d\u00fczenleyin: \u00fcst d\u00fczeydeki <code>status<\/code> alan\u0131n\u0131; metadata alt\u0131ndaki <code>uid<\/code>, <code>resourceVersion<\/code>, <code>creationTimestamp<\/code>, <code>managedFields<\/code> ile denetleyicinin ekledi\u011fi annotations ve finalizers alanlar\u0131n\u0131 \u00e7\u0131kar\u0131n. Bu d\u00fczenleme yaln\u0131z dosya kopyas\u0131 i\u00e7indir; canl\u0131 kayna\u011f\u0131n koruma alanlar\u0131n\u0131 kald\u0131rmay\u0131n.<\/p>\n<p>Ard\u0131ndan bo\u015f yeni talebi silip temizlenmi\u015f dosyay\u0131 uygulay\u0131n. Bu i\u015flem yaln\u0131z eski talep tan\u0131m\u0131n\u0131 geri getirir; <code>gp3-typo<\/code> hatas\u0131n\u0131 \u00e7\u00f6zmez. Normal ak\u0131\u015fta s\u0131radaki ad\u0131m, d\u00fczeltilmi\u015f talebi kullanacak Pod&#8217;u olu\u015fturmakt\u0131r.<\/p>\n<h2><span id=\"Tuketici_Pod8217u_olusturun_ve_diskin_kullanilmasini_dogrulayin\">T\u00fcketici Pod&#8217;u olu\u015fturun ve diskin kullan\u0131lmas\u0131n\u0131 do\u011frulay\u0131n<\/span><\/h2>\n<p><code>app-data<\/code> art\u0131k do\u011fru s\u0131n\u0131f\u0131 kullan\u0131yorsa bu talebi kullanacak Pod&#8217;u olu\u015fturabilirsiniz. <code>WaitForFirstConsumer<\/code> ayar\u0131nda zamanlay\u0131c\u0131, yani Pod&#8217;un \u00e7al\u0131\u015faca\u011f\u0131 d\u00fc\u011f\u00fcm\u00fc se\u00e7en bile\u015fen, \u00f6nce uygun yerle\u015fimi belirler. CSI s\u00fcr\u00fcc\u00fcs\u00fc de diski bu yerle\u015fime uygun olu\u015fturur. B\u00f6ylece disk, Pod&#8217;un \u00e7al\u0131\u015famayaca\u011f\u0131 bir eri\u015filebilirlik alan\u0131nda \u00f6nceden olu\u015fturulmaz.<\/p>\n<figure class=\"aiw-figure\" data-aiw-visual-id=\"5905\" data-aiw-visual-key=\"afa4ec79a53fec5f52c69def7ec7621949fe0a603fba2539448403b1a8ea6261\"><img decoding=\"async\" src=\"https:\/\/www.dchost.com\/blog\/wp-content\/uploads\/2026\/10\/dchost-flow-tr-3075a63ebd1845ebceea.png\" alt=\"T\u00fcketici bekleyen depolama talebinden d\u00fc\u011f\u00fcm ve b\u00f6lge se\u00e7imine, ard\u0131ndan disk tahsisi ve dosya kontrol\u00fcne uzanan ak\u0131\u015f.\" width=\"840\" height=\"1336\" loading=\"lazy\" class=\"aiw-article-visual wp-image-5905\" srcset=\"https:\/\/www.dchost.com\/blog\/wp-content\/uploads\/2026\/10\/dchost-flow-tr-3075a63ebd1845ebceea.png 840w, https:\/\/www.dchost.com\/blog\/wp-content\/uploads\/2026\/10\/dchost-flow-tr-3075a63ebd1845ebceea-189x300.png 189w, https:\/\/www.dchost.com\/blog\/wp-content\/uploads\/2026\/10\/dchost-flow-tr-3075a63ebd1845ebceea-644x1024.png 644w, https:\/\/www.dchost.com\/blog\/wp-content\/uploads\/2026\/10\/dchost-flow-tr-3075a63ebd1845ebceea-768x1221.png 768w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><figcaption>Ak\u0131\u015f \u015femas\u0131: \u015eema, \u00f6rnek ortamda t\u00fcketici Pod\u2019un disk tahsisini nas\u0131l ba\u015flatt\u0131\u011f\u0131n\u0131 ve dosya kontrol\u00fcn\u00fcn nerede yap\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6sterir; yap\u0131lm\u0131\u015f bir test sonucu de\u011fildir.<\/figcaption><\/figure>\n<h3><span id=\"Talebi_kullanan_Pod8217u_baslatin\">Talebi kullanan Pod&#8217;u ba\u015flat\u0131n<\/span><\/h3>\n<p>Y\u00f6netici terminalinizde a\u015fa\u011f\u0131daki dosyay\u0131 olu\u015fturup uygulay\u0131n. Pod, PVC ile ayn\u0131 <code>pvc-demo<\/code> ad alan\u0131nda \u00e7al\u0131\u015f\u0131r; <code>claimName: app-data<\/code> kullan\u0131lacak talebi se\u00e7er, <code>mountPath: \/data<\/code> ise diskin dosya sistemini kapsay\u0131c\u0131 i\u00e7inde bu yoldan eri\u015filebilir yapar. \u00d6rnekte kullan\u0131lan BusyBox imaj\u0131n\u0131n indirilebilmesi i\u00e7in d\u00fc\u011f\u00fcmlerin ilgili imaj deposuna eri\u015fimi olmal\u0131. Son komut, talebin durumundaki de\u011fi\u015fiklikleri ekranda izlemenizi sa\u011flar.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">cat &gt; .\/pvc-demo\/pod.yaml &lt;&lt;&#039;EOF&#039;\napiVersion: v1\nkind: Pod\nmetadata:\n  name: disk-check\n  namespace: pvc-demo\nspec:\n  nodeSelector:\n    kubernetes.io\/os: linux\n  containers:\n    - name: check\n      image: busybox:1.36\n      command: [&quot;sh&quot;, &quot;-c&quot;, &quot;sleep 86400&quot;]\n      volumeMounts:\n        - name: data\n          mountPath: \/data\n  volumes:\n    - name: data\n      persistentVolumeClaim:\n        claimName: app-data\nEOF\nkubectl apply -f .\/pvc-demo\/pod.yaml\nkubectl get pvc app-data -n pvc-demo -w<\/code><\/pre>\n<p>Beklenen ge\u00e7i\u015f <code>Pending<\/code> durumundan <code>Bound<\/code> durumunad\u0131r. \u0130zlemeyi <code>Ctrl+C<\/code> ile kapatmak kaynaklar\u0131 silmez. Pod tan\u0131m\u0131na <code>nodeName<\/code> eklemeyin: do\u011frudan d\u00fc\u011f\u00fcm atamak zamanlay\u0131c\u0131y\u0131 atlar ve bu bekleme modunda talebin Pending kalmas\u0131na yol a\u00e7abilir.<\/p>\n<p>AWS b\u00f6lgesi ile eri\u015filebilirlik alan\u0131 ayn\u0131 \u015fey de\u011fildir: <code>eu-central-1<\/code> bir b\u00f6lge, <code>eu-central-1a<\/code> onun i\u00e7indeki bir eri\u015filebilirlik alan\u0131d\u0131r. EBS diski, onu kullanacak EC2 d\u00fc\u011f\u00fcm\u00fcyle ayn\u0131 eri\u015filebilirlik alan\u0131nda olmal\u0131d\u0131r. \u00d6rnekte alan\u0131 elle sabitlemiyoruz; zamanlay\u0131c\u0131 uygun Linux d\u00fc\u011f\u00fcm\u00fcn\u00fc se\u00e7erken depolaman\u0131n hangi alanda kullan\u0131labilece\u011fini de dikkate al\u0131r.<\/p>\n<h3><span id=\"Eslesmeyi_ve_dosya_erisimini_dogrulayin\">E\u015fle\u015fmeyi ve dosya eri\u015fimini do\u011frulay\u0131n<\/span><\/h3>\n<p>\u0130zlemeyi kapatt\u0131ktan sonra ayn\u0131 terminalde a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n. \u0130lk komut Pod&#8217;un haz\u0131r olmas\u0131n\u0131 bekler; di\u011ferleri talebin durumunu ve Pod&#8217;un hangi d\u00fc\u011f\u00fcme yerle\u015fti\u011fini g\u00f6sterir. Buradaki <code>180s<\/code> yaln\u0131z komutun bekleme s\u0131n\u0131r\u0131d\u0131r; disk olu\u015fturma s\u00fcresi garantisi de\u011fildir.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">kubectl wait -n pvc-demo --for=condition=Ready pod\/disk-check --timeout=180s\nkubectl get pvc app-data -n pvc-demo\nkubectl get pod disk-check -n pvc-demo -o wide\nkubectl get nodes -L topology.kubernetes.io\/zone<\/code><\/pre>\n<p>PVC <code>Bound<\/code>, Pod <code>Running<\/code> ve haz\u0131r kapsay\u0131c\u0131 say\u0131s\u0131 <code>1\/1<\/code> olmal\u0131. Pod \u00e7\u0131kt\u0131s\u0131ndaki <code>NODE<\/code> s\u00fctununda g\u00f6r\u00fcnen d\u00fc\u011f\u00fcm\u00fc, d\u00fc\u011f\u00fcm listesinde bulun; alan etiketi Pod&#8217;un hangi eri\u015filebilirlik alan\u0131nda \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir. Bekleme zaman a\u015f\u0131m\u0131na u\u011frarsa kaynaklar\u0131 yeniden olu\u015fturmak yerine a\u015fa\u011f\u0131daki \u00e7\u0131kt\u0131lardaki olay kay\u0131tlar\u0131na bakarak i\u015flemin hangi a\u015famada kald\u0131\u011f\u0131n\u0131 belirleyin:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">kubectl describe pvc app-data -n pvc-demo\nkubectl describe pod disk-check -n pvc-demo<\/code><\/pre>\n<p>Pod haz\u0131rsa dosya eri\u015fimini s\u0131namak i\u00e7in terminalinizden a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n. Komut, kapsay\u0131c\u0131n\u0131n diske ba\u011fl\u0131 <code>\/data<\/code> dizinine bir dosya yazar ve yazma ba\u015far\u0131l\u0131ysa i\u00e7eri\u011fini okur. <code>set -C<\/code>, ayn\u0131 adl\u0131 dosya varsa \u00fczerine yaz\u0131lmas\u0131n\u0131 engeller.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">kubectl exec -n pvc-demo disk-check -- sh -c &#039;set -C; printf &quot;disk kontrolu tamam\\n&quot; &gt; \/data\/check.txt &amp;&amp; cat \/data\/check.txt&#039;<\/code><\/pre>\n<p>Beklenen \u00e7\u0131kt\u0131 <code>disk kontrolu tamam<\/code> metnidir. Dosya zaten varsa <code>kubectl exec -n pvc-demo disk-check -- cat \/data\/check.txt<\/code> ile i\u00e7eri\u011fini okuyun; bu durumda yeni bir yazma i\u015flemi yap\u0131lmad\u0131\u011f\u0131n\u0131 dikkate al\u0131n. Ba\u015far\u0131l\u0131 yazma ve okuma, PVC e\u015fle\u015fmesinin yan\u0131nda ba\u011fl\u0131 dosya sisteminin kullan\u0131labildi\u011fini de g\u00f6sterir. Ancak bu kontrol, Pod yeniden olu\u015fturulduktan sonra verinin korunmas\u0131n\u0131 veya yedekten d\u00f6n\u00fc\u015f\u00fc s\u0131namaz.<\/p>\n<h2><span id=\"Pending_suruyorsa_CSI_kapasite_ve_erisim_modunu_inceleyin\">Pending s\u00fcr\u00fcyorsa CSI, kapasite ve eri\u015fim modunu inceleyin<\/span><\/h2>\n<p>Kubernetes PVC Pending durumu s\u00fcr\u00fcyorsa b\u00fct\u00fcn ayarlar\u0131 de\u011fi\u015ftirmek yerine olay mesaj\u0131n\u0131n i\u015faret etti\u011fi nedeni inceleyin. A\u015fa\u011f\u0131daki komutlar\u0131 ayn\u0131 y\u00f6netici terminalinde \u00e7al\u0131\u015ft\u0131r\u0131n. Her d\u00fczeltmeden sonra <code>kubectl describe pvc app-data -n pvc-demo<\/code> \u00e7\u0131kt\u0131s\u0131ndaki yeni olaylara bak\u0131n; eski hata sat\u0131rlar\u0131 hemen kaybolmayabilir.<\/p>\n<h3><span id=\"CSI_kayitlarinda_yetki_hatasini_ayirin\">CSI kay\u0131tlar\u0131nda yetki hatas\u0131n\u0131 ay\u0131r\u0131n<\/span><\/h3>\n<p><code>ExternalProvisioning<\/code> tek ba\u015f\u0131na yetki hatas\u0131 de\u011fildir; disk sa\u011flayan bile\u015fenin beklendi\u011fini belirtir. <code>ProvisioningFailed<\/code> varsa CSI denetleyicisinin disk i\u015flemlerini ve tahsis s\u00fcrecini y\u00f6neten bile\u015fenin kay\u0131tlar\u0131n\u0131 okuyun. A\u015fa\u011f\u0131daki komutlar son 15 dakikan\u0131n kay\u0131tlar\u0131n\u0131 getirir:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">kubectl logs -n kube-system deployment\/ebs-csi-controller -c ebs-plugin --since=15m\nkubectl logs -n kube-system deployment\/ebs-csi-controller -c csi-provisioner --since=15m<\/code><\/pre>\n<p>Bu komutlar birden fazla denetleyici Pod&#8217;unun t\u00fcm kay\u0131tlar\u0131n\u0131 toplamaz; ba\u015fka denetleyici Pod&#8217;lar\u0131 varsa onlar\u0131n kay\u0131tlar\u0131n\u0131 da inceleyin. <code>UnauthorizedOperation<\/code> veya <code>AccessDenied<\/code> g\u00f6rd\u00fc\u011f\u00fcn\u00fczde, mesajdaki reddedilen i\u015flem ve kaynak hangi iznin eksik oldu\u011funu anlaman\u0131z\u0131 sa\u011flar.<\/p>\n<p>AWS konsolunda <strong>IAM &#8211; Roles<\/strong> (roller) b\u00f6l\u00fcm\u00fcnden daha \u00f6nce do\u011frulad\u0131\u011f\u0131n\u0131z CSI rol\u00fcn\u00fc a\u00e7\u0131n. Rol\u00fcn izin politikas\u0131n\u0131n bir kopyas\u0131n\u0131 saklay\u0131n, ard\u0131ndan yaln\u0131z hata mesaj\u0131ndaki i\u015flem ve kaynak i\u00e7in gereken izni d\u00fczeltin. Mesajda AWS&#8217;nin anahtar y\u00f6netimi hizmeti KMS&#8217;ye ait bir \u015fifreleme anahtar\u0131 ge\u00e7iyorsa anahtar politikas\u0131n\u0131 da kontrol edin. Y\u00f6netici kullan\u0131c\u0131n\u0131za izin eklemek CSI rol\u00fcn\u00fc d\u00fczeltmez. Yeni tahsis denemesinde ayn\u0131 reddin tekrarlanmad\u0131\u011f\u0131n\u0131 kontrol edin; de\u011fi\u015fikli\u011fi geri almak gerekirse saklad\u0131\u011f\u0131n\u0131z politikay\u0131 kullan\u0131n.<\/p>\n<h3><span id=\"Kota_ile_gercek_kapasite_sorununu_ayirin\">Kota ile ger\u00e7ek kapasite sorununu ay\u0131r\u0131n<\/span><\/h3>\n<p><code>exceeded quota<\/code> Kubernetes kotas\u0131na, <code>VolumeLimitExceeded<\/code> ise AWS taraf\u0131ndaki s\u0131n\u0131ra i\u015faret edebilir. Kota, kullan\u0131m\u0131n\u0131za izin verilen \u00fcst s\u0131n\u0131rd\u0131r; sa\u011flay\u0131c\u0131n\u0131n o anda disk olu\u015fturabilecek kapasiteye sahip olmas\u0131yla ayn\u0131 \u015fey de\u011fildir. \u00d6nce namespace kotalar\u0131ndaki kullan\u0131lan ve izin verilen de\u011ferleri kar\u015f\u0131la\u015ft\u0131r\u0131n:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">kubectl describe resourcequota -n pvc-demo<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131daki Used kullan\u0131lan miktar\u0131, Hard ise izin verilen s\u0131n\u0131r\u0131 g\u00f6sterir. Kubernetes kotas\u0131 \u00e7o\u011funlukla talebin olu\u015fturulmas\u0131n\u0131 veya b\u00fcy\u00fct\u00fclmesini reddeder; bu nedenle mevcut bir Pending talebi tek ba\u015f\u0131na a\u00e7\u0131klamaz. AWS s\u0131n\u0131r\u0131 i\u00e7in ayn\u0131 b\u00f6lgeyi se\u00e7erek <strong>Service Quotas<\/strong> (hizmet kotalar\u0131) ekran\u0131n\u0131 a\u00e7\u0131n ve Amazon EBS kotalar\u0131n\u0131 inceleyin. Hata mesaj\u0131nda belirtilen s\u0131n\u0131ra ula\u015f\u0131ld\u0131ysa ilgili kota i\u00e7in art\u0131\u015f isteyin; disk silerek yer a\u00e7may\u0131 ilk \u00e7\u00f6z\u00fcm yapmay\u0131n.<\/p>\n<p><code>InsufficientCapacity<\/code> gibi sa\u011flay\u0131c\u0131 kapasite hatalar\u0131nda kota art\u0131\u015f\u0131 \u00e7\u00f6z\u00fcm olmayabilir. Mesajdaki eri\u015filebilirlik alan\u0131n\u0131 kontrol edin; hata ge\u00e7iciyse s\u00fcr\u00fcc\u00fcn\u00fcn sonraki tahsis denemelerini izleyin. Ba\u015fka alana ge\u00e7i\u015fi ancak Pod&#8217;un yerle\u015fim ko\u015fullar\u0131 ve verinin konumu buna uygunsa de\u011ferlendirin. D\u00fczeltmenin i\u015fe yarad\u0131\u011f\u0131n\u0131 yeni tahsis olaylar\u0131ndan ve PVC&#8217;nin <code>Bound<\/code> olmas\u0131ndan anlayabilirsiniz.<\/p>\n<h3><span id=\"Erisim_modu_ve_statik_PV_eslesmesini_kontrol_edin\">Eri\u015fim modu ve statik PV e\u015fle\u015fmesini kontrol edin<\/span><\/h3>\n<p><code>unsupported access mode<\/code> veya uygun disk bulunamad\u0131\u011f\u0131n\u0131 belirten olaylarda talebi ve mevcut kal\u0131c\u0131 disk kay\u0131tlar\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131n. Burada ama\u00e7, talebin istedi\u011fi eri\u015fim bi\u00e7imini ve kapasiteyi depolaman\u0131n kar\u015f\u0131lay\u0131p kar\u015f\u0131lamad\u0131\u011f\u0131n\u0131 bulmakt\u0131r:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">kubectl get pvc app-data -n pvc-demo -o yaml\nkubectl get pv -o yaml<\/code><\/pre>\n<p>\u00d6rnekteki gp3 diski <code>ReadWriteMany<\/code>, yani birden fazla d\u00fc\u011f\u00fcmden yazma talebini kar\u015f\u0131lamaz. Bu \u00f6rne\u011fin eri\u015fim modu <code>ReadWriteOnce<\/code> olmal\u0131d\u0131r; bu tek Pod de\u011fil, tek d\u00fc\u011f\u00fcmden yaz\u0131labilir eri\u015fim anlam\u0131na gelir. Yanl\u0131\u015f talebi yaln\u0131z \u00f6nceki b\u00f6l\u00fcmdeki kontrollerle PV, disk ve veri olu\u015fmad\u0131\u011f\u0131n\u0131 do\u011frulad\u0131ysan\u0131z yeniden olu\u015fturun. Uygulaman\u0131z ger\u00e7ekten birden fazla d\u00fc\u011f\u00fcmden payla\u015f\u0131ml\u0131 eri\u015fim istiyorsa talebi daraltmak yerine bu ihtiyac\u0131 kar\u015f\u0131layan depolama se\u00e7in.<\/p>\n<p>Statik, yani \u00f6nceden olu\u015fturulmu\u015f PV kullan\u0131yorsan\u0131z bu \u00f6rnekte kapasite en az <code>5Gi<\/code> olmal\u0131; s\u0131n\u0131f ve <code>volumeMode<\/code> dosya sistemi ya da blok cihaz kullan\u0131m bi\u00e7imiyle e\u015fle\u015fmelidir. PV&#8217;nin eri\u015fim modlar\u0131 da talebi kar\u015f\u0131lamal\u0131d\u0131r. Ayr\u0131ca <code>selector<\/code> etiket se\u00e7imini, <code>volumeName<\/code> belirli bir PV&#8217;ye y\u00f6nlendirmeyi, <code>claimRef<\/code> ise PV&#8217;nin hangi talebe ayr\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<p>Ba\u015fka talebe ayr\u0131lm\u0131\u015f veya <code>Released<\/code> durumundaki PV otomatik olarak yeniden kullan\u0131ma haz\u0131r say\u0131lmaz; \u00fczerinde eski veri bulunabilir. Verinin hangi uygulamaya ait oldu\u011fu ve yeniden kullan\u0131m\u0131n g\u00fcvenli oldu\u011fu do\u011frulanmadan <code>claimRef<\/code> silmeyin. Uygun ve ba\u015fka talebe ayr\u0131lmam\u0131\u015f PV ile e\u015fle\u015fme sa\u011fland\u0131\u011f\u0131nda PVC&#8217;nin <code>Bound<\/code> durumuna ge\u00e7ti\u011fini kontrol edin.<\/p>\n<h3><span id=\"Topoloji_engelini_Pod_olaylarindan_bulun\">Topoloji engelini Pod olaylar\u0131ndan bulun<\/span><\/h3>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">kubectl describe pod disk-check -n pvc-demo\nkubectl get storageclass gp3-demo -o yaml\nkubectl get nodes -L topology.kubernetes.io\/zone<\/code><\/pre>\n<p>Bu \u00e7\u0131kt\u0131lar Pod&#8217;un neden yerle\u015femedi\u011fini, depolama s\u0131n\u0131f\u0131n\u0131n yerle\u015fim s\u0131n\u0131rlar\u0131n\u0131 ve d\u00fc\u011f\u00fcmlerin eri\u015filebilirlik alanlar\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131rman\u0131z\u0131 sa\u011flar. <code>FailedScheduling<\/code> genel bir yerle\u015fim hatas\u0131d\u0131r; mesajda <code>volume node affinity conflict<\/code> de varsa Pod i\u00e7in uygun d\u00fc\u011f\u00fcmlerle diskin kullan\u0131labildi\u011fi d\u00fc\u011f\u00fcmler uyu\u015fmuyor olabilir.<\/p>\n<p>Pod&#8217;un <code>nodeSelector<\/code> etiket se\u00e7imini ve <code>affinity<\/code> yerle\u015fim ko\u015fullar\u0131n\u0131, s\u0131n\u0131f\u0131n <code>allowedTopologies<\/code> izin verilen depolama konumlar\u0131yla kar\u015f\u0131la\u015ft\u0131r\u0131n. E\u015fle\u015fmi\u015f bir PV varsa onun <code>nodeAffinity<\/code> alan\u0131ndaki d\u00fc\u011f\u00fcm ko\u015fullar\u0131n\u0131 da inceleyin. B\u00f6ylece engelin Pod k\u0131s\u0131t\u0131ndan m\u0131, s\u0131n\u0131ftan m\u0131 yoksa mevcut diskin konumundan m\u0131 kaynakland\u0131\u011f\u0131n\u0131 ay\u0131rabilirsiniz.<\/p>\n<p>Yaln\u0131z yanl\u0131\u015f oldu\u011fu do\u011frulanan Pod k\u0131s\u0131t\u0131n\u0131 d\u00fczeltin. \u00d6rnek Pod i\u00e7in \u00f6nce <code>pod.yaml<\/code> dosyas\u0131n\u0131n kopyas\u0131n\u0131 saklay\u0131n; dosyadaki hatal\u0131 yerle\u015fim ko\u015fulunu d\u00fczenleyin. Yazma i\u015flemleri varsa g\u00fcvenli bi\u00e7imde durdurduktan sonra yaln\u0131z <code>disk-check<\/code> Pod&#8217;unu silip d\u00fczenlenmi\u015f dosyay\u0131 yeniden uygulay\u0131n; PVC&#8217;yi silmeyin. Geri d\u00f6n\u00fc\u015f gerekirse ayn\u0131 i\u015flemi saklad\u0131\u011f\u0131n\u0131z Pod tan\u0131m\u0131yla yapabilirsiniz.<\/p>\n<p>Diskin eri\u015filebilirlik alan\u0131nda uygun d\u00fc\u011f\u00fcm yoksa o alanda d\u00fc\u011f\u00fcm kapasitesi sa\u011flay\u0131n. D\u00fc\u011f\u00fcm\u00fcn alan etiketini de\u011fi\u015ftirmek diski veya d\u00fc\u011f\u00fcm\u00fc ta\u015f\u0131maz ve sorunu \u00e7\u00f6zmez. Son kontrolde Pod&#8217;a bir d\u00fc\u011f\u00fcm atanm\u0131\u015f olmal\u0131 ve yeni zamanlama hatas\u0131 olu\u015fmamal\u0131d\u0131r; ard\u0131ndan \u00f6nceki b\u00f6l\u00fcmdeki dosya eri\u015fimi kontrol\u00fcne d\u00f6nebilirsiniz.<\/p>\n<h2><span id=\"Sik_Sorulan_Sorular\">S\u0131k Sorulan Sorular<\/span><\/h2>\n<h3><span id=\"PVC_baska_bir_namespace8217ten_kullanilabilir_mi\">PVC ba\u015fka bir namespace&#8217;ten kullan\u0131labilir mi?<\/span><\/h3>\n<p>Hay\u0131r. Pod, yaln\u0131z kendi namespace&#8217;i, yani ad alan\u0131 i\u00e7indeki PVC&#8217;yi do\u011frudan kullanabilir. \u00d6rnekte <code>disk-check<\/code> Pod&#8217;u ve <code>app-data<\/code> talebi bu nedenle <code>pvc-demo<\/code> i\u00e7inde bulunur. Ba\u015fka namespace&#8217;te ayn\u0131 adla PVC olu\u015fturman\u0131z mevcut diske eri\u015fim sa\u011flamaz; ayr\u0131 bir depolama talebi olu\u015fturur. PV k\u00fcme genelinde tan\u0131mlansa da ayn\u0131 anda yaln\u0131z bir PVC ile e\u015fle\u015fir.<\/p>\n<p>Uygulamay\u0131 ba\u015fka namespace&#8217;e ta\u015f\u0131yacaksan\u0131z hedefte ayr\u0131 depolama olu\u015fturup veriyi kontroll\u00fc bi\u00e7imde aktarmay\u0131 planlay\u0131n. Ayn\u0131 EBS diskini iki ayr\u0131 PV kayd\u0131yla payla\u015fmaya \u00e7al\u0131\u015fmak g\u00fcvenli bir k\u0131sayol de\u011fildir.<\/p>\n<h3><span id=\"StorageClass_degisikligi_mevcut_diski_tasir_mi\">StorageClass de\u011fi\u015fikli\u011fi mevcut diski ta\u015f\u0131r m\u0131?<\/span><\/h3>\n<p>Hay\u0131r. StorageClass, yani depolama s\u0131n\u0131f\u0131, diskin nas\u0131l sa\u011flanaca\u011f\u0131n\u0131 tan\u0131mlar; mevcut veriyi ba\u015fka diske veya eri\u015filebilirlik alan\u0131na ta\u015f\u0131maz. Ba\u011flanm\u0131\u015f bir PVC&#8217;nin <code>storageClassName<\/code> alan\u0131n\u0131 normal bir g\u00fcncellemeyle de\u011fi\u015ftiremezsiniz. Varsay\u0131lan s\u0131n\u0131f\u0131 de\u011fi\u015ftirmeniz de s\u0131n\u0131f\u0131 zaten belirlenmi\u015f mevcut talepleri d\u00f6n\u00fc\u015ft\u00fcrmez.<\/p>\n<p>Farkl\u0131 s\u0131n\u0131fa ge\u00e7meniz gerekiyorsa hedef s\u0131n\u0131f\u0131 kullanan yeni bir PVC olu\u015fturun. Uygulamaya uygun yedekleme ve geri y\u00fckleme ya da veri kopyalama y\u00f6ntemiyle aktar\u0131m yap\u0131n. Son veri aktar\u0131m\u0131 s\u0131ras\u0131nda uygulaman\u0131n yazmalar\u0131n\u0131 durdurun veya uygulaman\u0131z\u0131n destekledi\u011fi bir e\u015fitleme y\u00f6ntemi kullan\u0131n. Hedefte verinin eksiksiz ve okunabilir oldu\u011funu kontrol ettikten sonra uygulamay\u0131 yeni talebe y\u00f6nlendirin. Geri d\u00f6n\u00fc\u015f i\u00e7in eski diski, yeni depolamayla uygulaman\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulayana kadar koruyun.<\/p>\n<h3><span id=\"Pod_silinince_diskteki_veri_kalir_mi\">Pod silinince diskteki veri kal\u0131r m\u0131?<\/span><\/h3>\n<p>Bu \u00f6rnekte evet: yaln\u0131z <code>disk-check<\/code> Pod&#8217;unu silmeniz, ayr\u0131 olu\u015fturdu\u011funuz <code>app-data<\/code> PVC&#8217;sini ve EBS diskini silmez. Yeniden olu\u015fturulan Pod ayn\u0131 PVC&#8217;yi <code>\/data<\/code> yoluna ba\u011flarsa diske yaz\u0131lm\u0131\u015f dosyalara eri\u015febilir. Kapsay\u0131c\u0131n\u0131n bu yol d\u0131\u015f\u0131ndaki ge\u00e7ici dosyalar\u0131 i\u00e7in ayn\u0131 g\u00fcvence yoktur; hen\u00fcz diske aktar\u0131lmam\u0131\u015f, bellekte bekleyen yazmalar da kaybolabilir.<\/p>\n<p>PVC&#8217;yi silmek farkl\u0131 bir i\u015flemdir. \u00d6rnekteki <code>Retain<\/code> politikas\u0131 diski korur ancak eski veriyi yeni bir talebe otomatik olarak ba\u011flamaz. <code>Delete<\/code> politikas\u0131nda ise PVC silindikten sonra disk de silinebilir. Pod silerek kal\u0131c\u0131l\u0131\u011f\u0131 s\u0131nayacaksan\u0131z \u00f6nce uygulaman\u0131n yazmalar\u0131n\u0131 g\u00fcvenli bi\u00e7imde durdurun ve bekleyen yazmalar\u0131n diske aktar\u0131lmas\u0131n\u0131 sa\u011flay\u0131n.<\/p>\n<h3><span id=\"Uygulama_yedegi_icin_disk_anlik_goruntusu_yeterli_mi\">Uygulama yede\u011fi i\u00e7in disk anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fc yeterli mi?<\/span><\/h3>\n<p>Her zaman de\u011fil. Disk anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fc, depolaman\u0131n belirli bir andaki durumunu saklar; \u00e7al\u0131\u015fan veritaban\u0131n\u0131n belle\u011finde bekleyen verileri kapsamaz ve birden fazla diske yay\u0131lan i\u015flemlerin tutarl\u0131l\u0131\u011f\u0131n\u0131 tek ba\u015f\u0131na garanti etmez. Geri y\u00fcklemede veritaban\u0131n\u0131n kurtarma i\u015flemi yapmas\u0131 gerekebilir.<\/p>\n<p>Veritaban\u0131n\u0131z\u0131n destekledi\u011fi yedekleme y\u00f6ntemini kullan\u0131n veya anl\u0131k g\u00f6r\u00fcnt\u00fc \u00f6ncesinde yazmalar\u0131 uygulaman\u0131n destekledi\u011fi bi\u00e7imde duraklat\u0131p bekleyen verilerin diske aktar\u0131lmas\u0131n\u0131 sa\u011flay\u0131n. Ayr\u0131ca Kubernetes manifestlerini, yani kaynak tan\u0131m dosyalar\u0131n\u0131, gerekli ayarlar\u0131 ve gizli bilgileri g\u00fcvenli bi\u00e7imde yedekleyin. Yede\u011fi ayr\u0131 bir ortamda geri y\u00fckleyin; uygulaman\u0131n a\u00e7\u0131ld\u0131\u011f\u0131n\u0131 ve bekledi\u011finiz verileri okuyabildi\u011fini kontrol edin.<\/p>\n<h2><span id=\"Kapanis_kontrol_listesi_Depolamayi_uygulamaya_teslim_edin\">Kapan\u0131\u015f kontrol listesi: Depolamay\u0131 uygulamaya teslim edin<\/span><\/h2>\n<p>Depolamay\u0131 uygulamaya teslim etmeden \u00f6nce yaln\u0131z PVC&#8217;nin e\u015fle\u015fti\u011fini de\u011fil, Pod&#8217;un diski kullanabildi\u011fini de kontrol edin. Ayn\u0131 y\u00f6netici terminalinde \u015fu listeyi tamamlay\u0131n:<\/p>\n<ul>\n<li><strong>PVC\/PV e\u015fle\u015fmesi:<\/strong> <code>kubectl get pvc app-data -n pvc-demo -o wide<\/code> \u00e7\u0131kt\u0131s\u0131nda durum <code>Bound<\/code>, kapasite <code>5Gi<\/code>, s\u0131n\u0131f <code>gp3-demo<\/code> olmal\u0131. <code>VOLUME<\/code> s\u00fctununda g\u00f6r\u00fcnen PV&#8217;yi PV listesinde bulun; bu kayd\u0131n <code>CLAIM<\/code> alan\u0131 da <code>pvc-demo\/app-data<\/code> talebini g\u00f6stermeli.<\/li>\n<li><strong>Pod yerle\u015fimi:<\/strong> <code>kubectl get pod disk-check -n pvc-demo -o wide<\/code> \u00e7\u0131kt\u0131s\u0131nda durumun <code>Running<\/code> oldu\u011funu ve bir d\u00fc\u011f\u00fcm atand\u0131\u011f\u0131n\u0131 kontrol edin. Daha \u00f6nce topoloji hatas\u0131 g\u00f6rd\u00fcyseniz d\u00fc\u011f\u00fcm\u00fcn eri\u015filebilirlik alan\u0131yla PV&#8217;nin yerle\u015fim ko\u015fullar\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131n; bunlar birbiriyle uyumlu olmal\u0131.<\/li>\n<li><strong>Yazma ve okuma:<\/strong> \u00d6nceki dosya kontrol\u00fcnde <code>\/data\/check.txt<\/code> i\u00e7ine yazd\u0131\u011f\u0131n\u0131z de\u011feri <code>kubectl exec -n pvc-demo disk-check -- cat \/data\/check.txt<\/code> ile yeniden okuyun. Beklenen i\u00e7erik g\u00f6r\u00fcnmeli; yaln\u0131z Pod&#8217;un \u00e7al\u0131\u015fmas\u0131 yazma yetkisini kan\u0131tlamaz.<\/li>\n<li><strong>Yeni olaylar:<\/strong> <code>kubectl describe pvc app-data -n pvc-demo<\/code> ve <code>kubectl describe pod disk-check -n pvc-demo<\/code> \u00e7\u0131kt\u0131lar\u0131ndaki olaylar\u0131n zaman\u0131na bak\u0131n. Eski uyar\u0131lar\u0131n listede kalmas\u0131ndan \u00e7ok, d\u00fczeltmeden sonra ayn\u0131 hatan\u0131n tekrarlan\u0131p tekrarlanmad\u0131\u011f\u0131na odaklan\u0131n.<\/li>\n<\/ul>\n<p>Talep h\u00e2l\u00e2 <code>Pending<\/code> ise depolama s\u0131n\u0131f\u0131, t\u00fcketici bekleme veya CSI s\u00fcr\u00fcc\u00fcs\u00fcn\u00fcn disk tahsis i\u015flemiyle ilgili kontrollere d\u00f6n\u00fcn. Talep <code>Bound<\/code> oldu\u011fu h\u00e2lde Pod ba\u015flayam\u0131yorsa Pod olaylar\u0131ndaki zamanlama, disk takma ve dosya sistemi ba\u011flama hatalar\u0131n\u0131 izleyin.<\/p>\n<p>Pod \u00e7al\u0131\u015f\u0131yor ama yazam\u0131yorsa \u00f6nce ba\u011flama yolunu, salt okunur ayar\u0131n\u0131 ve dosya izinlerini inceleyin; PVC&#8217;yi yeniden olu\u015fturmay\u0131n. \u00c7al\u0131\u015fan depolama ak\u0131\u015f\u0131ndaki sorunlar\u0131 takip etmek i\u00e7in <a href=\"https:\/\/www.dchost.com\/blog\/kubernetes-monitoring-kurulumu\/\">Kubernetes izleme kurulumu<\/a> ile devam edebilirsiniz.<\/p>\n<h3><span id=\"Deneme_kaynaklarini_veriyi_koruyarak_temizleyin\">Deneme kaynaklar\u0131n\u0131 veriyi koruyarak temizleyin<\/span><\/h3>\n<p>Deneme kaynaklar\u0131n\u0131 kald\u0131racaksan\u0131z \u00f6nce diskin kimli\u011fini ve PV \u00fczerinde ge\u00e7erli olan silme politikas\u0131n\u0131 kaydedin. A\u015fa\u011f\u0131daki komutlar\u0131 yaln\u0131z PVC <code>Bound<\/code> olduktan sonra y\u00f6netici terminalinde \u00e7al\u0131\u015ft\u0131r\u0131n; PV ad\u0131 bo\u015fsa silmeye ge\u00e7meyin:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">PV=$(kubectl get pvc app-data -n pvc-demo -o jsonpath=&#039;{.spec.volumeName}&#039;)\nkubectl get pv &quot;$PV&quot; -o yaml &gt; .\/pvc-demo\/pv-before-cleanup.yaml\nkubectl get pv &quot;$PV&quot; -o jsonpath=&#039;{.spec.persistentVolumeReclaimPolicy}{&quot;\\n&quot;}{.spec.csi.volumeHandle}{&quot;\\n&quot;}&#039;<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131n\u0131n ilk sat\u0131r\u0131nda beklenen politika <code>Retain<\/code>, ikinci sat\u0131r\u0131nda EBS disk kimli\u011fi bulunur. YAML kayd\u0131 yaln\u0131z kaynak tan\u0131m\u0131n\u0131 saklar; veri yede\u011fi de\u011fildir. Saklanacak veri varsa silmeden \u00f6nce uygulamaya uygun yede\u011fini al\u0131n ve bu yedekten geri d\u00f6nebildi\u011finizi kontrol edin. Politikada <code>Delete<\/code> g\u00f6r\u00fcyorsan\u0131z a\u015fa\u011f\u0131daki silme ad\u0131mlar\u0131na ge\u00e7meyin: bu durumda PVC&#8217;nin silinmesi diski de silebilir ve burada anlat\u0131lan diski koruma ak\u0131\u015f\u0131 ge\u00e7erli olmaz.<\/p>\n<p>Politikan\u0131n diski korudu\u011funu ve yaln\u0131z art\u0131k gerekmeyen deneme verisi kald\u0131\u011f\u0131n\u0131 kontrol ettikten sonra \u00f6nce t\u00fcketici Pod&#8217;u, ard\u0131ndan talebi kald\u0131r\u0131n:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">kubectl delete pod disk-check -n pvc-demo\nkubectl delete pvc app-data -n pvc-demo\nkubectl get pv &quot;$PV&quot;<\/code><\/pre>\n<p><code>Retain<\/code> ile PV&#8217;nin <code>Released<\/code> durumuna ge\u00e7mesi beklenir; EBS diski kal\u0131r ve \u00fccret olu\u015fmaya devam edebilir. Bu a\u015fama diski silmez, ancak eski veriyi yeni bir talebe otomatik olarak da ba\u011flamaz.<\/p>\n<p>Kal\u0131c\u0131 temizlik i\u00e7in AWS konsolunda <strong>EC2 &#8211; Volumes<\/strong> (diskler) b\u00f6l\u00fcm\u00fcn\u00fc a\u00e7\u0131n ve \u00f6rnekte kulland\u0131\u011f\u0131n\u0131z b\u00f6lgede kaydetti\u011finiz disk kimli\u011fini bulun. Diskin ba\u011flant\u0131s\u0131z ve art\u0131k gereksiz oldu\u011funu kontrol ettikten sonra <strong>Actions &#8211; Delete volume<\/strong> (i\u015flemler &#8211; diski sil) ile silin. Bu i\u015flem diskteki veriyi kald\u0131r\u0131r; saklaman\u0131z gereken veri varsa yedekten d\u00f6n\u00fc\u015f\u00fcn\u00fcz haz\u0131r olmadan ilerlemeyin.<\/p>\n<p>Diskin silindi\u011fini g\u00f6rd\u00fckten sonra <code>kubectl delete pv \"$PV\"<\/code> ile Kubernetes kayd\u0131n\u0131 temizleyin. Ba\u015fka talep kullanm\u0131yorsa \u00f6rne\u011fe \u00f6zel s\u0131n\u0131f\u0131 da <code>kubectl delete storageclass gp3-demo<\/code> ile kald\u0131rabilirsiniz.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Uygulaman\u0131z kal\u0131c\u0131 depolama talebi kar\u015f\u0131lanmad\u0131\u011f\u0131 i\u00e7in ba\u015flam\u0131yorsa ilk ipucu olay kay\u0131tlar\u0131d\u0131r. Amazon EKS \u00fczerinde \u00f6rnek bir ak\u0131\u015fla yanl\u0131\u015f StorageClass ad\u0131n\u0131 ay\u0131rt edin, t\u00fcketici Pod&#8217;un etkisini g\u00f6r\u00fcn ve diske yaz\u0131p okuyarak kullan\u0131m\u0131 do\u011frulay\u0131n.<\/p>\n","protected":false},"author":4,"featured_media":5899,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27],"tags":[658,659,655,52,656,657],"class_list":["post-5907","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bulut-bilisim","tag-amazon-eks","tag-csi","tag-kalici-depolama","tag-kubernetes","tag-pvc-pending","tag-storageclass"],"_links":{"self":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/5907","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/comments?post=5907"}],"version-history":[{"count":1,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/5907\/revisions"}],"predecessor-version":[{"id":5913,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/5907\/revisions\/5913"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media\/5899"}],"wp:attachment":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media?parent=5907"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/categories?post=5907"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/tags?post=5907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}