[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:devops-cloud\u002Fk8s-services-networking":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-services-networking","K8s Services Networking","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,97,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":8,"name":9,"count":11},{"key":98,"name":99,"count":11},"k8s-storage","K8s Storage",{"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-7d45-7d97-86cf-30ae60ea7f40",1,"Bir Kubernetes Service, hangi Pod'ların kendisine ait olduğuna nasıl karar verir?",[177,180,183,186],{"key":178,"text":179},"a","Aynı Deployment adıyla oluşturulmuş Pod'ları eşleştirir",{"key":181,"text":182},"b","Service ile aynı Node üzerinde çalışan Pod'ları eşleştirir",{"key":184,"text":185},"c","Etiketleri label selector'ını karşılayan Pod'ları eşleştirir",{"key":187,"text":188},"d","Service manifest'inde adıyla listelenen Pod'ları eşleştirir","Service'in `spec.selector` alanı bir label selector'dır: hangi controller tarafından oluşturulduğuna ya da hangi Node'da çalıştığına bakılmaksızın, bu selector'ı karşılayan etiketlere sahip her Pod backend olarak dahil edilir.",{"id":191,"topic":9,"difficulty":174,"body":192,"options":193,"correct_key":181,"explanation":202},"019f651a-7d46-74e7-b6bf-fbf76cdaa787","Bir Deployment'ın rolling update'i tüm Pod'ları yenileriyle (yeni adlar, yeni IP'ler) değiştiriyor. Önlerindeki Service'e bağlanan client'lara ne olur?",[194,196,198,200],{"key":178,"text":195},"Client'lar, Service'in ClusterIP'sini elle yenileyene kadar bağlantı hatası alır",{"key":181,"text":197},"Client'lar aynı sabit Service ClusterIP\u002FDNS adını kullanmaya devam eder",{"key":184,"text":199},"Service, her rollout'tan sonra otomatik olarak yeni bir ClusterIP ile yeniden oluşturulur",{"key":187,"text":201},"Client'ların yeni Pod'ların kendi IP adreslerine geçmesi gerekir","Service'in ClusterIP'si ve DNS adı, Service'in ömrü boyunca sabit kalır. Eski Pod'lar yenileriyle değiştirildikçe Service'in endpoint listesi yeni Pod'ları gösterecek şekilde güncellenir, bu yüzden client'ların tek tek Pod IP'lerini bilmesine gerek kalmaz.",{"id":204,"topic":9,"difficulty":205,"body":206,"options":207,"correct_key":178,"explanation":216},"019f651a-7d47-7634-b5dd-f248d1256d30",2,"```yaml\napiVersion: v1\nkind: Service\nmetadata:\n  name: web-svc\nspec:\n  selector:\n    app: web\n  ports:\n    - port: 80\n      targetPort: 80\n```\nBu, Pod'ları `app: web` etiketini taşıyan bir Deployment ile birlikte uygulandıktan sonra `kubectl get endpoints web-svc` çalıştırılıyor. Ne gösterir?",[208,210,212,214],{"key":178,"text":209},"`app: web` ile eşleşen ve hazır (ready) olan her Pod'un IP:port çifti",{"key":181,"text":211},"web-svc'ye atanan tek ClusterIP",{"key":184,"text":213},"Deployment adı ve mevcut replica sayısı",{"key":187,"text":215},"Bir NodePort veya LoadBalancer da oluşturulana kadar boş bir liste","Endpoints nesnesi (ve karşılığı EndpointSlice), endpoint controller tarafından Service'in selector'ıyla eşleşen ve o an ready olan her Pod'un IP:port'uyla doldurulur — bu canlı olarak doğrulandı: üç ready Pod için `kubectl get endpoints web-svc`, `10.244.0.6:80,10.244.0.7:80,10.244.0.8:80` döndürdü.",{"id":218,"topic":9,"difficulty":205,"body":219,"options":220,"correct_key":187,"explanation":229},"019f651a-7d47-7f10-b466-770a592feac2","Bir Deployment'ın bir Service arkasında 3 replica'sı var. Bir Pod'un readiness probe'u başarısız olmaya başlıyor ama container çalışmaya devam ediyor (yeniden başlatılmıyor). `kubectl get pods` ve Service'in endpoint listesi ne gösterir?",[221,223,225,227],{"key":178,"text":222},"Pod, `kubectl get pods` çıktısından kaybolur ve Service yalnızca 2 Pod'a yönlendirir",{"key":181,"text":224},"Pod otomatik olarak yeniden başlar ve Service 3 Pod'a da yönlendirmeye devam eder",{"key":184,"text":226},"Pod yeni bir IP ile `Running` görünür ve Service'e 4. bir endpoint eklenir",{"key":187,"text":228},"Pod hâlâ `Running` görünür (`0\u002F1` ready), ama endpoint listesinden çıkarılır","Bu canlı olarak yeniden üretildi: readiness probe'u başarısız olan bir Pod, `kubectl get pods` çıktısında `Running` kalmaya devam etti (ready sayısı `0\u002F1`'e düştü), `kubectl get endpoints web-svc` ise 3 adresten 2'ye düştü — container, başarısız readiness probe ile yeniden başlatılmaz ama Service artık ona trafik göndermez.",{"id":231,"topic":9,"difficulty":205,"body":232,"options":233,"correct_key":181,"explanation":242},"019f651a-7d48-7797-acd5-1e8ddfe314bf","Bir Service'in selector'ı `app: web`, ama biri bunu `app: nonexistent` olarak patch'liyor; arkadaki Pod'lar hâlâ `app: web` etiketini taşıyor. Service'e ne olur?",[234,236,238,240],{"key":178,"text":235},"Service, geçerli bir backend'i kalmadığı için otomatik olarak silinir",{"key":181,"text":237},"Service ClusterIP'sini korur, ama endpoint listesi boşalır",{"key":184,"text":239},"Service, namespace'teki tüm Pod'ları eşleştirmeye geri döner",{"key":187,"text":241},"Service, Pod'lar yeniden başlatılana kadar eski endpoint'lerini korur","Bu canlı olarak yeniden üretildi: `web-svc`'nin selector'ı hiçbir Pod'un taşımadığı bir etikete patch'lendiğinde `kubectl get endpoints web-svc` hiç adres göstermedi, `kubectl describe svc` de boş bir `Endpoints:` satırı gösterdi — Service nesnesinin kendisi ve ClusterIP'si dokunulmadan kaldı, yalnızca endpoint listesi yeniden hesaplandı.",{"id":244,"topic":9,"difficulty":174,"body":245,"options":246,"correct_key":178,"explanation":255},"019f651a-7d49-7057-a332-58827c2f3fdb","`type` belirtilmediğinde Kubernetes varsayılan olarak hangi tür Service oluşturur?",[247,249,251,253],{"key":178,"text":248},"ClusterIP — yalnızca cluster içinden erişilebilir",{"key":181,"text":250},"NodePort — her Node'un IP'sinde sabit bir port üzerinden erişilebilir",{"key":184,"text":252},"LoadBalancer — harici bir bulut load balancer'ı tedarik eder",{"key":187,"text":254},"ExternalName — harici bir hostname'e DNS takma adı","`ClusterIP`, varsayılan Service türüdür: yalnızca cluster'ın ağı içinden yönlendirilebilen sabit bir sanal IP alır, ki bu tam olarak cluster içi servisler-arası trafiğin ihtiyaç duyduğu şeydir.",{"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]