[{"data":1,"prerenderedAt":1239},["ShallowReactive",2],{"page-tr-\u002Fblog\u002Fkubectl-commands":3},{"id":4,"title":5,"body":6,"date":1226,"description":1227,"extension":1228,"meta":1229,"navigation":621,"path":1230,"seo":1231,"stem":1232,"tags":1233,"translation":1237,"__hash__":1238},"pages_tr\u002Ftr\u002Fblog\u002Fkubectl-commands.md","Sık Kullanılan kubectl Komutları",{"type":7,"value":8,"toc":1213},"minimark",[9,14,22,33,37,40,135,139,285,314,318,378,401,405,521,524,528,714,722,726,848,854,858,949,955,959,1046,1050,1129,1132,1165,1169,1209],[10,11,13],"h2",{"id":12},"giriş","Giriş",[15,16,17,21],"p",{},[18,19,20],"code",{},"kubectl",", Kubernetes cluster'ı ile konuşmanın komut satırı aracıdır. Pod'ları listelemekten deployment güncellemeye, log okumaktan container'a bağlanmaya kadar günlük işin neredeyse tamamı birkaç düzine komutla yapılır. Bu yazı o komutları kullanım sırasıyla topluyor.",[15,23,24,25,28,29,32],{},"Örneklerde ",[18,26,27],{},"api"," deployment adı, ",[18,30,31],{},"prod"," namespace adı olarak kullanılıyor.",[10,34,36],{"id":35},"_1-cluster-ve-context","1. Cluster ve context",[15,38,39],{},"Birden fazla cluster ile çalışıyorsanız ilk iş hangi cluster'a bağlı olduğunuzu bilmektir.",[41,42,47],"pre",{"className":43,"code":44,"language":45,"meta":46,"style":46},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","kubectl version                        # istemci ve sunucu sürümü\nkubectl cluster-info                   # API server adresi\nkubectl config get-contexts            # tanımlı tüm context'ler\nkubectl config current-context         # aktif context\nkubectl config use-context prod-cluster\nkubectl config set-context --current --namespace=prod   # varsayılan namespace\n","bash","",[18,48,49,65,76,90,103,116],{"__ignoreMap":46},[50,51,54,57,61],"span",{"class":52,"line":53},"line",1,[50,55,20],{"class":56},"sBMFI",[50,58,60],{"class":59},"sfazB"," version",[50,62,64],{"class":63},"sHwdD","                        # istemci ve sunucu sürümü\n",[50,66,68,70,73],{"class":52,"line":67},2,[50,69,20],{"class":56},[50,71,72],{"class":59}," cluster-info",[50,74,75],{"class":63},"                   # API server adresi\n",[50,77,79,81,84,87],{"class":52,"line":78},3,[50,80,20],{"class":56},[50,82,83],{"class":59}," config",[50,85,86],{"class":59}," get-contexts",[50,88,89],{"class":63},"            # tanımlı tüm context'ler\n",[50,91,93,95,97,100],{"class":52,"line":92},4,[50,94,20],{"class":56},[50,96,83],{"class":59},[50,98,99],{"class":59}," current-context",[50,101,102],{"class":63},"         # aktif context\n",[50,104,106,108,110,113],{"class":52,"line":105},5,[50,107,20],{"class":56},[50,109,83],{"class":59},[50,111,112],{"class":59}," use-context",[50,114,115],{"class":59}," prod-cluster\n",[50,117,119,121,123,126,129,132],{"class":52,"line":118},6,[50,120,20],{"class":56},[50,122,83],{"class":59},[50,124,125],{"class":59}," set-context",[50,127,128],{"class":59}," --current",[50,130,131],{"class":59}," --namespace=prod",[50,133,134],{"class":63},"   # varsayılan namespace\n",[10,136,138],{"id":137},"_2-kaynakları-listeleme","2. Kaynakları listeleme",[41,140,142],{"className":43,"code":141,"language":45,"meta":46,"style":46},"kubectl get pods                       # aktif namespace'teki pod'lar\nkubectl get pods -n prod               # belirli namespace\nkubectl get pods -A                    # tüm namespace'ler\nkubectl get pods -o wide               # node ve IP bilgisiyle\nkubectl get pods -l app=api            # label'a göre filtrele\nkubectl get pods -w                    # değişiklikleri canlı izle\nkubectl get deploy,svc,ingress         # birden fazla kaynak tipi\nkubectl get all -n prod\nkubectl get pod api-7d9f-x2k -o yaml   # kaynağın tam tanımı\n",[18,143,144,157,174,188,205,222,236,249,264],{"__ignoreMap":46},[50,145,146,148,151,154],{"class":52,"line":53},[50,147,20],{"class":56},[50,149,150],{"class":59}," get",[50,152,153],{"class":59}," pods",[50,155,156],{"class":63},"                       # aktif namespace'teki pod'lar\n",[50,158,159,161,163,165,168,171],{"class":52,"line":67},[50,160,20],{"class":56},[50,162,150],{"class":59},[50,164,153],{"class":59},[50,166,167],{"class":59}," -n",[50,169,170],{"class":59}," prod",[50,172,173],{"class":63},"               # belirli namespace\n",[50,175,176,178,180,182,185],{"class":52,"line":78},[50,177,20],{"class":56},[50,179,150],{"class":59},[50,181,153],{"class":59},[50,183,184],{"class":59}," -A",[50,186,187],{"class":63},"                    # tüm namespace'ler\n",[50,189,190,192,194,196,199,202],{"class":52,"line":92},[50,191,20],{"class":56},[50,193,150],{"class":59},[50,195,153],{"class":59},[50,197,198],{"class":59}," -o",[50,200,201],{"class":59}," wide",[50,203,204],{"class":63},"               # node ve IP bilgisiyle\n",[50,206,207,209,211,213,216,219],{"class":52,"line":105},[50,208,20],{"class":56},[50,210,150],{"class":59},[50,212,153],{"class":59},[50,214,215],{"class":59}," -l",[50,217,218],{"class":59}," app=api",[50,220,221],{"class":63},"            # label'a göre filtrele\n",[50,223,224,226,228,230,233],{"class":52,"line":118},[50,225,20],{"class":56},[50,227,150],{"class":59},[50,229,153],{"class":59},[50,231,232],{"class":59}," -w",[50,234,235],{"class":63},"                    # değişiklikleri canlı izle\n",[50,237,239,241,243,246],{"class":52,"line":238},7,[50,240,20],{"class":56},[50,242,150],{"class":59},[50,244,245],{"class":59}," deploy,svc,ingress",[50,247,248],{"class":63},"         # birden fazla kaynak tipi\n",[50,250,252,254,256,259,261],{"class":52,"line":251},8,[50,253,20],{"class":56},[50,255,150],{"class":59},[50,257,258],{"class":59}," all",[50,260,167],{"class":59},[50,262,263],{"class":59}," prod\n",[50,265,267,269,271,274,277,279,282],{"class":52,"line":266},9,[50,268,20],{"class":56},[50,270,150],{"class":59},[50,272,273],{"class":59}," pod",[50,275,276],{"class":59}," api-7d9f-x2k",[50,278,198],{"class":59},[50,280,281],{"class":59}," yaml",[50,283,284],{"class":63},"   # kaynağın tam tanımı\n",[15,286,287,288,291,292,295,296,295,299,295,302,305,306,309,310,313],{},"Kısaltmalar zaman kazandırır: ",[18,289,290],{},"po"," (pods), ",[18,293,294],{},"deploy",", ",[18,297,298],{},"svc",[18,300,301],{},"ns",[18,303,304],{},"cm"," (configmap), ",[18,307,308],{},"ing"," (ingress), ",[18,311,312],{},"no"," (nodes).",[10,315,317],{"id":316},"_3-detay-ve-olaylar","3. Detay ve olaylar",[41,319,321],{"className":43,"code":320,"language":45,"meta":46,"style":46},"kubectl describe pod api-7d9f-x2k      # durum, olaylar, container'lar\nkubectl describe deploy api\nkubectl get events -n prod --sort-by=.lastTimestamp\nkubectl explain deployment.spec.strategy   # alanların dokümantasyonu\n",[18,322,323,337,349,365],{"__ignoreMap":46},[50,324,325,327,330,332,334],{"class":52,"line":53},[50,326,20],{"class":56},[50,328,329],{"class":59}," describe",[50,331,273],{"class":59},[50,333,276],{"class":59},[50,335,336],{"class":63},"      # durum, olaylar, container'lar\n",[50,338,339,341,343,346],{"class":52,"line":67},[50,340,20],{"class":56},[50,342,329],{"class":59},[50,344,345],{"class":59}," deploy",[50,347,348],{"class":59}," api\n",[50,350,351,353,355,358,360,362],{"class":52,"line":78},[50,352,20],{"class":56},[50,354,150],{"class":59},[50,356,357],{"class":59}," events",[50,359,167],{"class":59},[50,361,170],{"class":59},[50,363,364],{"class":59}," --sort-by=.lastTimestamp\n",[50,366,367,369,372,375],{"class":52,"line":92},[50,368,20],{"class":56},[50,370,371],{"class":59}," explain",[50,373,374],{"class":59}," deployment.spec.strategy",[50,376,377],{"class":63},"   # alanların dokümantasyonu\n",[15,379,380,381,295,384,387,388,391,392,395,396,400],{},"Pod ",[18,382,383],{},"Pending",[18,385,386],{},"CrashLoopBackOff"," ya da ",[18,389,390],{},"ImagePullBackOff"," durumundaysa sebebi neredeyse her zaman ",[18,393,394],{},"describe"," çıktısının en altındaki ",[397,398,399],"strong",{},"Events"," bölümündedir.",[10,402,404],{"id":403},"_4-oluşturma-güncelleme-silme","4. Oluşturma, güncelleme, silme",[41,406,408],{"className":43,"code":407,"language":45,"meta":46,"style":46},"kubectl apply -f deployment.yaml       # oluştur ya da güncelle\nkubectl apply -f k8s\u002F                  # klasördeki tüm manifest'ler\nkubectl diff -f deployment.yaml        # apply öncesi farkı gör\nkubectl delete -f deployment.yaml\nkubectl delete pod api-7d9f-x2k        # pod silinir, deployment yenisini açar\nkubectl create deployment api --image=nginx:1.27\nkubectl create deployment api --image=nginx:1.27 --dry-run=client -o yaml > deployment.yaml\n",[18,409,410,426,440,454,466,479,495],{"__ignoreMap":46},[50,411,412,414,417,420,423],{"class":52,"line":53},[50,413,20],{"class":56},[50,415,416],{"class":59}," apply",[50,418,419],{"class":59}," -f",[50,421,422],{"class":59}," deployment.yaml",[50,424,425],{"class":63},"       # oluştur ya da güncelle\n",[50,427,428,430,432,434,437],{"class":52,"line":67},[50,429,20],{"class":56},[50,431,416],{"class":59},[50,433,419],{"class":59},[50,435,436],{"class":59}," k8s\u002F",[50,438,439],{"class":63},"                  # klasördeki tüm manifest'ler\n",[50,441,442,444,447,449,451],{"class":52,"line":78},[50,443,20],{"class":56},[50,445,446],{"class":59}," diff",[50,448,419],{"class":59},[50,450,422],{"class":59},[50,452,453],{"class":63},"        # apply öncesi farkı gör\n",[50,455,456,458,461,463],{"class":52,"line":92},[50,457,20],{"class":56},[50,459,460],{"class":59}," delete",[50,462,419],{"class":59},[50,464,465],{"class":59}," deployment.yaml\n",[50,467,468,470,472,474,476],{"class":52,"line":105},[50,469,20],{"class":56},[50,471,460],{"class":59},[50,473,273],{"class":59},[50,475,276],{"class":59},[50,477,478],{"class":63},"        # pod silinir, deployment yenisini açar\n",[50,480,481,483,486,489,492],{"class":52,"line":118},[50,482,20],{"class":56},[50,484,485],{"class":59}," create",[50,487,488],{"class":59}," deployment",[50,490,491],{"class":59}," api",[50,493,494],{"class":59}," --image=nginx:1.27\n",[50,496,497,499,501,503,505,508,511,513,515,519],{"class":52,"line":238},[50,498,20],{"class":56},[50,500,485],{"class":59},[50,502,488],{"class":59},[50,504,491],{"class":59},[50,506,507],{"class":59}," --image=nginx:1.27",[50,509,510],{"class":59}," --dry-run=client",[50,512,198],{"class":59},[50,514,281],{"class":59},[50,516,518],{"class":517},"sMK4o"," >",[50,520,465],{"class":59},[15,522,523],{},"Son komut sıfırdan YAML yazmak yerine iskelet üretmenin en hızlı yoludur.",[10,525,527],{"id":526},"_5-log-exec-ve-port-forward","5. Log, exec ve port-forward",[41,529,531],{"className":43,"code":530,"language":45,"meta":46,"style":46},"kubectl logs api-7d9f-x2k              # pod logları\nkubectl logs -f api-7d9f-x2k           # canlı takip\nkubectl logs api-7d9f-x2k -c sidecar   # çok container'lı pod'da belirli container\nkubectl logs api-7d9f-x2k --previous   # çöken önceki container'ın logları\nkubectl logs deploy\u002Fapi --tail=100     # deployment'tan bir pod'un logları\nkubectl logs -l app=api --since=1h\n\nkubectl exec -it api-7d9f-x2k -- sh    # container'a bağlan\nkubectl exec api-7d9f-x2k -- env       # tek komut çalıştır\n\nkubectl port-forward svc\u002Fapi 8080:80   # localhost:8080 → service 80\nkubectl port-forward pod\u002Fapi-7d9f-x2k 5005:5005\n\nkubectl cp api-7d9f-x2k:\u002Fapp\u002Flogs\u002Fapp.log .\u002Fapp.log\n",[18,532,533,545,558,575,589,604,617,623,644,660,665,682,695,700],{"__ignoreMap":46},[50,534,535,537,540,542],{"class":52,"line":53},[50,536,20],{"class":56},[50,538,539],{"class":59}," logs",[50,541,276],{"class":59},[50,543,544],{"class":63},"              # pod logları\n",[50,546,547,549,551,553,555],{"class":52,"line":67},[50,548,20],{"class":56},[50,550,539],{"class":59},[50,552,419],{"class":59},[50,554,276],{"class":59},[50,556,557],{"class":63},"           # canlı takip\n",[50,559,560,562,564,566,569,572],{"class":52,"line":78},[50,561,20],{"class":56},[50,563,539],{"class":59},[50,565,276],{"class":59},[50,567,568],{"class":59}," -c",[50,570,571],{"class":59}," sidecar",[50,573,574],{"class":63},"   # çok container'lı pod'da belirli container\n",[50,576,577,579,581,583,586],{"class":52,"line":92},[50,578,20],{"class":56},[50,580,539],{"class":59},[50,582,276],{"class":59},[50,584,585],{"class":59}," --previous",[50,587,588],{"class":63},"   # çöken önceki container'ın logları\n",[50,590,591,593,595,598,601],{"class":52,"line":105},[50,592,20],{"class":56},[50,594,539],{"class":59},[50,596,597],{"class":59}," deploy\u002Fapi",[50,599,600],{"class":59}," --tail=100",[50,602,603],{"class":63},"     # deployment'tan bir pod'un logları\n",[50,605,606,608,610,612,614],{"class":52,"line":118},[50,607,20],{"class":56},[50,609,539],{"class":59},[50,611,215],{"class":59},[50,613,218],{"class":59},[50,615,616],{"class":59}," --since=1h\n",[50,618,619],{"class":52,"line":238},[50,620,622],{"emptyLinePlaceholder":621},true,"\n",[50,624,625,627,630,633,635,638,641],{"class":52,"line":251},[50,626,20],{"class":56},[50,628,629],{"class":59}," exec",[50,631,632],{"class":59}," -it",[50,634,276],{"class":59},[50,636,637],{"class":59}," --",[50,639,640],{"class":59}," sh",[50,642,643],{"class":63},"    # container'a bağlan\n",[50,645,646,648,650,652,654,657],{"class":52,"line":266},[50,647,20],{"class":56},[50,649,629],{"class":59},[50,651,276],{"class":59},[50,653,637],{"class":59},[50,655,656],{"class":59}," env",[50,658,659],{"class":63},"       # tek komut çalıştır\n",[50,661,663],{"class":52,"line":662},10,[50,664,622],{"emptyLinePlaceholder":621},[50,666,668,670,673,676,679],{"class":52,"line":667},11,[50,669,20],{"class":56},[50,671,672],{"class":59}," port-forward",[50,674,675],{"class":59}," svc\u002Fapi",[50,677,678],{"class":59}," 8080:80",[50,680,681],{"class":63},"   # localhost:8080 → service 80\n",[50,683,685,687,689,692],{"class":52,"line":684},12,[50,686,20],{"class":56},[50,688,672],{"class":59},[50,690,691],{"class":59}," pod\u002Fapi-7d9f-x2k",[50,693,694],{"class":59}," 5005:5005\n",[50,696,698],{"class":52,"line":697},13,[50,699,622],{"emptyLinePlaceholder":621},[50,701,703,705,708,711],{"class":52,"line":702},14,[50,704,20],{"class":56},[50,706,707],{"class":59}," cp",[50,709,710],{"class":59}," api-7d9f-x2k:\u002Fapp\u002Flogs\u002Fapp.log",[50,712,713],{"class":59}," .\u002Fapp.log\n",[15,715,716,295,719,721],{},[18,717,718],{},"--previous",[18,720,386],{}," durumundaki bir pod'un neden çöktüğünü görmenin tek yoludur.",[10,723,725],{"id":724},"_6-deployment-yönetimi","6. Deployment yönetimi",[41,727,729],{"className":43,"code":728,"language":45,"meta":46,"style":46},"kubectl scale deploy api --replicas=5\nkubectl set image deploy\u002Fapi api=registry.local\u002Fapi:1.4.2\nkubectl rollout status deploy\u002Fapi      # güncelleme bitti mi?\nkubectl rollout history deploy\u002Fapi\nkubectl rollout undo deploy\u002Fapi        # bir önceki sürüme dön\nkubectl rollout undo deploy\u002Fapi --to-revision=3\nkubectl rollout restart deploy\u002Fapi     # tüm pod'ları sırayla yenile\nkubectl autoscale deploy api --min=2 --max=10 --cpu-percent=70\n",[18,730,731,745,760,775,787,801,814,828],{"__ignoreMap":46},[50,732,733,735,738,740,742],{"class":52,"line":53},[50,734,20],{"class":56},[50,736,737],{"class":59}," scale",[50,739,345],{"class":59},[50,741,491],{"class":59},[50,743,744],{"class":59}," --replicas=5\n",[50,746,747,749,752,755,757],{"class":52,"line":67},[50,748,20],{"class":56},[50,750,751],{"class":59}," set",[50,753,754],{"class":59}," image",[50,756,597],{"class":59},[50,758,759],{"class":59}," api=registry.local\u002Fapi:1.4.2\n",[50,761,762,764,767,770,772],{"class":52,"line":78},[50,763,20],{"class":56},[50,765,766],{"class":59}," rollout",[50,768,769],{"class":59}," status",[50,771,597],{"class":59},[50,773,774],{"class":63},"      # güncelleme bitti mi?\n",[50,776,777,779,781,784],{"class":52,"line":92},[50,778,20],{"class":56},[50,780,766],{"class":59},[50,782,783],{"class":59}," history",[50,785,786],{"class":59}," deploy\u002Fapi\n",[50,788,789,791,793,796,798],{"class":52,"line":105},[50,790,20],{"class":56},[50,792,766],{"class":59},[50,794,795],{"class":59}," undo",[50,797,597],{"class":59},[50,799,800],{"class":63},"        # bir önceki sürüme dön\n",[50,802,803,805,807,809,811],{"class":52,"line":118},[50,804,20],{"class":56},[50,806,766],{"class":59},[50,808,795],{"class":59},[50,810,597],{"class":59},[50,812,813],{"class":59}," --to-revision=3\n",[50,815,816,818,820,823,825],{"class":52,"line":238},[50,817,20],{"class":56},[50,819,766],{"class":59},[50,821,822],{"class":59}," restart",[50,824,597],{"class":59},[50,826,827],{"class":63},"     # tüm pod'ları sırayla yenile\n",[50,829,830,832,835,837,839,842,845],{"class":52,"line":251},[50,831,20],{"class":56},[50,833,834],{"class":59}," autoscale",[50,836,345],{"class":59},[50,838,491],{"class":59},[50,840,841],{"class":59}," --min=2",[50,843,844],{"class":59}," --max=10",[50,846,847],{"class":59}," --cpu-percent=70\n",[15,849,850,853],{},[18,851,852],{},"rollout restart",", ConfigMap ya da Secret değiştirdikten sonra pod'ların yeni değerleri okuması için en temiz yoldur.",[10,855,857],{"id":856},"_7-configmap-ve-secret","7. ConfigMap ve Secret",[41,859,861],{"className":43,"code":860,"language":45,"meta":46,"style":46},"kubectl create configmap api-config --from-file=application.yaml\nkubectl create configmap api-config --from-literal=LOG_LEVEL=info\nkubectl create secret generic db-secret --from-literal=password='S3cret!'\nkubectl get secret db-secret -o jsonpath='{.data.password}' | base64 -d\n",[18,862,863,878,891,918],{"__ignoreMap":46},[50,864,865,867,869,872,875],{"class":52,"line":53},[50,866,20],{"class":56},[50,868,485],{"class":59},[50,870,871],{"class":59}," configmap",[50,873,874],{"class":59}," api-config",[50,876,877],{"class":59}," --from-file=application.yaml\n",[50,879,880,882,884,886,888],{"class":52,"line":67},[50,881,20],{"class":56},[50,883,485],{"class":59},[50,885,871],{"class":59},[50,887,874],{"class":59},[50,889,890],{"class":59}," --from-literal=LOG_LEVEL=info\n",[50,892,893,895,897,900,903,906,909,912,915],{"class":52,"line":78},[50,894,20],{"class":56},[50,896,485],{"class":59},[50,898,899],{"class":59}," secret",[50,901,902],{"class":59}," generic",[50,904,905],{"class":59}," db-secret",[50,907,908],{"class":59}," --from-literal=password=",[50,910,911],{"class":517},"'",[50,913,914],{"class":59},"S3cret!",[50,916,917],{"class":517},"'\n",[50,919,920,922,924,926,928,930,933,935,938,940,943,946],{"class":52,"line":92},[50,921,20],{"class":56},[50,923,150],{"class":59},[50,925,899],{"class":59},[50,927,905],{"class":59},[50,929,198],{"class":59},[50,931,932],{"class":59}," jsonpath=",[50,934,911],{"class":517},[50,936,937],{"class":59},"{.data.password}",[50,939,911],{"class":517},[50,941,942],{"class":517}," |",[50,944,945],{"class":56}," base64",[50,947,948],{"class":59}," -d\n",[950,951,952],"blockquote",{},[15,953,954],{},"Secret değerleri sadece base64 ile kodlanır, şifrelenmez. Repo'ya düz Secret manifest'i koymayın; Sealed Secrets ya da External Secrets gibi bir çözüm kullanın.",[10,956,958],{"id":957},"_8-kaynak-kullanımı-ve-nodelar","8. Kaynak kullanımı ve node'lar",[41,960,962],{"className":43,"code":961,"language":45,"meta":46,"style":46},"kubectl top nodes                      # metrics-server gerekir\nkubectl top pods -n prod --sort-by=memory\nkubectl get nodes -o wide\nkubectl cordon node-1                  # yeni pod alma\nkubectl drain node-1 --ignore-daemonsets --delete-emptydir-data   # bakım için boşalt\nkubectl uncordon node-1\n",[18,963,964,977,992,1005,1018,1036],{"__ignoreMap":46},[50,965,966,968,971,974],{"class":52,"line":53},[50,967,20],{"class":56},[50,969,970],{"class":59}," top",[50,972,973],{"class":59}," nodes",[50,975,976],{"class":63},"                      # metrics-server gerekir\n",[50,978,979,981,983,985,987,989],{"class":52,"line":67},[50,980,20],{"class":56},[50,982,970],{"class":59},[50,984,153],{"class":59},[50,986,167],{"class":59},[50,988,170],{"class":59},[50,990,991],{"class":59}," --sort-by=memory\n",[50,993,994,996,998,1000,1002],{"class":52,"line":78},[50,995,20],{"class":56},[50,997,150],{"class":59},[50,999,973],{"class":59},[50,1001,198],{"class":59},[50,1003,1004],{"class":59}," wide\n",[50,1006,1007,1009,1012,1015],{"class":52,"line":92},[50,1008,20],{"class":56},[50,1010,1011],{"class":59}," cordon",[50,1013,1014],{"class":59}," node-1",[50,1016,1017],{"class":63},"                  # yeni pod alma\n",[50,1019,1020,1022,1025,1027,1030,1033],{"class":52,"line":105},[50,1021,20],{"class":56},[50,1023,1024],{"class":59}," drain",[50,1026,1014],{"class":59},[50,1028,1029],{"class":59}," --ignore-daemonsets",[50,1031,1032],{"class":59}," --delete-emptydir-data",[50,1034,1035],{"class":63},"   # bakım için boşalt\n",[50,1037,1038,1040,1043],{"class":52,"line":118},[50,1039,20],{"class":56},[50,1041,1042],{"class":59}," uncordon",[50,1044,1045],{"class":59}," node-1\n",[10,1047,1049],{"id":1048},"_9-sorun-giderme-özeti","9. Sorun giderme özeti",[1051,1052,1053,1066],"table",{},[1054,1055,1056],"thead",{},[1057,1058,1059,1063],"tr",{},[1060,1061,1062],"th",{},"Durum",[1060,1064,1065],{},"Bakılacak yer",[1067,1068,1069,1082,1094,1106,1118],"tbody",{},[1057,1070,1071,1076],{},[1072,1073,1074],"td",{},[18,1075,383],{},[1072,1077,1078,1081],{},[18,1079,1080],{},"kubectl describe pod"," → Events: yetersiz kaynak, PVC, node selector",[1057,1083,1084,1088],{},[1072,1085,1086],{},[18,1087,390],{},[1072,1089,1090,1091],{},"Image adı\u002Ftag'i, registry erişimi, ",[18,1092,1093],{},"imagePullSecrets",[1057,1095,1096,1100],{},[1072,1097,1098],{},[18,1099,386],{},[1072,1101,1102,1105],{},[18,1103,1104],{},"kubectl logs --previous",", liveness probe, eksik env",[1057,1107,1108,1113],{},[1072,1109,1110],{},[18,1111,1112],{},"OOMKilled",[1072,1114,1115,1117],{},[18,1116,394],{}," → Last State; memory limit'ini artırın ya da sızıntıyı bulun",[1057,1119,1120,1123],{},[1072,1121,1122],{},"Service'e erişilemiyor",[1072,1124,1125,1128],{},[18,1126,1127],{},"kubectl get endpoints api",", label selector eşleşiyor mu",[15,1130,1131],{},"Geçici bir debug pod'u da çoğu ağ sorununu hızlıca çözer:",[41,1133,1135],{"className":43,"code":1134,"language":45,"meta":46,"style":46},"kubectl run debug --rm -it --image=busybox -- sh\n# içeride: nslookup api.prod.svc.cluster.local, wget -qO- http:\u002F\u002Fapi\n",[18,1136,1137,1160],{"__ignoreMap":46},[50,1138,1139,1141,1144,1147,1150,1152,1155,1157],{"class":52,"line":53},[50,1140,20],{"class":56},[50,1142,1143],{"class":59}," run",[50,1145,1146],{"class":59}," debug",[50,1148,1149],{"class":59}," --rm",[50,1151,632],{"class":59},[50,1153,1154],{"class":59}," --image=busybox",[50,1156,637],{"class":59},[50,1158,1159],{"class":59}," sh\n",[50,1161,1162],{"class":52,"line":67},[50,1163,1164],{"class":63},"# içeride: nslookup api.prod.svc.cluster.local, wget -qO- http:\u002F\u002Fapi\n",[10,1166,1168],{"id":1167},"sonuç","Sonuç",[15,1170,1171,1172,295,1175,295,1177,295,1180,295,1183,1186,1187,1190,1191,1193,1194,1196,1197,1200,1201,1204,1205,1208],{},"Günlük Kubernetes işinin büyük kısmı ",[18,1173,1174],{},"get",[18,1176,394],{},[18,1178,1179],{},"logs",[18,1181,1182],{},"exec",[18,1184,1185],{},"apply"," ve ",[18,1188,1189],{},"rollout"," ile döner. Bir sorunla karşılaştığınızda sıra hep aynıdır: ",[18,1192,1174],{}," ile durumu görün, ",[18,1195,394],{}," ile olayları okuyun, ",[18,1198,1199],{},"logs --previous"," ile uygulamanın ne dediğine bakın. ",[18,1202,1203],{},"alias k=kubectl"," ve shell completion (",[18,1206,1207],{},"source \u003C(kubectl completion bash)",") eklemek de günde yüzlerce tuş vuruşu kazandırır.",[1210,1211,1212],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}",{"title":46,"searchDepth":67,"depth":67,"links":1214},[1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225],{"id":12,"depth":67,"text":13},{"id":35,"depth":67,"text":36},{"id":137,"depth":67,"text":138},{"id":316,"depth":67,"text":317},{"id":403,"depth":67,"text":404},{"id":526,"depth":67,"text":527},{"id":724,"depth":67,"text":725},{"id":856,"depth":67,"text":857},{"id":957,"depth":67,"text":958},{"id":1048,"depth":67,"text":1049},{"id":1167,"depth":67,"text":1168},"2026-10-26","Kubernetes ile günlük işin döndüğü kubectl komutları — context, pod, deployment, log, exec, port-forward, rollout ve sorun giderme.","md",{},"\u002Ftr\u002Fblog\u002Fkubectl-commands",{"title":5,"description":1227},"tr\u002Fblog\u002Fkubectl-commands",[1234,1235,1236],"kubernetes","devops","rehber","\u002Fen\u002Fblog\u002Fkubectl-commands","z3_H9bMp4ZVWfg1pvmGsYXG5aR5qQCPqZeZb5WX1h4U",1792969863327]