# kubectl

Adres: https://softwaredictionary.org/tr/terimler/kubectl
Kategori: DevOps ve Bulut
Son güncelleme: 2026-10-05
Okunuşu: kub kıntrol

Kısaca: kubectl, Kubernetes'in komut satırı aracıdır: uygulamaları dağıtmak, incelemek ve değiştirmek için bir cluster'ın API sunucusuna istek gönderir.

## kubectl nedir?

Çoğu kişi bir Kubernetes cluster'ıyla kubectl üzerinden konuşur. Her komut, cluster'ın API sunucusuna giden bir isteğe dönüşür: `kubectl get pods` çalışan pod'ları listeler, `kubectl describe` bir nesnenin ayrıntılarını ve son olaylarını gösterir, `kubectl logs` bir konteynerin çıktısını yazdırır, `kubectl exec` ise bir konteynerin içinde komut çalıştırır. Hangi cluster'la ve kim olarak konuşacağını, genellikle `~/.kube/config` olan ve birden çok cluster'ı adlandırılmış context'ler olarak tutabilen kubeconfig dosyasından öğrenir.

Bir cluster'ı değiştirmenin iki yolu vardır. `kubectl create deployment` ya da `kubectl scale` gibi imperative komutlar şu anda ne yapılacağını söyler. Kalıcı olan her şey için tercih edilen declarative yol ise istenen durumu YAML dosyalarında tarif edip `kubectl apply -f` çalıştırmaktır; bu komut dosyaları çalışan durumla karşılaştırır ve yalnızca gereken değişiklikleri yapar. Bu dosyaları Git'te tutmak her değişikliği incelenmiş bir commit'e dönüştürür; Helm ve GitOps controller'ları gibi aynı fikir üzerine kurulu araçlar bunu bir adım ileri taşır.

kubectl, cluster için televizyonun kumandası gibidir: iş başka yerde yapılır, araç yalnızca talimat gönderir. Kimlik bilgilerinin izin verdiği her şeyi değiştirebildiği için canlı ortama erişim genellikle rol tabanlı erişim kontrolüyle (RBAC) daraltılır; `kubectl diff` ya da `--dry-run=server` de bir değişikliğin ne yapacağını uygulanmadan önce gösterir. Adı da farklı biçimlerde okunur: kube control, kube cuttle ya da kube C-T-L.

## Önemli noktalar

- kubectl, Kubernetes'in komut satırı aracıdır; her komut API sunucusuna yapılan bir çağrıdır.
- `get`, `describe`, `logs` ve `exec` çalışan şeyleri incelemeye yarar.
- `kubectl apply -f`, cluster'ı istenen durumu tarif eden YAML dosyalarına uydurur.
- kubectl'in hangi cluster'la ve kim olarak konuşacağını kubeconfig dosyası belirler.

## Örnek: Günlük kubectl komutları

```bash
kubectl config get-contexts               # the clusters you can talk to
kubectl get pods -n shop                   # pods in the "shop" namespace
kubectl describe pod web-7d9f-x2kq -n shop # details and recent events
kubectl logs -f deploy/web -n shop         # follow the logs of the deployment's pod
kubectl diff -f web.yaml                   # what applying the file would change
kubectl apply -f web.yaml                  # make the cluster match the file
kubectl rollout undo deploy/web -n shop    # go back to the previous version
```

## Sık sorulan sorular

**kubectl apply ile kubectl create arasındaki fark nedir?**

`kubectl create` yeni bir nesne oluşturur ve nesne zaten varsa hata verir. `kubectl apply` ise nesneyi oluşturur ya da dosyaya uyacak şekilde günceller; bu yüzden tekrar tekrar çalıştırılabilir ve dosyalarda tutulan yapılandırmaya uygun düşer.

**kubectl kimlik bilgilerini nereden alır?**

Bir kubeconfig dosyasından; `KUBECONFIG` değişkeni başka bir yeri göstermiyorsa bu `~/.kube/config` dosyasıdır. Dosyada cluster'lar, kullanıcılar ve her biri bir cluster'ı bir kullanıcı ve namespace ile eşleştiren context'ler bulunur; `kubectl config use-context` aralarında geçiş yapar.

## Kaynaklar

- [Kubernetes documentation: Command line tool (kubectl)](https://kubernetes.io/docs/reference/kubectl/)
- [Kubernetes documentation: kubectl Quick Reference](https://kubernetes.io/docs/reference/kubectl/quick-reference/)

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
