[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:devops-cloud\u002Fk8s-workloads":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-workloads","K8s Workloads","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,102,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":100,"name":101,"count":11},"k8s-storage","K8s Storage",{"key":8,"name":9,"count":11},{"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-7d6b-74ec-ae0a-ae410fba65db",1,"Kubernetes'te en küçük deploy edilebilir birim nedir, ve sahip bir controller olmadan oluşturulan çıplak bir Pod silinirse ya da Node'u çökerse ne olur?",[177,180,183,186],{"key":178,"text":179},"a","Bir container'dır, Kubernetes onu her zaman farklı bir Node'da otomatik olarak yeniden başlatır",{"key":181,"text":182},"b","Bir Node'dur, workload'lar herhangi bir sarmalayıcı nesne olmadan doğrudan onun üzerine zamanlanır",{"key":184,"text":185},"c","Bir Pod'dur, Kubernetes onu kendiliğinden otomatik olarak yeniden oluşturmaz",{"key":187,"text":188},"d","Bir namespace'tir, içindeki her Pod bir grup olarak birlikte yeniden oluşturulur","Pod, doğrudan oluşturup zamanlayabileceğin en küçük birimdir. Sahip bir controller olmadan oluşturulan çıplak bir Pod silinirse ya da Node'u çökerse yeniden oluşturulmaz — yalnızca Deployment veya ReplicaSet gibi bir controller istenen sayıyı izler ve eksik Pod'ları yerine koyar. a, çıplak bir Pod'un kendi başına yaptığını değil controller davranışını anlatıyor; b ve d ise zamanlama ve gruplamanın gerçekte nerede yapıldığını yanlış konumlandırıyor.",{"id":191,"topic":9,"difficulty":174,"body":192,"options":193,"correct_key":178,"explanation":202},"019f651a-7d6b-7e37-bcb8-09d7d73144d5","Bir Deployment'ın oluşturduğu nesne hiyerarşisinde, çalışan Pod'ların doğrudan sahibi olarak (her Pod'un ownerReferences alanında görüleceği üzere) hangi controller ayarlanır?",[194,196,198,200],{"key":178,"text":195},"Deployment'ın oluşturduğu ReplicaSet",{"key":181,"text":197},"Deployment nesnesinin kendisi, arada hiç ReplicaSet olmadan doğrudan",{"key":184,"text":199},"Pod'lara trafiği yönlendiren Service",{"key":187,"text":201},"Pod'un atandığı Node üzerinde çalışan kubelet","Her Pod'un ownerReferences alanı Deployment'a değil ReplicaSet'e işaret eder — Deployment, ReplicaSet'in sahibidir, ReplicaSet de Pod'ların sahibidir; böylece iki seviyeli bir zincir oluşur. b, gerçekte var olan ara ReplicaSet'i atlıyor; c ve d sahiplik zinciriyle ilgisiz, bir Service Pod'ları yalnızca label ile seçer, bir kubelet ise API'de nesnelerin sahibi olmaz.",{"id":204,"topic":9,"difficulty":205,"body":206,"options":207,"correct_key":187,"explanation":216},"019f651a-7d6c-75a7-a151-d2e5fba46569",2,"Bir Deployment tarafından oluşturulan bir Pod için `kubectl get pod web-6cfbf48659-s2t7j -n wl-jr -o yaml` çalıştırıldığında metadata altında şu görülüyor:\nownerReferences:\n- apiVersion: apps\u002Fv1\n  kind: ReplicaSet\n  name: web-6cfbf48659\n  controller: true\nBu, Pod'un nasıl yönetildiği hakkında neyi doğrular?",[208,210,212,214],{"key":178,"text":209},"Deployment, herhangi bir ara nesne olmadan bu Pod'u doğrudan oluşturmuş ve sahibidir",{"key":181,"text":211},"Bu Pod elle oluşturulmuş ve daha sonra yönlendirme için bir Service tarafından sahiplenilmiştir",{"key":184,"text":213},"Pod'un adı herhangi bir controller ile ilgisizdir ve scheduler tarafından rastgele atanmıştır",{"key":187,"text":215},"web-6cfbf48659 adlı bir ReplicaSet, bu Pod'un sahibi olan ve onu yöneten controller'dır","`kind: ReplicaSet` ve `controller: true` içeren `ownerReferences` girdisi, web-6cfbf48659 ReplicaSet'inin bu Pod'un yaşam döngüsünden sorumlu doğrudan sahip olduğunu doğrular. a yanlıştır çünkü alan açıkça Deployment'ı değil bir ReplicaSet'i adlandırıyor; b ve c ise bu çıktının hiç göstermediği senaryolar uyduruyor.",{"id":218,"topic":9,"difficulty":205,"body":219,"options":220,"correct_key":181,"explanation":229},"019f651a-7d6c-7d49-a2d2-d2bc520d5351","Bir Deployment olan `web`'de şu anda `spec.replicas: 2` var ve 2 Pod Running durumda. Şunu çalıştırıyorsun:\nkubectl scale deployment\u002Fweb --replicas=4 -n wl-jr\nDoğrudan etkisi nedir?",[221,223,225,227],{"key":178,"text":222},"web adında, 4 replika ile paralel çalışan ikinci bir Deployment oluşturulur",{"key":181,"text":224},"Deployment'ın replicas alanı 4 olur, ReplicaSet'i 2 ek Pod ekler",{"key":184,"text":226},"Komut yalnızca alanı günceller, Pod'lar bir sonraki `kubectl apply`'da eklenir",{"key":187,"text":228},"Komut başarısız olur çünkü replicas, bir Deployment oluşturulduktan sonra değiştirilemez","`kubectl scale`, mevcut Deployment üzerindeki `spec.replicas` alanını patch'ler; ardından ReplicaSet hemen reconcile olur ve aynı Pod template'inden ek Pod'ları oluşturur, başka bir `apply` beklemeden. a hiç oluşturulmayan ikinci bir nesne uyduruyor; c yanlıştır çünkü reconcile hemen gerçekleşir, gelecekteki bir apply'da değil; d yanlıştır, replicas değiştirilebilir bir alandır.",{"id":231,"topic":9,"difficulty":205,"body":232,"options":233,"correct_key":184,"explanation":242},"019f651a-7d6d-752a-8b66-4ccd0d6c959a","`kubectl scale` kullanmak yerine bir mühendis Deployment manifest'inde `replicas: 2`'yi `replicas: 4`'e değiştirip `kubectl apply -f deploy.yaml` çalıştırıyor. Ortaya çıkan davranış `kubectl scale deployment\u002Fweb --replicas=4` çalıştırmakla nasıl karşılaştırılır?",[234,236,238,240],{"key":178,"text":235},"Yalnızca `kubectl scale` ReplicaSet'i tetikler, YAML'i düzenleyip yeniden apply etmenin Pod sayısına etkisi yoktur",{"key":181,"text":237},"YAML'i düzenlemek, image değişmemiş olsa bile mevcut tüm Pod'ların tam bir rolling restart'ını zorlar",{"key":184,"text":239},"İkisi de aynı `spec.replicas` alanını günceller, bu yüzden ReplicaSet her iki durumda da 4 Pod'a yakınsar",{"key":187,"text":241},"YAML düzenledikten sonraki `kubectl apply`, eski Deployment'ı siler ve sıfırdan yepyeni bir tane oluşturur","Her iki yol da aynı Deployment nesnesindeki aynı `spec.replicas` alanını patch'ler, dolayısıyla sonuç aynıdır: ReplicaSet 4 Pod'a reconcile olur. a yanlıştır çünkü düzenleyip apply etmek canlı nesneyi gerçekten günceller; b yanlıştır çünkü yalnızca replika sayısı değişti, Pod template'i değil, bu yüzden mevcut Pod'ların restart'ı tetiklenmez; d, `apply`'ı yanlış tanımlıyor, o nesneyi yeniden oluşturmak yerine mevcut nesneyi günceller.",{"id":244,"topic":9,"difficulty":205,"body":245,"options":246,"correct_key":178,"explanation":255},"019f651a-7d6e-70bd-a343-705a3bf53e7f","Bir Deployment olan `web`'de `replicas: 2` var ve her iki Pod da Running durumda. `kubectl delete pod web-6cfbf48659-gp9n7 -n wl-jr` çalıştırıyorsun. Birkaç saniye sonra `kubectl get pods`'a bakıyorsun. Ne gözlemlersin?",[247,249,251,253],{"key":178,"text":248},"Yine toplam 2 Pod: silinen gitmiş, yeni bir Pod onun yerini almış",{"key":181,"text":250},"Yalnızca 1 Pod kalır, çünkü Deployment `replicas`'ı gerçek sayıya indirir",{"key":184,"text":252},"Deployment başarısız olarak işaretlenir ve kurtarmak için elle `kubectl rollout restart` gerekir",{"key":187,"text":254},"Aynı Pod, silinmeden önceki adıyla birebir aynı şekilde yeniden ortaya çıkar","ReplicaSet, gerçek Pod sayısını sürekli olarak istenen `replicas` değerine doğru reconcile eder; sahip olduğu bir Pod'u silmek, sadece yeni üretilmiş bir adla bir yenisinin oluşturulmasını sağlar ve sayıyı 2'ye geri getirir. b, reconciliation yönünü tersine çeviriyor; c, rutin bir Pod silmeden ortaya çıkmayan bir başarısızlık durumu uyduruyor; d yanlıştır çünkü yerine gelen Pod silinenin adını değil yeni, taze bir ad alı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]