[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:devops-cloud\u002Fk8s-storage":4,"config":256},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":151,"samples":171},"devops-cloud","DevOps \u002F Cloud","","k8s-storage","K8s Storage","tr",75,3375,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,100,103,106,109,112,115,118,121,124,127,130,133,136,139,142,145,148],{"key":19,"name":20,"count":11},"aws-compute-ec2-lambda","Aws Compute Ec2 Lambda",{"key":22,"name":23,"count":11},"aws-databases-rds-dynamodb","Aws Databases Rds Dynamodb",{"key":25,"name":26,"count":11},"aws-iam-security","Aws Iam Security",{"key":28,"name":29,"count":11},"aws-messaging-eventing","Aws Messaging Eventing",{"key":31,"name":32,"count":11},"aws-networking-vpc","Aws Networking Vpc",{"key":34,"name":35,"count":11},"aws-storage-s3-ebs","Aws Storage S3 Ebs",{"key":37,"name":38,"count":11},"azure-compute-vm-appservice","Azure Compute Vm Appservice",{"key":40,"name":41,"count":11},"azure-databases-sql-cosmosdb","Azure Databases Sql Cosmosdb",{"key":43,"name":44,"count":11},"azure-iam-security","Azure Iam Security",{"key":46,"name":47,"count":11},"azure-messaging-eventing","Azure Messaging Eventing",{"key":49,"name":50,"count":11},"azure-networking-vnet","Azure Networking Vnet",{"key":52,"name":53,"count":11},"azure-storage-blob-managed-disk","Azure Storage Blob Managed Disk",{"key":55,"name":56,"count":11},"ci-cd-pipelines","Ci Cd Pipelines",{"key":58,"name":59,"count":11},"cloud-architecture-scaling","Cloud Architecture Scaling",{"key":61,"name":62,"count":11},"containers-orchestration","Containers Orchestration",{"key":64,"name":65,"count":11},"deployment-release-strategies","Deployment Release Strategies",{"key":67,"name":68,"count":11},"gcp-compute-gce-cloudrun","Gcp Compute Gce Cloudrun",{"key":70,"name":71,"count":11},"gcp-databases-cloudsql-spanner-firestore","Gcp Databases Cloudsql Spanner Firestore",{"key":73,"name":74,"count":11},"gcp-iam-security","Gcp Iam Security",{"key":76,"name":77,"count":11},"gcp-messaging-eventing","Gcp Messaging Eventing",{"key":79,"name":80,"count":11},"gcp-networking-vpc","Gcp Networking Vpc",{"key":82,"name":83,"count":11},"gcp-storage-gcs-persistent-disk","Gcp Storage Gcs Persistent Disk",{"key":85,"name":86,"count":11},"infrastructure-as-code","Infrastructure As Code",{"key":88,"name":89,"count":11},"k8s-config-secrets","K8s Config Secrets",{"key":91,"name":92,"count":11},"k8s-observability-troubleshooting","K8s Observability Troubleshooting",{"key":94,"name":95,"count":11},"k8s-scheduling-resources","K8s Scheduling Resources",{"key":97,"name":98,"count":11},"k8s-services-networking","K8s Services Networking",{"key":8,"name":9,"count":11},{"key":101,"name":102,"count":11},"k8s-workloads","K8s Workloads",{"key":104,"name":105,"count":11},"linux-filesystem-permissions-links","Linux Filesystem Permissions Links",{"key":107,"name":108,"count":11},"linux-networking-tools-troubleshooting","Linux Networking Tools Troubleshooting",{"key":110,"name":111,"count":11},"linux-performance-monitoring-resource-limits","Linux Performance Monitoring Resource Limits",{"key":113,"name":114,"count":11},"linux-process-management-signals","Linux Process Management Signals",{"key":116,"name":117,"count":11},"linux-shell-scripting-ops-automation","Linux Shell Scripting Ops Automation",{"key":119,"name":120,"count":11},"linux-systemd-service-management","Linux Systemd Service Management",{"key":122,"name":123,"count":11},"networking-dns-loadbalancing","Networking Dns Loadbalancing",{"key":125,"name":126,"count":11},"observability-monitoring","Observability Monitoring",{"key":128,"name":129,"count":11},"reliability-incident-sre","Reliability Incident Sre",{"key":131,"name":132,"count":11},"security-iam-secrets","Security Iam Secrets",{"key":134,"name":135,"count":11},"terraform-hcl-language-expressions","Terraform Hcl Language Expressions",{"key":137,"name":138,"count":11},"terraform-modules-workspaces","Terraform Modules Workspaces",{"key":140,"name":141,"count":11},"terraform-plan-apply-drift-import","Terraform Plan Apply Drift Import",{"key":143,"name":144,"count":11},"terraform-providers-lifecycle-provisioners","Terraform Providers Lifecycle Provisioners",{"key":146,"name":147,"count":11},"terraform-state-backend-locking","Terraform State Backend Locking",{"key":149,"name":150,"count":11},"terraform-testing-policy-cicd","Terraform Testing Policy Cicd",[152,156,159,162,165,168],{"key":153,"name":154,"count":155},"aws","AWS",450,{"key":157,"name":158,"count":155},"azure","Azure",{"key":160,"name":161,"count":155},"gcp","GCP",{"key":163,"name":164,"count":155},"kubernetes","Kubernetes",{"key":166,"name":167,"count":155},"linux","Linux",{"key":169,"name":170,"count":155},"terraform","Terraform",[172,190,203,217,230,243],{"id":173,"topic":9,"difficulty":174,"body":175,"options":176,"correct_key":184,"explanation":189},"019f651a-7d59-78ea-834e-443a1e439f35",1,"Bir Pod, `\u002Fdata` yoluna bağlı bir `emptyDir` volume kullanıyor. Bir process oraya bir dosya yazıyor, sonra Pod silinip aynı spec'e sahip yeni bir Pod oluşturuluyor. Dosyaya ne olur?",[177,180,183,186],{"key":178,"text":179},"a","kubelet tarafından otomatik olarak yeni Pod'a kopyalanır",{"key":181,"text":182},"b","Node üzerinde kalır ve yeni Pod aynı dizini mount eder",{"key":184,"text":185},"c","Kaybolur, çünkü emptyDir o Pod'un ömrüyle sınırlıdır",{"key":187,"text":188},"d","Namespace'te bağlı olan hangi PersistentVolume varsa oraya taşınır","Bir emptyDir volume, Pod bir node'a atandığında oluşturulur ve o belirli Pod kaldırıldığında içeriği kalıcı olarak silinir. Aynı spec'e sahip yeni bir Pod bile, yepyeni boş bir dizin alır.",{"id":191,"topic":9,"difficulty":174,"body":192,"options":193,"correct_key":178,"explanation":202},"019f651a-7d5a-7344-b256-d22d9c3d02b3","Bir Pod, Bound durumundaki bir PVC'ye dayanan bir `persistentVolumeClaim` volume mount ediyor. Pod silinip yerine aynı PVC adını referans alan yeni bir Pod oluşturuluyor. Silinmeden önce yazılan dosyalara ne olur?",[194,196,198,200],{"key":178,"text":195},"Kalır, çünkü PVC ve onun altındaki storage Pod'dan daha uzun ömürlüdür",{"key":181,"text":197},"Kaybolur, çünkü volume'lar her zaman tek bir Pod'a özeldir",{"key":184,"text":199},"Sadece yeni Pod aynı node'da çalışırsa kalır",{"key":187,"text":201},"StorageClass'ta `reclaimPolicy: Retain` yoksa kaybolur","PVC, bir PersistentVolume'a bağlanmış ayrı bir API nesnesidir; yaşam döngüsü herhangi bir tek Pod'dan bağımsızdır. Aynı PVC'yi mount eden herhangi bir Pod, hangi node'a düştüğüne (ağ tabanlı storage için) ya da yepyeni bir Pod olup olmadığına bakılmaksızın aynı altta yatan storage ve veriyi görür.",{"id":204,"topic":9,"difficulty":205,"body":206,"options":207,"correct_key":181,"explanation":216},"019f651a-7d5a-7df4-89c5-10adeb9c6054",2,"Tek StorageClass'ın `standard` adını taşıdığı bir cluster'da şu PVC'yi apply ediyorsun:\n```yaml\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: data-pvc\nspec:\n  accessModes: [\"ReadWriteOnce\"]\n  storageClassName: fast-ssd\n  resources:\n    requests:\n      storage: 1Gi\n```\nHemen ardından `kubectl get pvc data-pvc` çalıştırılıyor. STATUS sütununda ne görünür?",[208,210,212,214],{"key":178,"text":209},"Bound, çünkü Kubernetes varsayılan StorageClass'a geri düşer",{"key":181,"text":211},"Pending, çünkü isteği karşılayacak bir `fast-ssd` StorageClass'ı yok",{"key":184,"text":213},"Failed, çünkü PVC oluşturma anında API server tarafından reddedilir",{"key":187,"text":215},"Bound, çünkü 1Gi storage herhangi bir provisioner'ın karşılayabileceği kadar küçük","Var olmayan bir StorageClass'ı adlandıran bir PVC'nin bağlanacağı ya da provision edileceği hiçbir şey yoktur, bu yüzden Pending kalır. `kubectl describe pvc`, persistentvolume-controller'dan `storageclass.storage.k8s.io \"fast-ssd\" not found` gibi bir event gösterir.",{"id":218,"topic":9,"difficulty":205,"body":219,"options":220,"correct_key":187,"explanation":229},"019f651a-7d5b-759a-a6bb-ab54c11f2eb9","Bir minikube cluster'ında (varsayılan StorageClass `standard`, provisioner `k8s.io\u002Fminikube-hostpath`) şunu apply ediyorsun:\n```yaml\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: data-pvc\nspec:\n  accessModes: [\"ReadWriteOnce\"]\n  resources:\n    requests:\n      storage: 1Gi\n```\n`storageClassName` alanı hiç ayarlanmamış. Ne olur?",[221,223,225,227],{"key":178,"text":222},"PVC Pending kalır, çünkü açıkça bir StorageClass istenmedi",{"key":181,"text":224},"PVC reddedilir, çünkü `storageClassName` zorunlu bir alandır",{"key":184,"text":226},"Bir yönetici önce elle eşleşen bir PersistentVolume oluşturmalıdır",{"key":187,"text":228},"PVC, varsayılan StorageClass'ı kullanır ve dinamik olarak provision eder","`storageClassName` belirtilmediğinde, Kubernetes varsayılan olarak işaretlenmiş (`storageclass.kubernetes.io\u002Fis-default-class: \"true\"` etiketli) StorageClass'ı kullanır. Onun provisioner'ı, herhangi bir yönetici adımı olmadan eşleşen bir PersistentVolume'u dinamik olarak oluşturur ve PVC Bound olur.",{"id":231,"topic":9,"difficulty":174,"body":232,"options":233,"correct_key":181,"explanation":242},"019f651a-7d5b-7e4b-9750-e9de7673f051","Bir PersistentVolumeClaim `accessModes: [\"ReadWriteOnce\"]` talep ediyor. Bu pratikte ne anlama gelir?",[234,236,238,240],{"key":178,"text":235},"Bir Pod içindeki yalnızca tek bir container volume'u mount edebilir",{"key":181,"text":237},"Volume aynı anda yalnızca tek bir node tarafından okuma-yazma olarak mount edilebilir",{"key":184,"text":239},"Volume yalnızca bir kez yazılabilir, sonra salt-okunur olur",{"key":187,"text":241},"Yalnızca PVC'yi oluşturan Pod onu bir daha mount edebilir","ReadWriteOnce (RWO), volume'un okuma-yazma olarak mount edilebileceği ama aynı anda yalnızca tek bir node tarafından anlamına gelir — o aynı node'a zamanlanmış birden fazla Pod yine de mount'u paylaşabilir. Farklı node'lardaki birden fazla Pod, bir RWO volume'u aynı anda mount edemez.",{"id":244,"topic":9,"difficulty":205,"body":245,"options":246,"correct_key":178,"explanation":255},"019f651a-7d5c-74a4-b424-18991024f3ee","`node-1` üzerindeki Pod A, `accessModes: [\"ReadWriteOnce\"]` olan bir PVC'yi mount ediyor ve altındaki PV şu anda `node-1`'e bağlı. Bir Deployment rollout'u, aynı PVC'yi mount eden Pod B'yi `node-2`'ye zamanlıyor. En muhtemel sonuç nedir?",[247,249,251,253],{"key":178,"text":248},"Pod B takılı kalır (ContainerCreating), çünkü RWO iki node'a bağlanamaz",{"key":181,"text":250},"Her iki Pod da hiçbir sorun olmadan volume'u aynı anda mount eder",{"key":184,"text":252},"Pod B volume'u bağlayabilsin diye Pod A otomatik olarak tahliye edilir",{"key":187,"text":254},"PVC her iki mount'a izin vermek için sessizce ReadWriteMany'ye geçer","Bir RWO volume aynı anda yalnızca tek bir node'a bağlanabilir. Pod A'nın node'u volume'u hâlâ tutuyorsa, farklı bir node'daki Pod B onu mount edemez ve volume ayrılana kadar (genelde Pod A sonlandıktan sonra) takılı kalır.",{"fields":257,"seniorities":429,"interview_shapes":430,"locales":435,"oauth":437,"question_count":440,"coach_enabled":441,"jd_match_enabled":441},[258,283,303,320,330,343,362,381,403,410,416,423],{"key":259,"name_tr":260,"name_en":260,"sort":174,"specializations":261},"backend","Backend",[262,265,268,271,274,277,280],{"key":263,"name":264,"field":259},"general","Genel",{"key":266,"name":267,"field":259},"go","Go",{"key":269,"name":270,"field":259},"python","Python",{"key":272,"name":273,"field":259},"java","Java",{"key":275,"name":276,"field":259},"csharp","C#\u002F.NET",{"key":278,"name":279,"field":259},"nodejs","Node.js",{"key":281,"name":282,"field":259},"php","PHP",{"key":284,"name_tr":285,"name_en":285,"sort":205,"specializations":286},"frontend","Frontend",[287,288,291,294,297,300],{"key":263,"name":264,"field":284},{"key":289,"name":290,"field":284},"javascript","JavaScript",{"key":292,"name":293,"field":284},"typescript","TypeScript",{"key":295,"name":296,"field":284},"react","React",{"key":298,"name":299,"field":284},"vue","Vue",{"key":301,"name":302,"field":284},"angular","Angular",{"key":304,"name_tr":305,"name_en":305,"sort":306,"specializations":307},"fullstack","Fullstack",3,[308,309,310,311,312,313,314,315,316,317,318,319],{"key":263,"name":264,"field":304},{"key":266,"name":267,"field":259},{"key":269,"name":270,"field":259},{"key":272,"name":273,"field":259},{"key":275,"name":276,"field":259},{"key":278,"name":279,"field":259},{"key":281,"name":282,"field":259},{"key":289,"name":290,"field":284},{"key":292,"name":293,"field":284},{"key":295,"name":296,"field":284},{"key":298,"name":299,"field":284},{"key":301,"name":302,"field":284},{"key":5,"name_tr":6,"name_en":6,"sort":321,"specializations":322},4,[323,324,325,326,327,328,329],{"key":263,"name":264,"field":5},{"key":153,"name":154,"field":5},{"key":160,"name":161,"field":5},{"key":157,"name":158,"field":5},{"key":163,"name":164,"field":5},{"key":169,"name":170,"field":5},{"key":166,"name":167,"field":5},{"key":331,"name_tr":332,"name_en":332,"sort":333,"specializations":334},"ai-engineer","AI Engineer",5,[335,336,337,340],{"key":263,"name":264,"field":331},{"key":269,"name":270,"field":331},{"key":338,"name":339,"field":331},"llm-rag","LLM\u002FRAG",{"key":341,"name":342,"field":331},"mlops","MLOps",{"key":344,"name_tr":345,"name_en":346,"sort":347,"specializations":348},"database","Veritabanı","Database",6,[349,350,353,356,359],{"key":263,"name":264,"field":344},{"key":351,"name":352,"field":344},"postgresql","PostgreSQL",{"key":354,"name":355,"field":344},"mysql","MySQL",{"key":357,"name":358,"field":344},"mongodb","MongoDB",{"key":360,"name":361,"field":344},"redis","Redis",{"key":363,"name_tr":364,"name_en":365,"sort":366,"specializations":367},"mobile","Mobil","Mobile",7,[368,369,372,375,378],{"key":263,"name":264,"field":363},{"key":370,"name":371,"field":363},"ios-swift","iOS (Swift)",{"key":373,"name":374,"field":363},"android-kotlin","Android (Kotlin)",{"key":376,"name":377,"field":363},"flutter","Flutter",{"key":379,"name":380,"field":363},"react-native","React Native",{"key":382,"name_tr":383,"name_en":384,"sort":385,"specializations":386},"security","Güvenlik","Security",8,[387,388,391,394,397,400],{"key":263,"name":264,"field":382},{"key":389,"name":390,"field":382},"appsec","AppSec",{"key":392,"name":393,"field":382},"offensive-pentest","Offensive \u002F Pentest",{"key":395,"name":396,"field":382},"cloud-security","Cloud Security",{"key":398,"name":399,"field":382},"devsecops","DevSecOps",{"key":401,"name":402,"field":382},"blue-team-incident","Blue Team \u002F Incident",{"key":404,"name_tr":405,"name_en":406,"sort":407,"specializations":408},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[409],{"key":263,"name":264,"field":404},{"key":411,"name_tr":412,"name_en":412,"sort":413,"specializations":414},"data-engineer","Data Engineer",10,[415],{"key":263,"name":264,"field":411},{"key":417,"name_tr":418,"name_en":419,"sort":420,"specializations":421},"game-dev","Oyun Geliştirme","Game Development",11,[422],{"key":263,"name":264,"field":417},{"key":424,"name_tr":425,"name_en":425,"sort":426,"specializations":427},"ml-engineer","ML Engineer",12,[428],{"key":263,"name":264,"field":424},[14,15,16],{"junior":431,"mid":433,"senior":434},{"questions":432,"median_sec":3},20,{"questions":432,"median_sec":3},{"questions":432,"median_sec":3},[10,436],"en",[438,439],"google","github",21750,true]