[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en: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","en",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,"A Pod uses an `emptyDir` volume mounted at `\u002Fdata`. A process writes a file there, then the Pod is deleted and a new Pod with the same spec is created. What happens to the file?",[177,180,183,186],{"key":178,"text":179},"a","It is copied to the new Pod automatically by the kubelet",{"key":181,"text":182},"b","It stays on the node and the new Pod mounts the same directory",{"key":184,"text":185},"c","It is gone, since emptyDir is scoped to that Pod's lifetime",{"key":187,"text":188},"d","It moves to whichever PersistentVolume is bound in the namespace","An emptyDir volume is created when a Pod is assigned to a node and its contents are deleted permanently when that specific Pod is removed. A new Pod, even with an identical spec, gets a fresh empty directory.",{"id":191,"topic":9,"difficulty":174,"body":192,"options":193,"correct_key":178,"explanation":202},"019f651a-7d5a-7344-b256-d22d9c3d02b3","A Pod mounts a `persistentVolumeClaim` volume backed by a PVC that is Bound. The Pod is deleted and a new Pod referencing the same PVC name is created in its place. What happens to files written before deletion?",[194,196,198,200],{"key":178,"text":195},"They remain, because the PVC and its underlying storage outlive the Pod",{"key":181,"text":197},"They are lost, because volumes are always scoped to a single Pod",{"key":184,"text":199},"They remain only if the new Pod runs on the same node",{"key":187,"text":201},"They are lost unless the StorageClass has `reclaimPolicy: Retain`","A PVC is a separate API object bound to a PersistentVolume; its lifecycle is independent of any single Pod. Any Pod that mounts the same PVC sees the same underlying storage and data, regardless of which node it lands on (for network-backed storage) or whether it's a brand-new Pod.",{"id":204,"topic":9,"difficulty":205,"body":206,"options":207,"correct_key":181,"explanation":216},"019f651a-7d5a-7df4-89c5-10adeb9c6054",2,"You apply this PVC in a cluster where the only StorageClass is named `standard`:\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```\n`kubectl get pvc data-pvc` is run right after. What is shown in the STATUS column?",[208,210,212,214],{"key":178,"text":209},"Bound, because Kubernetes falls back to the default StorageClass",{"key":181,"text":211},"Pending, because no `fast-ssd` StorageClass exists to satisfy the request",{"key":184,"text":213},"Failed, because the PVC gets rejected by the API server at creation time",{"key":187,"text":215},"Bound, because storage 1Gi is small enough for any provisioner to satisfy","A PVC that names a non-existent StorageClass has nothing to bind or provision against, so it stays Pending. `kubectl describe pvc` shows an event like `storageclass.storage.k8s.io \"fast-ssd\" not found` from the persistentvolume-controller.",{"id":218,"topic":9,"difficulty":205,"body":219,"options":220,"correct_key":187,"explanation":229},"019f651a-7d5b-759a-a6bb-ab54c11f2eb9","In a minikube cluster (default StorageClass `standard`, provisioner `k8s.io\u002Fminikube-hostpath`), you apply:\n```yaml\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: data-pvc\nspec:\n  accessModes: [\"ReadWriteOnce\"]\n  resources:\n    requests:\n      storage: 1Gi\n```\nNo `storageClassName` field is set. What happens?",[221,223,225,227],{"key":178,"text":222},"The PVC stays Pending, because no StorageClass was explicitly requested",{"key":181,"text":224},"The PVC is rejected, because `storageClassName` is a required field",{"key":184,"text":226},"An admin must manually create a matching PersistentVolume first",{"key":187,"text":228},"The PVC uses the default StorageClass and provisions dynamically","When `storageClassName` is omitted, Kubernetes uses whichever StorageClass is marked as default (annotated `storageclass.kubernetes.io\u002Fis-default-class: \"true\"`). Its provisioner then dynamically creates a matching PersistentVolume and the PVC becomes Bound without any admin step.",{"id":231,"topic":9,"difficulty":174,"body":232,"options":233,"correct_key":181,"explanation":242},"019f651a-7d5b-7e4b-9750-e9de7673f051","A PersistentVolumeClaim requests `accessModes: [\"ReadWriteOnce\"]`. What does this mean in practice?",[234,236,238,240],{"key":178,"text":235},"Only one container inside a Pod can mount the volume",{"key":181,"text":237},"The volume can be mounted read-write by a single node at a time",{"key":184,"text":239},"The volume can only ever be written to once, then becomes read-only",{"key":187,"text":241},"Only the Pod that created the PVC can ever mount it again","ReadWriteOnce (RWO) means the volume can be mounted as read-write, but by only one node at a time — multiple Pods scheduled to that same node can still share the mount. Multiple Pods on different nodes cannot mount an RWO volume simultaneously.",{"id":244,"topic":9,"difficulty":205,"body":245,"options":246,"correct_key":178,"explanation":255},"019f651a-7d5c-74a4-b424-18991024f3ee","Pod A on `node-1` mounts a PVC with `accessModes: [\"ReadWriteOnce\"]` and the underlying PV is currently attached to `node-1`. A Deployment rollout schedules Pod B, which mounts the same PVC, onto `node-2`. What is the most likely outcome?",[247,249,251,253],{"key":178,"text":248},"Pod B stays stuck (ContainerCreating) since RWO can't attach to two nodes",{"key":181,"text":250},"Both Pods mount the volume simultaneously without any issue",{"key":184,"text":252},"Pod A is automatically evicted so Pod B can attach the volume",{"key":187,"text":254},"The PVC silently switches to ReadOnlyMany to allow both mounts","An RWO volume can only be attached to one node at a time. If Pod A's node still holds the volume, Pod B on a different node will fail to mount it and remain stuck until the volume is detached (typically after Pod A terminates).",{"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},[436,10],"tr",[438,439],"google","github",21750,true]