kubectl
- 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,logsveexecç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
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 versionSı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.
İlgili sayfalar
- KubernetesDevOps ve Bulut, s. 30Kubernetes, konteynerli uygulamaların bir makine kümesi üzerinde dağıtılmasını, ölçeklenmesini ve yönetilmesini otomatikleştiren açık kaynaklı bir sistemdir.
- PodDevOps ve Bulut, s. 39Pod, Kubernetes'te dağıtılabilen en küçük birimdir: ağ adresini ve depolamayı paylaşan, tek bir node'da birlikte zamanlanan bir ya da daha çok konteynerdir.
- HelmDevOps ve Bulut, s. 24Helm, Kubernetes'in paket yöneticisidir; uygulamanın yapılandırma dosyalarını tek komutla kurulup güncellenebilen ve geri alınabilen bir chart'ta paketler.
- YAMLDevOps ve Bulut, s. 52YAML, parantez yerine girinti kullanan, insanın okuyabileceği bir veri biçimidir; DevOps araçlarında ve CI/CD pipeline'larında yapılandırma için yaygındır.
- GitOpsDevOps ve Bulut, s. 20GitOps, sistemin istenen durumunu Git'te tutan ve otomatik bir ajanın canlı sistemi bununla senkronize ettiği bir altyapı ve dağıtım yönetimi yöntemidir.
- KonteynerDevOps ve Bulut, s. 28Konteyner, bir uygulamayı bağımlılıklarıyla paketleyip ana makinenin paylaşılan işletim sistemi çekirdeği üzerinde çalıştıran hafif, yalıtılmış bir pakettir.
- Komut Satırı Arayüzüİşletim Sistemleri, s. 19Komut satırı arayüzü (CLI), bilgisayarı metinle kullanmanın yoludur: seçenekleri ve argümanlarıyla bir komut yazar, Enter'a basar ve çıktısını okursunuz.
Kaynaklar
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin